686c7b6ebci(Netlify): specify `HUGO_VERSION` environment variable onceda99a356ffix: change heading levele57da3f00Update taxonomy methods746172490Update description of rendered breadcrumb navigation6bc52fd40Clarify termdab07dcb0Fix typoe50fa452aFix typo6c1ea83c2Update template overview pagea5dc97845Clarify the append functiona135e52a0Update GitHub hosting instructionsa51bf9f4fUpdate sections pageed35fc6c4Update archetypes and glossary1a4522b3eFormat examplesa70f20094Use "hugo new content" to create content673846ff9Remove commentb7febf0c5Fix link6f6fe2133Miscellaneous edits99227dd18Remove lookup order table from output formats pagebc8870657tools/editors: Add Prettier Plugin for Go Templates157b169ebUpdate docs.yaml1c8f514e0Update cond functione5f1f8113Add assumptions to taxonomy and term template lookup order examples475b406e2Update postprocess2d6cb8dfcglossary: Update content type03b514bacAdd descriptions to template lookup order example sections06678f919glossary: Fix broken link4cd505612Simplify news listingfadb980dbUpdate glossary of terms491bacd78Change order of example sections for template lookup order04b8f39ecCreate glossary of terms12e896bc0Remove reference to asciidoctor-rouge extension055f7bb37Insert missing words8cd6ac387Miscellaneous edits2cbe17f41Update configuration.md529615373Update data-templates.md853154e65Update theme45f08627aresources.getRemote: Fix definition list29a51dac1Update docshelper3bdfe88c6Remove link to gitter from site footercacd0e461Use "map" instead of "dictionary"704dd5da6Document the transform.Remarshal template functione8d744951Populate news section via GitHub releases API3ff1118c7Replace docs.json with docs.yaml7726bbcacUse docs.json to generate default config throughout the site57dca93dfUse docs.json to generate default config for related content74d5082c7Add some .RenderShortcodes docscf5ab5062netlify: Hugo 0.117.0420f7aa69Add all config to docshelper.json git-subtree-dir: docs git-subtree-split:686c7b6eb1
4.0 KiB
title, description, categories, menu, keywords, signature, relatedfuncs
| title | description | categories | menu | keywords | signature | relatedfuncs | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| apply | Given an array or slice, `apply` returns a new slice with a function applied over it. |
|
|
|
|
apply expects at least three arguments, depending on the function being applied.
- The first argument is the sequence to operate on.
- The second argument is the name of the function as a string, which must be the name of a valid Hugo function.
- After that, the arguments to the applied function are provided, with the string
"."standing in for each element of the sequence the function is to be applied against.
Here is an example of a content file with names: as a front matter field:
{{< code-toggle file="content/example.md" fm=true copy=false >}} title: Example names: [ "Derek Perkins", "Joe Bergevin", "Tanner Linsley" ] {{< /code-toggle >}}
You can then use apply as follows:
{{ apply .Params.names "urlize" "." }}
Which will result in the following:
"derek-perkins", "joe-bergevin", "tanner-linsley"
This is roughly equivalent to using the following with range:
{{ range .Params.names }}{{ . | urlize }}{{ end }}
However, it is not possible to provide the output of a range to the delimit function, so you need to apply it.
If you have post-tag-list.html and post-tag-link.html as partials, you could use the following snippets, respectively:
{{< code file="layouts/partials/post-tag-list.html" copy=false >}} {{ with .Params.tags }}
{{< code file="layouts/partials/post-tag-link.html" copy=false >}} {{ . }} {{< /code >}}
This works, but the complexity of post-tag-list.html is fairly high. The Hugo template needs to perform special behavior for the case where there’s only one tag, and it has to treat the last tag as special. Additionally, the tag list will be rendered something like Tags: tag1 , tag2 , tag3 because of the way that the HTML is generated and then interpreted by a browser.
This first version of layouts/partials/post-tag-list.html separates all of the operations for ease of reading. The combined and DRYer version is shown next:
{{ with .Params.tags }}
<div class="tags-list">
Tags:
{{ $sort := sort . }}
{{ $links := apply $sort "partial" "post-tag-link.html" "." }}
{{ $clean := apply $links "chomp" "." }}
{{ delimit $clean ", " }}
</div>
{{ end }}
Now in the completed version, you can sort the tags, convert the tags to links with layouts/partials/post-tag-link.html, chomp off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example:
{{< code file="layouts/partials/post-tag-list.html" >}} {{ with .Params.tags }}
{{% note %}}
apply does not work when receiving the sequence as an argument through a pipeline.
{{% /note %}}