hugo/content/en/content-management/build-options.md
Bjørn Erik Pedersen 89044b8f87 Squashed 'docs/' changes from 19f44e150..ec0abe052
ec0abe052 Update index.md
ed44339cd Update bio.md
cef04eb95 Minor edits
4d45dcc8d Submitting Digital.gov to the Hugo Showcase
d35126af7 Azure uses storage containers, not buckets; edited accordingly. (#1078)
9c249cc89 fix grammatical error
9728699a3 Release Hugo 0.69.2
cccabed0c Merge branch 'temp692'
3d0a740c4 releaser: Add release notes to /docs for release of 0.69.2
b760aceb1 HTTPS external links in docs
49e4631b0 Release 0.69.1
01f3da870 Merge branch 'temp691'
8280d85aa releaser: Add release notes to /docs for release of 0.69.1
40ea44d24 fix typo (#1088)
725f53643 Rebuild cache
80ee1efd9 Add KeyCDN Showcase
f253e906e docs: Fix typo in Hugo's Security Model
b3ffd1ad3 Mentioning a range is equivalent to foreach (#1086)
0c396911f Update jsonify function docs
376befc9a Fix typo (#1084)
4bdc9bc72 Mark .Page.UniqueID as deprecated and add .File.UniqueID
30a7b7bf2 Update hosting-on-github.md
c5db4ba2b Update postprocess.md
1121f74a5 Update install guide with Scoop extended
8988aa6fa Merge branch 'postprocess'
225d3f9c7 Release Hugo 0.69.0
4caf7a89a releaser: Add release notes to /docs for release of 0.69.0
664b2a0fa Document resources.PostProcess and buildStats
9737b34e9 docs: Regen docs helper
0fab3ba24 Merge commit 'da3c3e5fbd0de65f956618cd2e35401460a3cd02'
96dad83b1 Update hosting-on-aws-amplify.md
57eb27897 Merge commit 'c494c37a4523fbf2db6274dc87e0877fd5bec24b'
dcc7afef7 fix typo in getting started

git-subtree-dir: docs
git-subtree-split: ec0abe052bcfebc65c323df4ff14ad277bb405d8
2020-05-06 12:12:21 +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 included 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>