Reset {{ layout }} between each render & merge layout data properly

This commit is contained in:
Parker Moore 2016-05-18 09:58:48 -07:00 committed by Pat Hawks
parent 8e939cd86e
commit db7cd6f612
2 changed files with 8 additions and 2 deletions

View File

@ -209,10 +209,13 @@ module Jekyll
used = Set.new([layout]) used = Set.new([layout])
# Reset the payload layout data to ensure it starts fresh for each page.
payload["layout"] = nil
while layout while layout
Jekyll.logger.debug "Rendering Layout:", path Jekyll.logger.debug "Rendering Layout:", path
payload["content"] = output 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, self.output = render_liquid(layout.content,
payload, payload,

View File

@ -136,10 +136,13 @@ module Jekyll
used = Set.new([layout]) used = Set.new([layout])
# Reset the payload layout data to ensure it starts fresh for each page.
payload["layout"] = nil
while layout while layout
payload['content'] = output payload['content'] = output
payload['page'] = document.to_liquid 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( output = render_liquid(
layout.content, layout.content,