Files
hugo/content/en/functions/default.md
T
Bjørn Erik Pedersen ec920363cd Squashed 'docs/' changes from 63386081c..4c5edacfe
4c5edacfe cSpell config update (#1700)
9df788b25 Fix broken link (hugo modules) (#1710)
9928a70d6 Fix workspace formatting (#1707)
55467e7c8 Update partials.md
9f4bd0023 Update formats.md
9b3913c86 Remove footnoteAnchorPrefix and footnoteReturnLinkContents (#1704)
94502a09b Code block render hooks are introduced in v0.93.0 (#1701)
c447270ef Update sitemap-template.md
78665c1e0 Update sitemap-template.md
60653c17d Update the caddy error docs link (#1696)
9a3675aad Update sitemap templates (#1699)
e0d08cdbb Add wpxr-to-static to list of migration tools (#1512)
b53eb5a08 Add page for deploying with rclone (#1511)
4207c57ff netlify: Hugo 0.96.0
a18d646ea docs: Regen docshelper
e3e0981ed docs: Regen CLI docs
fda988d01 Merge commit 'd276e901b36d2576ef8350ed96b17f66254eac1b'
e4a26dbca tpl/crypto: Add optional encoding arg to hmac function

git-subtree-dir: docs
git-subtree-split: 4c5edacfee
2022-04-08 13:32:01 +02:00

2.4 KiB

title, description, qref, date, publishdate, lastmod, keywords, categories, menu, toc, signature, workson, hugoversion, relatedfuncs, deprecated, draft, aliases
title description qref date publishdate lastmod keywords categories menu toc signature workson hugoversion relatedfuncs deprecated draft aliases
default Allows setting a default value that can be returned if a first value is not set. Returns a default value if a value is not set when checked. 2017-02-01 2017-02-01 2017-02-01
defaults
functions
docs
parent
functions
default DEFAULT INPUT
false false

default checks whether a given value is set and returns a default value if it is not. Set in this context means different things depending on the data type:

  • non-zero for numeric types and times
  • non-zero length for strings, arrays, slices, and maps
  • any boolean or struct value
  • non-nil for any other types

default function examples reference the following content page:

{{< code file="content/posts/default-function-example.md" >}}

title: Sane Defaults seo_title: date: 2017-02-18 font: oldparam: The default function helps make your templating DRYer. newparam:

{{< /code >}}

default can be written in more than one way:

{{ index .Params "font" | default "Roboto" }}
{{ default "Roboto" (index .Params "font") }}

Both of the above default function calls return Roboto.

A default value, however, does not need to be hard coded like the previous example. The default value can be a variable or pulled directly from the front matter using dot notation:

{{< code file="variable-as-default-value.html" nocopy="true" >}} {{$old := .Params.oldparam }}

{{ .Params.newparam | default $old }}

{{< /code >}}

Which would return:

<p>The default function helps make your templating DRYer.</p>

And then using dot notation

{{< code file="dot-notation-default-value.html" >}}

{{< /code >}}

Which would return

{{< output file="dot-notation-default-return-value.html" >}}

{{< /output >}}

The following have equivalent return values but are far less terse. This demonstrates the utility of default:

Using if:

{{< code file="if-instead-of-default.html" nocopy="true" >}}

=> Sane Defaults {{< /code >}}

Using with:

{{< code file="with-instead-of-default.html" nocopy="true" >}}

=> Sane Defaults {{< /code >}}