From 0a58d78338488531aafeebcd5e35e1a5cf3eadd6 Mon Sep 17 00:00:00 2001 From: MattHall Date: Sat, 11 Dec 2010 14:23:12 +0000 Subject: [PATCH 1/2] Catch Liquid template exceptions, and write out their details. Prevents silent fail of template parsing --- lib/jekyll/convertible.rb | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index b76157ec..150beb76 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -63,7 +63,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 +79,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 From 226c7cc121868adf77c758f4579a4ae4c325ee5b Mon Sep 17 00:00:00 2001 From: MattHall Date: Sat, 11 Dec 2010 14:30:44 +0000 Subject: [PATCH 2/2] Rescue exception when parsing invalid yaml. Prevents silent fail in auto and server mode --- lib/jekyll/convertible.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index 150beb76..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 ||= {}