hugo/content/en/content-management/build-options.md
Bjørn Erik Pedersen c9403cbcea Squashed 'docs/' changes from ec0abe052..6c2195936
6c2195936 Update featured.png
109a0fcca add len function to navigation side menu
39a356bc5 Revert "Add some rickrolls redirects"
b8393b1b5 Add some rickrolls redirects
2ce21c34b Update configuration-markup.md (add rel="noopener")
95bd7974e Disambiguate global and page resources
5e233dc4b Update base.md
959b9dc3a Fix typo on "where" page
aff8059a1 Release 0.70.0
44a172ac0 releaser: Add release notes to /docs for release of 0.70.0
1b01c8988 Release 0.70.0
5ece21c6c Merge commit '89044b8f8795f17c36396c67823183a20fc88139'
0894aec5b Rename transpileJS to babel
5da27c7a6 resources: Add JavaScript transpiling solution

git-subtree-dir: docs
git-subtree-split: 6c21959360394165435fa36eac489bf6a701ae9a
2020-05-18 15:24:58 +02:00

3 KiB

title linktitle description date publishdate keywords categories menu weight draft aliases toc
Build Options Build Options Build options help define how Hugo must treat a given page when building the site. 2020-03-02 2020-03-02
build
content
front matter
page resources
content management
docs
parent weight
content-management 31
31 false
/content/build-options/
true

They are stored in a reserved Front Matter object named _build with the following defaults:

_build:
  render: true
  list: always
  publishResources: true

render

If true, the page will be treated as a published page, holding its dedicated output files (index.html, etc...) and permalink.

list

Note that we extended this property from a boolean to an enum in Hugo 0.68.0.

Valid values are:

never
The page will not be incldued in any page collection.
always (default)
The page will be included in all page collections, e.g. site.RegularPages, $page.Pages.
local
The page will be included in any local page collection, e.g. $page.RegularPages, $page.Pages. One use case for this would be to create fully navigable, but headless content sections. {{< new-in "0.68.0" >}}

If true, the page will be treated as part of the project's collections and, when appropriate, returned by Hugo's listing methods (.Pages, .RegularPages etc...).

publishResources

If set to true the [Bundle's Resources]({{< relref "content-management/page-bundles" >}}) 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.

{{% note %}} Any page, regardless of their build options, will always be available using the [.GetPage]({{< relref "functions/GetPage" >}}) methods. {{% /note %}}


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.

# content/who-we-are.md`
title: Who we are
_build:
 list: false
 render: false
{{/* layouts/index.html */}}
<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]({{< relref "/content-management/front-matter#front-matter-cascade" >}}) on the testimonial section's content file.

#content/testimonials/_index.md
title: Testimonials
# section build options:
_build:
  render: true
# children build options with cascade
cascade:
  _build:
    render: false
    list: true # default
{{/* layouts/_defaults/testimonials.html */}}
<section id="testimonials">
{{ range first 5 .Pages }}
  <blockquote cite="{{ .Params.cite }}">
    {{ .Content }}
  </blockquote>
{{ end }}
</section>