From db7cd6f61203b77d4b7e5e13d2c01e3afc5ed0b6 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Wed, 18 May 2016 09:58:48 -0700 Subject: [PATCH] Reset {{ layout }} between each render & merge layout data properly --- lib/jekyll/convertible.rb | 5 ++++- lib/jekyll/renderer.rb | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/convertible.rb b/lib/jekyll/convertible.rb index a473b183..a5d35607 100644 --- a/lib/jekyll/convertible.rb +++ b/lib/jekyll/convertible.rb @@ -209,10 +209,13 @@ module Jekyll used = Set.new([layout]) + # Reset the payload layout data to ensure it starts fresh for each page. + payload["layout"] = nil + while layout Jekyll.logger.debug "Rendering Layout:", path payload["content"] = output - payload["layout"] = Utils.deep_merge_hashes(payload["layout"] || {}, layout.data) + payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {}) self.output = render_liquid(layout.content, payload, diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index f116cf60..f9eb94be 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -136,10 +136,13 @@ module Jekyll used = Set.new([layout]) + # Reset the payload layout data to ensure it starts fresh for each page. + payload["layout"] = nil + while layout payload['content'] = output payload['page'] = document.to_liquid - payload['layout'] = Utils.deep_merge_hashes(payload['layout'] || {}, layout.data) + payload['layout'] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {}) output = render_liquid( layout.content,