From c98911f5c1bb5457622a1ce0297e2844e56ef329 Mon Sep 17 00:00:00 2001 From: Tom Preston-Werner Date: Mon, 3 Nov 2008 12:30:33 -0800 Subject: [PATCH] naive related posts implementation --- lib/autoblog/post.rb | 14 ++++++++++---- lib/autoblog/site.rb | 15 ++++++++++----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lib/autoblog/post.rb b/lib/autoblog/post.rb index 8ea3bb8e..2b12f9c5 100644 --- a/lib/autoblog/post.rb +++ b/lib/autoblog/post.rb @@ -63,14 +63,20 @@ module AutoBlog self.content = RedCloth.new(self.content).to_html end - def add_layout(layouts) - payload = {"page" => self.data} - self.content = Liquid::Template.parse(self.content).render(payload) + def related_posts(posts) + related = posts - [self] + end + + def add_layout(layouts, site_payload) + related = related_posts(site_payload["site"]["posts"]) + + payload = {"page" => self.data, "related_posts" => related}.merge(site_payload) + self.content = Liquid::Template.parse(self.content).render(payload, [AutoBlog::Filters]) layout = layouts[self.data["layout"]] || self.content payload = {"content" => self.content, "page" => self.data} - self.output = Liquid::Template.parse(layout).render(payload) + self.output = Liquid::Template.parse(layout).render(payload, [AutoBlog::Filters]) end def write(dest) diff --git a/lib/autoblog/site.rb b/lib/autoblog/site.rb index 989a4f0d..4d3286cd 100644 --- a/lib/autoblog/site.rb +++ b/lib/autoblog/site.rb @@ -47,7 +47,7 @@ module AutoBlog def write_posts self.posts.each do |post| - post.add_layout(self.layouts) + post.add_layout(self.layouts, site_payload) post.write(self.dest) end end @@ -55,16 +55,21 @@ module AutoBlog def transform_pages(dir = '') base = File.join(self.source, dir) entries = Dir.entries(base) - entries = entries.reject { |e| %w{_layouts posts}.include?(e) } + entries = entries.reject { |e| %w{_layouts posts drafts}.include?(e) } entries = entries.reject { |e| e[0..0] == '.' } entries.each do |f| if File.directory?(File.join(base, f)) transform_pages(File.join(dir, f)) else - page = Page.new(self.source, dir, f) - page.add_layout(self.layouts, site_payload) - page.write(self.dest) + if %w{.png .jpg .gif}.include?(File.extname(f)) + FileUtils.mkdir_p(File.join(self.dest, dir)) + FileUtils.cp(File.join(self.source, dir, f), File.join(self.dest, dir, f)) + else + page = Page.new(self.source, dir, f) + page.add_layout(self.layouts, site_payload) + page.write(self.dest) + end end end end