构建选项
它们存储在一个名为 _build
的保留前置元数据对象中,具有以下默认值:
_build:
list: always
publishResources: true
render: always
[_build]
list = 'always'
publishResources = true
render = 'always'
{
"_build": {
"list": "always",
"publishResources": true,
"render": "always"
}
}
render
如果设置为 always
,页面将被视为已发布的页面,并保留其专属的输出文件(index.html
等…)和永久链接。
有效值为:
-
never
- 该页面不会包含在任何页面集合中。
-
always (默认值)
- 该页面将渲染到磁盘并获得一个
RelPermalink
等。
-
link
- 该页面不会被渲染到磁盘,但会获得一个
RelPermalink
。
list
有效值为:
-
never
- 该页面不会包含在任何页面集合中。
-
always (默认值)
- 该页面将包含在所有页面集合中,例如
site.RegularPages
,.Pages
。
-
local
- 该页面将包含在任何 local 页面集合中,例如
.RegularPages
,.Pages
。一个使用案例是创建完全可导航但无头内容部分。
publishResources
如果设置为 true
(默认值),Bundle’s Resources 将被发布。
将其设置为 false
将仍然按需发布资源(当模板中调用资源的 .Permalink
或 .RelPermalink
时),但会跳过其他资源。
示例用例
不发布页面
项目需要一个“我们是谁”的内容文件,供主页使用,但其他任何地方都不使用。
content/who-we-are.md
---
_build:
list: false
render: false
title: Who we are
---
+++
title = 'Who we are'
[_build]
list = false
render = false
+++
{
"_build": {
"list": false,
"render": false
},
"title": "Who we are"
}
layouts/index.html
<section id="who-we-are">
{{ with site.GetPage "who-we-are" }}
{{ .Content }}
{{ end }}
</section>
列出页面但不发布它们
网站需要展示一些百余个“推荐信”可用的内容文件,但不发布其中任何一个。
为了避免在每个推荐信上设置构建选项,可以在推荐信部分的内容文件上使用 cascade
。
_build:
render: true
cascade:
_build:
list: true
render: false
title: Testimonials
title = 'Testimonials'
[_build]
render = true
[cascade]
[cascade._build]
list = true
render = false
{
"_build": {
"render": true
},
"cascade": {
"_build": {
"list": true,
"render": false
}
},
"title": "Testimonials"
}
layouts/_defaults/testimonials.html
<section id="testimonials">
{{ range first 5 .Pages }}
<blockquote cite="{{ .Params.cite }}">
{{ .Content }}
</blockquote>
{{ end }}
</section>