naive related posts implementation
This commit is contained in:
parent
b2d2d09f95
commit
c98911f5c1
|
@ -63,14 +63,20 @@ module AutoBlog
|
||||||
self.content = RedCloth.new(self.content).to_html
|
self.content = RedCloth.new(self.content).to_html
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_layout(layouts)
|
def related_posts(posts)
|
||||||
payload = {"page" => self.data}
|
related = posts - [self]
|
||||||
self.content = Liquid::Template.parse(self.content).render(payload)
|
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
|
layout = layouts[self.data["layout"]] || self.content
|
||||||
payload = {"content" => self.content, "page" => self.data}
|
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
|
end
|
||||||
|
|
||||||
def write(dest)
|
def write(dest)
|
||||||
|
|
|
@ -47,7 +47,7 @@ module AutoBlog
|
||||||
|
|
||||||
def write_posts
|
def write_posts
|
||||||
self.posts.each do |post|
|
self.posts.each do |post|
|
||||||
post.add_layout(self.layouts)
|
post.add_layout(self.layouts, site_payload)
|
||||||
post.write(self.dest)
|
post.write(self.dest)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -55,16 +55,21 @@ module AutoBlog
|
||||||
def transform_pages(dir = '')
|
def transform_pages(dir = '')
|
||||||
base = File.join(self.source, dir)
|
base = File.join(self.source, dir)
|
||||||
entries = Dir.entries(base)
|
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 = entries.reject { |e| e[0..0] == '.' }
|
||||||
|
|
||||||
entries.each do |f|
|
entries.each do |f|
|
||||||
if File.directory?(File.join(base, f))
|
if File.directory?(File.join(base, f))
|
||||||
transform_pages(File.join(dir, f))
|
transform_pages(File.join(dir, f))
|
||||||
else
|
else
|
||||||
page = Page.new(self.source, dir, f)
|
if %w{.png .jpg .gif}.include?(File.extname(f))
|
||||||
page.add_layout(self.layouts, site_payload)
|
FileUtils.mkdir_p(File.join(self.dest, dir))
|
||||||
page.write(self.dest)
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue