我想要一个模板“_layouts / template1.html”扩展(Django风格)模板_layouts / default.html。
我在_layouts / template1.html
中将此作为YAML的前提---
layout: default
---
{{page.content}}
但显然它不能像我希望的那样工作(template1.html中存在的所有附加标记,但不是在default.html中不呈现)。看起来使用template1布局的文件纯粹扩展了default.html。
在Jekyll中有没有办法进行布局继承?
答案 0 :(得分:10)
你的意思只是{{ content }}
。
是的,布局可以管道。在您的情况下,如果页面使用 template1 布局,则 template1 的内容。然后, template1 的结果是默认的内容。
答案 1 :(得分:4)
尝试Liquid Inheritance Gem:https://github.com/danwrong/liquid-inheritance
参考:http://www.sameratiani.com/2011/10/22/get-jekyll-working-with-liquid-inheritance.html
答案 2 :(得分:3)
Jekyll的Liquid模板非常容易扩展,您必须确保扩展而不是覆盖您想要的模板。
您可能实际上想要扩展页面而不是默认。
所以,在你的模板Front Matter:
---
layout:page
---
答案 3 :(得分:1)
template1.html
块,示例中的 default.html
将扩展{{ content }}
。例如,请参阅here。它不会做的是它不会覆盖default.html
已经包含的任何内容。为此,你需要液体继承宝石,正如@juddlyon所提到的那样。