【发布时间】:2017-07-30 16:31:31
【问题描述】:
在我的默认布局中,我引用了一个变量{{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 的前面的内容中删除变量设置)时,默认布局的变量占位符中没有呈现任何内容。
换句话说,在帖子布局中,我没有看到“伟大的文章”或“伟大的网站”,所以它就像默认布局中“伟大的网站”的初始变量设置-- 帖子布局引用的 -- 正在被覆盖,但没有被替换。
然而这在第三层使用some-post.md--在这里设置headline,其中特定帖子使用帖子布局,而帖子布局本身使用默认布局,确实导致@987654326 @ 设置为“很棒的帖子”。
这应该按照我希望的方式工作吗?在基于第一个布局的第二个布局的前面设置一个变量? (同样奇怪的是,它在底层工作,与帖子本身一起工作。)谢谢。
(实际上我不想在每个帖子的第三级设置它,因为它只是一个通用的“文章”标题——我在这里包括它是因为它在那个级别工作,如上所述.)
【问题讨论】:
-
您使用的是什么版本的 Jekyll?运行
bundle exec jekyll -v检查 -
我所有的 gemz 都是最新的。知道为什么没有设置变量(或不会显示)吗?奇怪的是它在后期级别(3-deep)工作。
-
我猜这种行为是因为
page变量命名空间仅适用于站点中的文档。 (因此在示例中与index.md和some-post.md一起使用。)并且布局不响应该命名空间。 -
Jekyll 3.5 中添加了一个类似的功能,在模板中可以使用布局前端变量。但我自己没试过..
-
这听起来合乎逻辑。也许我会看到新功能,或者以其他方式完成。谢谢。 :)
标签: jekyll