diff options
Diffstat (limited to 'docs/content/en/functions/Param.md')
-rw-r--r-- | docs/content/en/functions/Param.md | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/content/en/functions/Param.md b/docs/content/en/functions/Param.md new file mode 100644 index 000000000..a2826a3c8 --- /dev/null +++ b/docs/content/en/functions/Param.md @@ -0,0 +1,50 @@ +--- +title: .Param +description: Returns a page parameter, falling back to a site parameter if present. +categories: [functions] +keywords: [] +menu: + docs: + parent: functions +function: + aliases: [] + returnType: any + signatures: [.Param KEY] +relatedFunctions: [] +--- + +The `.Param` method on `.Page` looks for the given `KEY` in page parameters, and returns the corresponding value. If it cannot find the `KEY` in page parameters, it looks for the `KEY` in site parameters. If it cannot find the `KEY` in either location, the `.Param` method returns `nil`. + +Site and theme developers commonly set parameters at the site level, allowing content authors to override those parameters at the page level. + +For example, to show a table of contents on every page, but allow authors to hide the table of contents as needed: + +**Configuration** + +{{< code-toggle file="hugo" copy=false >}} +[params] +display_toc = true +{{< /code-toggle >}} + +**Content** + +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title = 'Example' +date = 2023-01-01 +draft = false +display_toc = false +{{< /code-toggle >}} + +**Template** + +{{< code file="layouts/_default/single.html" copy=false >}} +{{ if .Param "display_toc" }} + {{ .TableOfContents }} +{{ end }} +{{< /code >}} + +The `.Param` method returns the value associated with the given `KEY`, regardless of whether the value is truthy or falsy. If you need to ignore falsy values, use this construct instead: + +{{< code file="layouts/_default/single.html" copy=false >}} +{{ or .Params.foo site.Params.foo }} +{{< /code >}} |