【问题标题】:How to specify layout in nanoc?如何在 nanoc 中指定布局?
【发布时间】:2018-02-14 10:05:42
【问题描述】:

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

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

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

是不是因为名为@9​​87654328@的文件有以下几行?

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

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

【问题讨论】:

标签: nanoc


【解决方案1】:

Rules 文件中,像这样调用#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 页面,这总体上会减少工作量。

【讨论】:

  • /welcome.*要添加到需要welcome.html模板的网页吗?
  • 我把答案澄清了一点,希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
相关资源
最近更新 更多