在我的默认布局中,我引用了变量{{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
设置为"很棒的帖子。"
这是否应该按照我希望的方式进行?要在基于第一个布局的第二个布局的前端设置变量? (再次,它在底层工作,以及帖子本身也很奇怪。)谢谢。
(实际上我并不想在每个帖子上将其设置为第三级,因为它只是一个通用的"文章"标题 - 我包括这是因为它在那个层面上工作,如上所述。)
答案 0 :(得分:0)
解决方案是通过布局而不是页面引用变量,如here所述。
因此,将布局中的变量引用为{{ layout.headline }}
而不是{{ page.headline }}
,现在可以通过继承模板的前提来设置(即,本身指定父模板的模板)在它自己的前面问题:layout: default
)。