From 0f848ee2d7c72bde0fec7c02998c7e03efa9cb46 Mon Sep 17 00:00:00 2001 From: remi Date: Tue, 23 Dec 2008 04:59:47 -0700 Subject: [PATCH] Rendered post content wasn't available when pages were being rendered (as {{ site.posts }}). This ensures that we read & render _posts before rendering other pages. --- lib/jekyll/site.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 433c754a..0a74fc23 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -54,7 +54,12 @@ module Jekyll entries = entries.reject { |e| File.directory?(e) } entries.each do |f| - self.posts << Post.new(base, f) if Post.valid?(f) + if Post.valid?(f) + post = Post.new(base, f) + post.content = Liquid::Template.parse(post.content).render(site_payload, [Jekyll::Filters]) + post.transform + self.posts << post + end end self.posts.sort! @@ -86,10 +91,15 @@ module Jekyll (e != '_posts') and ['.', '_'].include?(e[0..0]) } + # we need to make sure to process _posts *first* otherwise they + # might not be available yet to other templates as {{ site.posts }} + if entries.include? '_posts' + entries.delete '_posts' + read_posts(File.join(base, '_posts')) + end + entries.each do |f| - if f == '_posts' - read_posts(File.join(base, f)) - elsif File.directory?(File.join(base, f)) + if File.directory?(File.join(base, f)) next if self.dest.sub(/\/$/, '') == File.join(base, f) transform_pages(File.join(dir, f)) else