为通过site.pages.content访问的页面应用布局

时间:2018-04-09 12:43:46

标签: jekyll

我正在尝试使用代码在html中呈现特定的md文件:

{% assign subheader = site.pages | where: "title", "subheader" | first %}

{{ subheader.content }}

它有效,但我的布局不受尊重。它是否按预期工作?有没有办法应用这种布局?

1 个答案:

答案 0 :(得分:2)

布局在上下文中应用于当前页面"。

在您的示例中,如果已插入{{ subheader.content }},那么 base.md 会在前面的内容中定义 layout: base ,然后{{ subheader.content }}呈现为作为" base.md" 的一部分,因此将成为布局的一部分({ {1}})。

没有开箱即用的方法来渲染使用多个布局呈现的页面的各个部分。

唯一可能的路线是继承另一种布局。

例如, 说我有一个"基地"布局如下:

_layouts/base.html

和另一个布局[...] <header> <div id="parent-element"> <div class="btn">foo</div> {{ content }} </div> </header> [...]

subheader

最后是&#34; page.md&#34; 使用子标题布局:

---
layout: base
---

<ul id="greek">
  <li><a href="#">alpha</a></li>
  <li><a href="#">beta</a></li>
  <li><a href="#">gamma</a></li>
</ul>
{{ content }}

然后,生成的&#34; page.html&#34;将是:

---
layout: subheader
---

<ul id="fruits">
  <li><a href="#">apples</a></li>
  <li><a href="#">oranges</a></li>
  <li><a href="#">bananas</a></li>
</ul>