diff --git a/History.txt b/History.txt index 01549efa..040e9b2d 100644 --- a/History.txt +++ b/History.txt @@ -2,6 +2,7 @@ * Minor Enhancements * Use OptionParser's [no-] functionality for better boolean parsing. * Add Drupal migrator (#245) + * Complain about YAML and Liquid errors (#249) == 0.8.0 / 2010-11-22 * Minor Enhancements diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index b76157ec..3c2b93e1 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -26,7 +26,11 @@ module Jekyll if self.content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m 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 self.data ||= {} @@ -63,7 +67,13 @@ module Jekyll # render and transform content (this becomes the final content of the object) payload["pygments_prefix"] = converter.pygments_prefix 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 # output keeps track of what will finally be written @@ -73,7 +83,12 @@ module Jekyll layout = layouts[self.data["layout"]] while layout 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"]] end