diff --git a/jekyll-pdf.gemspec b/jekyll-pdf.gemspec index e3d8d54..f2b02b9 100644 --- a/jekyll-pdf.gemspec +++ b/jekyll-pdf.gemspec @@ -1,5 +1,5 @@ Gem::Specification.new do |spec| - spec.version = "0.1.3" + spec.version = "0.1.6a" spec.homepage = "http://github.com/abemedia/jekyll-pdf/" spec.authors = ["Adam Bouqdib"] spec.email = ["adam@abemedia.co.uk"] diff --git a/lib/jekyll/pdf/document.rb b/lib/jekyll/pdf/document.rb index 78f8d1c..74bd35b 100644 --- a/lib/jekyll/pdf/document.rb +++ b/lib/jekyll/pdf/document.rb @@ -1,4 +1,5 @@ require 'pdfkit' +require File.dirname(__FILE__) + '/helper.rb' module Jekyll module PDF @@ -9,8 +10,8 @@ module Jekyll @site = site @base = base @dir = File.dirname(page.url) - @name = File.basename(page.url, File.extname(page.url)) + ".pdf" - @settings = site.config['pdf'].clone || {} + @name = File.basename(page.url, File.extname(page.url)) + '.pdf' + @settings = site.config.key?('pdf') ? site.config['pdf'].clone : {} @partials = ['cover','header_html','footer_html'] self.process(@name) @@ -40,7 +41,6 @@ module Jekyll end # Recursively merge settings from the page, layout, site config & jekyll-pdf defaults - # todo: use jekyll's merge function def getConfig(data) settings = data['pdf'].is_a?(Hash) ? data['pdf'] : {} layout = @site.layouts[data['layout']].data.clone if data['layout'] != nil @@ -55,6 +55,8 @@ module Jekyll return self.getConfig(layout) end + # Write the PDF file + # todo: remove pdfkit dependency def write(dest_prefix, dest_suffix = nil) self.render(@site.layouts, @site.site_payload) if self.output == nil @@ -73,12 +75,13 @@ module Jekyll File.open("#{path}.html", 'w') {|f| f.write(self.output) } if @settings["debug"] @settings.delete("debug") + # Trigger post-write so jekyll-assets builds assets required for the PDF + Jekyll::Hooks.trigger hook_owner, :post_write, self + # Build PDF file fix_relative_paths kit = PDFKit.new(self.output, @settings) file = kit.to_file(path) - - #self.output = kit.to_pdf end def layout() diff --git a/lib/jekyll/pdf/partial.rb b/lib/jekyll/pdf/partial.rb index 182e097..0f0f1ee 100644 --- a/lib/jekyll/pdf/partial.rb +++ b/lib/jekyll/pdf/partial.rb @@ -1,5 +1,6 @@ require 'tmpdir' require 'digest/md5' +require File.dirname(__FILE__) + '/helper.rb' module Jekyll module PDF