From 7a0009617f5f05e3eb6c893302c60319b35347e4 Mon Sep 17 00:00:00 2001 From: Anatoliy Yastreb Date: Wed, 10 May 2017 13:33:08 +0900 Subject: [PATCH] Fix layout front-matter variables rendering. #6071 --- lib/jekyll/renderer.rb | 9 +++++++++ test/source/_layouts/default.html | 3 +++ test/source/index.html | 2 ++ test/test_generated_site.rb | 4 ++++ 4 files changed, 18 insertions(+) diff --git a/lib/jekyll/renderer.rb b/lib/jekyll/renderer.rb index eb1f54ab509..b0f544e35e5 100644 --- a/lib/jekyll/renderer.rb +++ b/lib/jekyll/renderer.rb @@ -54,6 +54,7 @@ def run assign_pages! assign_related_posts! assign_highlighter_options! + assign_layout_data! Jekyll.logger.debug "Pre-Render Hooks:", document.relative_path document.trigger_hooks(:pre_render, payload) @@ -233,6 +234,14 @@ def assign_highlighter_options! payload["highlighter_suffix"] = converters.first.highlighter_suffix end + private + def assign_layout_data! + layout = layouts[document.data["layout"]] + if layout + payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {}) + end + end + private def permalink_ext if document.permalink && !document.permalink.end_with?("/") diff --git a/test/source/_layouts/default.html b/test/source/_layouts/default.html index 1d51c496796..ef2d4384ba2 100644 --- a/test/source/_layouts/default.html +++ b/test/source/_layouts/default.html @@ -1,3 +1,6 @@ +--- +front_matter_var: variable from layout +--- diff --git a/test/source/index.html b/test/source/index.html index 493fce7cbc0..ec542002ce5 100644 --- a/test/source/index.html +++ b/test/source/index.html @@ -5,6 +5,8 @@ h1. Welcome to my site +{{ layout.front_matter_var }} + h2. Please read our {{ site.posts | size }} Posts