1

在 Jekyll 中,我们在 HTML 文件中编写布局结构并将其放在_layout文件夹中。比如说,_layout文件夹中有一个名为 的文件welcome.html,为了让网页使用它,我们简单地指定如下:

---
title: Awesome webpage
layout: welcome
---

使用 nanoc 时如何做同样的事情?我认为它的工作方式相同,但不幸的是,它似乎没有拿起欢迎模板。它只是拾取 default.html 模板。

是因为调用的文件rule有以下几行吗?

compile '/' do
  filter :erb
  layout 'default'
end

我只想要一个特定的文件来选择welcome布局。怎么做?

4

1 回答 1

3

规则文件中,调用#layout如下:

compile '/' do
  filter :erb
  layout @item[:layout]
end

这将调用项目属性中的#layout任何内容。layout

layout要在未指定属性时回退到默认值,请使用#fetch

compile '/' do
  filter :erb
  layout @item.fetch(:layout, '/default.*')
end

这将使用layout属性中指定的任何布局,回退到匹配的布局/default.*

对于您的具体情况,您可能希望layout属性类似于/welcome.html,如下所示:

---
标题:很棒的网页
布局:/welcome.html
---

...但如果您愿意,您也可以操作从其中返回的字符串#fetch,以便仅welcome放入项目元数据即可。例如,如果您要导入大量Jekyll 页面,这总体上会减少工作量。

于 2018-02-14T12:38:10.617 回答