如何在nanoc中指定布局?

时间:2018-02-14 10:05:42

标签: nanoc

在Jekyll中,我们在HTML文件中编写布局结构并将其放在_layout文件夹中。比如,_layout文件夹中有一个名为welcome.html的文件,对于要使用它的网页,我们只需指定如下:

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

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

是否因为名为rule的文件有以下几行?

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

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

1 个答案:

答案 0 :(得分:1)

规则文件中,像这样调用#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,如下所示:

---
title: Awesome webpage
layout: /welcome.html
---

...但如果您愿意,也可以操纵从#fetch返回的字符串,这样只需在项目元数据中添加welcome即可。例如,如果您要导入一个批次的Jekyll页面,那么整体工作就会减少。