Build options
They are stored in a reserved front matter object named _build
with the following defaults:
_build:
list: always
publishResources: true
render: always
[_build]
list = 'always'
publishResources = true
render = 'always'
{
"_build": {
"list": "always",
"publishResources": true,
"render": "always"
}
}
render
If always
, the page will be treated as a published page, holding its dedicated output files (index.html
, etc…) and permalink.
Valid values are:
-
never
- The page will not be included in any page collection.
-
always (default)
- The page will be rendered to disk and get a
RelPermalink
etc.
-
link
- The page will be not be rendered to disk, but will get a
RelPermalink
.
list
Valid values are:
-
never
- The page will not be included in any page collection.
-
always (default)
- The page will be included in all page collections, e.g.
site.RegularPages
,.Pages
.
-
local
- The page will be included in any local page collection, e.g.
.RegularPages
,.Pages
. One use case for this would be to create fully navigable, but headless content sections.
publishResources
If set to true
(default) the Bundle’s Resources will be published.
Setting this to false
will still publish Resources on demand (when a resource’s .Permalink
or .RelPermalink
is invoked from the templates) but will skip the others.
Illustrative use cases
Not publishing a page
Project needs a “Who We Are” content file for front matter and body to be used by the homepage but nowhere else.
---
_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"
}
<section id="who-we-are">
{{ with site.GetPage "who-we-are" }}
{{ .Content }}
{{ end }}
</section>
Listing pages without publishing them
Website needs to showcase a few of the hundred “testimonials” available as content files without publishing any of them.
To avoid setting the build options on every testimonials, one can use cascade
on the testimonial section’s content file.
_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"
}
<section id="testimonials">
{{ range first 5 .Pages }}
<blockquote cite="{{ .Params.cite }}">
{{ .Content }}
</blockquote>
{{ end }}
</section>