Merge remote branch 'MattHall/master'

This commit is contained in:
Tom Preston-Werner 2010-12-13 21:11:29 -08:00
commit 9bd48752e6
2 changed files with 19 additions and 3 deletions

View File

@ -2,6 +2,7 @@
* Minor Enhancements * Minor Enhancements
* Use OptionParser's [no-] functionality for better boolean parsing. * Use OptionParser's [no-] functionality for better boolean parsing.
* Add Drupal migrator (#245) * Add Drupal migrator (#245)
* Complain about YAML and Liquid errors (#249)
== 0.8.0 / 2010-11-22 == 0.8.0 / 2010-11-22
* Minor Enhancements * Minor Enhancements

View File

@ -26,7 +26,11 @@ module Jekyll
if self.content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m if self.content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m
self.content = self.content[($1.size + $2.size)..-1] self.content = self.content[($1.size + $2.size)..-1]
self.data = YAML.load($1) begin
self.data = YAML.load($1)
rescue => e
puts "YAML Exception: #{e.message}"
end
end end
self.data ||= {} self.data ||= {}
@ -63,7 +67,13 @@ module Jekyll
# render and transform content (this becomes the final content of the object) # render and transform content (this becomes the final content of the object)
payload["pygments_prefix"] = converter.pygments_prefix payload["pygments_prefix"] = converter.pygments_prefix
payload["pygments_suffix"] = converter.pygments_suffix payload["pygments_suffix"] = converter.pygments_suffix
self.content = Liquid::Template.parse(self.content).render(payload, info)
begin
self.content = Liquid::Template.parse(self.content).render(payload, info)
rescue => e
puts "Liquid Exception: #{e.message} in #{self.data["layout"]}"
end
self.transform self.transform
# output keeps track of what will finally be written # output keeps track of what will finally be written
@ -73,7 +83,12 @@ module Jekyll
layout = layouts[self.data["layout"]] layout = layouts[self.data["layout"]]
while layout while layout
payload = payload.deep_merge({"content" => self.output, "page" => layout.data}) payload = payload.deep_merge({"content" => self.output, "page" => layout.data})
self.output = Liquid::Template.parse(layout.content).render(payload, info)
begin
self.output = Liquid::Template.parse(layout.content).render(payload, info)
rescue => e
puts "Liquid Exception: #{e.message} in #{self.data["layout"]}"
end
layout = layouts[layout.data["layout"]] layout = layouts[layout.data["layout"]]
end end