From d343da61eb8ac5ca776842d1c4c9f2810f443ea9 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Mon, 18 Jan 2016 11:41:05 -0800 Subject: [PATCH] Page: pipe through Renderer instead of using Convertible --- lib/jekyll/convertible.rb | 8 +------- lib/jekyll/page.rb | 6 ++++++ lib/jekyll/renderer.rb | 2 +- lib/jekyll/site.rb | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index a8e1d0a4..383bb024 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -97,13 +97,7 @@ module Jekyll # Returns the String extension for the output file. # e.g. ".html" for an HTML output file. def output_ext - if converters.all? { |c| c.is_a?(Jekyll::Converters::Identity) } - ext - else - converters.map do |c| - c.output_ext(ext) unless c.is_a?(Jekyll::Converters::Identity) - end.compact.last - end + Jekyll::Renderer.new(site, self).output_ext end # Determine which converter to use based on this convertible's diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb index a3519f57..0a93aa08 100644 --- a/lib/jekyll/page.rb +++ b/lib/jekyll/page.rb @@ -7,6 +7,8 @@ module Jekyll attr_accessor :name, :ext, :basename attr_accessor :data, :content, :output + alias_method :extname, :ext + # Attributes for Liquid templates ATTRIBUTES_FOR_LIQUID = %w( content @@ -160,5 +162,9 @@ module Jekyll def index? basename == 'index' end + + def trigger_hooks(hook_name, *args) + Jekyll::Hooks.trigger :pages, hook_name, self, *args + end end end diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index e6a41aea..5a788c81 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -38,7 +38,7 @@ module Jekyll payload["page"] = document.to_liquid - if document.collection.label == 'posts' && document.is_a?(Document) + if document.is_a?(Document) && document.collection.label == 'posts' payload['site']['related_posts'] = document.related_posts end diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 465e154e..15698b99 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -176,7 +176,8 @@ module Jekyll pages.flatten.each do |page| if regenerator.regenerate?(page) - page.render(layouts, payload) + page.output = Jekyll::Renderer.new(self, page, payload).run + page.trigger_hooks(:post_render) end end