在Jekyll中,我们在HTML文件中编写布局结构并将其放在_layout
文件夹中。比如,_layout
文件夹中有一个名为welcome.html
的文件,对于要使用它的网页,我们只需指定如下:
---
title: Awesome webpage
layout: welcome
---
使用nanoc时如何做同样的事情?我认为它的工作方式相同,但不幸的是,似乎没有拿起欢迎模板。它只是拿起了default.html模板。
是否因为名为rule
的文件有以下几行?
compile '/' do
filter :erb
layout 'default'
end
我只想要一个特定的文件来获取welcome
布局。怎么做?
答案 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页面,那么整体工作就会减少。