c43daf45fUpdate build-options.md3ebbfedd4Build options: Improve readability5091bf6a0Improve safeHTMLAttr explanationb64cbce2eFix description of collections.Apply6ea264b9cnetlify: Hugo 0.115.4b42e7c542Revert "config: Remove disableLiveReload"35ce2290eRemove excess spaces in configuration docs2edf761deUpdate listed titleCaseStyle default value887f6fb97config: Remove disableLiveReloadc9f49fb26Fix typo37d8569acRemove tools associated with Atom871d11b72Fix URL in postprocess docsbbb17d29fUpdate GitLab workflowbc53ea5ceUse sentence-style capitalization for headings7ca578786netlify: Hugo 0.115.3c5e010bd0Merge branch 'tempv0.115.3'c885604bfRemove starter kits page4c0fe269eUpdate mention of Netlify CMS to Decap CMS05067175cConsistently use file name instead of filename763dd6404Improve multilingual config example and descriptionse5aa61ec5Use lowercase when referring to front matter (#2132)7ba3d0c72docs: Refresh docs.jsonde8bddedfUpdate description of timeout configuration valuee1245d9f8netify: Hugo 0.115.2153a36bdfMerge branch 'tempv0.115.2'707cec754Fix typo in figure example in shortcodes.md128cbe1e5Improve taxonomy template examples4e743ec36Improve highlight function examplef96fa6805transpile sass: Fixes typoe4a8a21f7Compile Sass to CSS, not SCSSc1538bd00docs: Regenerate CLI docsbd4e33436Add titleCaseStyle none and firstupper6ff93d478Update quick-start.md5c6653cb1Update build config examples and explanation1458d9a43Remove the `url` parameter6a1e92044netlify: Hugo 0.115.1a9d5d6f2fMerge branch 'tempv0.115.1'4c4882384docs: Regen docs helperd1aa1c1f5Add link to PowerShell vs Windows PowerShell documentation6e3b70c21Fix link to Git installation instructions4f8a9ca38Clarify resources.Copy argumentsee86dd121Update themedc7c305cfUpdate theme60c23920bClarify caching for resources.FromString (#2120)5bf2fef6dnetlify: Hugo 0.115.046bde87c5Merge branch 'tempv0.115.0'42cc48c16Specify target path caching for resources.ExecuteAsTemplate (#2027)a54bf4cd0Correct the sample code of mermaid (#2119)8c49b06fcdocs: Update permalinks documentationa4818d99bPage bundles: link to info about single vs. list page templates (#2116)3fc7744d7snap: Document removable media accessdbd08f58aUpdate themedf5b88633netlify: Hugo 0.114.16b859834aFix typo9ec92cf68Improve Dart Sass example for Netlify2d294ece9Add Dart Sass installation and usage documentation4c6b77d6cFix placement of curly braces897812a50Update template-debugging.md to include a jsonify example22bca519bUpdate GitHub Pages hosting instructions (#2109)a964d93ceDocument math functions new in v0.114.0 (#2108)9f4cb040enetlify: Hugo 0.114.055b4d9221Merge branch 'tempv0.114.0'93c4dcf93docs: Regen docshelper96f03c77fdocs: Regen CLI docs8e22a228aClarify resource media type variables (#2106)2652da8d4Update transform.Unmarshal.md (#2105)92657177aUpdate theme4601c1d65Update themea216f3145Merge commit '3c1deaf201a35de08d23cc58f8f03682cace3349'eed8794f5cache: Set default cache path based on $USER git-subtree-dir: docs git-subtree-split:c43daf45fd
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 parameters, depending on the function being applied.
- The first parameter is the sequence to operate on.
- The second parameter is the name of the function as a string, which must be the name of a valid Hugo function.
- After that, the parameters 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 %}}