12

我想要一个模板“_layouts/template1.html”扩展(Django 样式)模板_layouts/default.html。

我把它作为 YAML 的前沿问题放在 _layouts/template1.html

---
layout: default 
---
{{page.content}}

但显然它不像我希望的那样工作(template1.html 中存在但不在 default.html 中的所有附加标记都不会呈现)。看起来使用 template1 布局的文件纯粹扩展了 default.html。

有没有办法在 Jekyll 中继承布局?

4

4 回答 4

10

你的意思很简单{{ content }}

是的,布局可以通过管道传输。在您的情况下,如果页面使用template1布局,则它是template1内容。然后,template1的结果就是default内容

于 2014-04-17T13:18:48.633 回答
5

Jekyll 的 Liquid 模板很容易扩展,你只需要确保你正在扩展而不是覆盖你想要的模板。

您实际上可能想要扩展页面而不是默认值。

因此,在您的模板 Front Matter 中:

---
layout:page
---
于 2015-03-02T23:12:50.937 回答
4

试试 Liquid Inheritance Gem:https ://github.com/danwrong/liquid-inheritance

参考: http: //www.sameratiani.com/2011/10/22/get-jekyll-working-with-liquid-inheritance.html

于 2012-05-02T21:53:57.377 回答
0

template1.htmldefault.html只要后者包含一个{{ content }}块,来自您的示例就会扩展。例如,请参见此处。它不会做的是它不会覆盖任何default.html已经包含的内容。为此,您需要 @juddlyon 提到的 Liquid Inheritance Gem。

于 2012-05-02T23:07:49.847 回答