Jekyll前端物质变量未在中间布局中设置?

时间:2017-07-29 15:30:34

标签: jekyll

在我的默认布局中,我引用了变量{{page.headline}},并按以下方式引用它:

# _layouts/default.html
{{page.headline}}

# index.md
---
layout: default
headline: Great site
---

# _layouts/post.html
---
layout: default
headline: Great articles
---

# _posts/some-post.md
---
layout: post
headline: Great post # just for testing, and omitted when setting in post layout
---

索引的标题变量 - 在第1级 - 按预期工作,也在第3级,在特定帖子中工作。但是,当我设置"伟大的文章"在帖子布局中(并从some-post.md的前面部分删除变量设置),默认布局的变量占位符中没有任何渲染。

换句话说,在帖子布局中,我没有看到"伟大的文章" "伟大的网站,"所以它就像" Great site"的初始变量设置。在默认布局中 - 后期布局引用 - 正在被覆盖,但不会被替换。

然而,这可以在第三级使用some-post.md - 设置headline,其中特定帖子使用帖子布局,帖子布局本身使用默认值,page.headline设置为"很棒的帖子。"

这是否应该按照我希望的方式进行?要在基于第一个布局的第二个布局的前端设置变量? (再次,它在底层工作,以及帖子本身也很奇怪。)谢谢。

(实际上我并不想在每个帖子上将其设置为第三级,因为它只是一个通用的"文章"标题 - 我包括这是因为它在那个层面上工作,如上所述。)

1 个答案:

答案 0 :(得分:0)

解决方案是通过布局而不是页面引用变量,如here所述。

因此,将布局中的变量引用为{{ layout.headline }}而不是{{ page.headline }},现在可以通过继承模板的前提来设置(即,本身指定父模板的模板)在它自己的前面问题:layout: default)。