mirror of
https://github.com/gohugoio/hugo.git
synced 2026-09-01 03:02:38 +00:00
Add return type to functions
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
---
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
description: ""
|
||||
signature: []
|
||||
title: {{ replace .File.ContentBaseName "-" " " | title }}
|
||||
description:
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
relatedfuncs: []
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: []
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
description: ""
|
||||
title: {{ replace .File.ContentBaseName "-" " " | title }}
|
||||
description:
|
||||
date: {{ .Date }}
|
||||
---
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
|
||||
title: {{ replace .Name "-" " " | title }}
|
||||
title: {{ replace .File.ContentBaseName "-" " " | title }}
|
||||
date: {{ now.Format "2006-01-02" }}
|
||||
|
||||
description: "A short description of this page."
|
||||
description: A short description of this page.
|
||||
|
||||
# The URL to the site on the internet.
|
||||
siteURL: https://gohugo.io/
|
||||
@@ -34,4 +34,3 @@ bio.md
|
||||
|
||||
featured.png
|
||||
: A reasonably sized screenshot of your website. It can be named anything, but the name must start with "featured". The sample image is `1500x750` (2:1 aspect ratio).
|
||||
|
||||
|
||||
@@ -36,13 +36,13 @@ Hugo is for people building a blog, a company site, a portfolio site, documentat
|
||||
[@spf13]: https://twitter.com/spf13
|
||||
[Amazon S3]: https://aws.amazon.com/s3/
|
||||
[Azure]: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website
|
||||
[CloudFront]: https://aws.amazon.com/cloudfront/ "Amazon CloudFront"
|
||||
[CloudFront]: https://aws.amazon.com/cloudfront/
|
||||
[DreamHost]: https://www.dreamhost.com/
|
||||
[Firebase]: https://firebase.google.com/docs/hosting/ "Firebase static hosting"
|
||||
[Firebase]: https://firebase.google.com/docs/hosting/
|
||||
[GitHub Pages]: https://pages.github.com/
|
||||
[GitLab Pages]: https://about.gitlab.com/features/pages/
|
||||
[Go language]: https://go.dev/
|
||||
[GoDaddy]: https://www.godaddy.com/ "GoDaddy.com Hosting"
|
||||
[GoDaddy]: https://www.godaddy.com/
|
||||
[Google Cloud Storage]: https://cloud.google.com/storage/
|
||||
[Heroku]: https://www.heroku.com/
|
||||
[Jekyll]: https://jekyllrb.com/
|
||||
|
||||
@@ -68,7 +68,7 @@ If none of these exists, Hugo uses a built-in default archetype.
|
||||
|
||||
## Functions and context
|
||||
|
||||
You can use any [template function] within an archetype. As shown above, the default archetype uses the [`replace`](/functions/replace/) function to replace hyphens with spaces when populating the title in front matter.
|
||||
You can use any [template function] within an archetype. As shown above, the default archetype uses the [`replace`](/functions/strings/replace) function to replace hyphens with spaces when populating the title in front matter.
|
||||
|
||||
Archetypes receive the following objects and values in [context]:
|
||||
|
||||
|
||||
@@ -115,7 +115,6 @@ Markdown syntax is simple enough to learn in a single sitting. The following are
|
||||
* [Markdown Tutorial (Interactive), Garen Torikian][mdtutorial]
|
||||
* [The Markdown Guide, Matt Cone][mdguide]
|
||||
|
||||
[`emojify` function]: /functions/emojify/
|
||||
[ascii]: https://asciidoctor.org/
|
||||
[config]: /getting-started/configuration/
|
||||
[developer tools]: /tools/
|
||||
|
||||
@@ -115,7 +115,7 @@ Metadata (EXIF, IPTC, XMP, etc.) is not preserved during image transformation. U
|
||||
The `Process` method is also available as a filter, which is more effective if need to apply multiple filters to an image. See [Process filter](/functions/images/#process).
|
||||
{{% /note %}}
|
||||
|
||||
Process processes the image with the given specification. The specification can contain an optional action, one of `resize`, `crop`, `fit` or `fill`. This means that you can use this method instead of [`Resize`], [`Fit`], [`Fill`], or [`Crop`].
|
||||
Process processes the image with the given specification. The specification can contain an optional action, one of `resize`, `crop`, `fit` or `fill`. This means that you can use this method instead of [`Resize`], [`Fit`], [`Fill`], or [`Crop`].
|
||||
|
||||
See [Options](#image-processing-options) for available options.
|
||||
|
||||
@@ -501,11 +501,11 @@ If you change image processing methods or options, or if you rename or remove im
|
||||
hugo --gc
|
||||
```
|
||||
|
||||
[time.Format]: /functions/dateformat
|
||||
[time.Format]: /functions/time/format
|
||||
[`anchor`]: /content-management/image-processing#anchor
|
||||
[mounted]: /hugo-modules/configuration#module-configuration-mounts
|
||||
[page bundle]: /content-management/page-bundles
|
||||
[`lang.FormatNumber`]: /functions/lang
|
||||
[`lang.FormatNumber`]: /functions/lang/formatnumber
|
||||
[filters]: /functions/images
|
||||
[github.com/disintegration/imaging]: <https://github.com/disintegration/imaging#image-resizing>
|
||||
[Smartcrop]: <https://github.com/muesli/smartcrop#smartcrop>
|
||||
@@ -519,4 +519,4 @@ hugo --gc
|
||||
[`Fit`]: #fit
|
||||
[`Resize`]: #resize
|
||||
[site configuration]: #processing-options
|
||||
[`with`]: /functions/with/
|
||||
[`with`]: /functions/go-template/with/
|
||||
|
||||
@@ -468,7 +468,7 @@ English|Wednesday, November 3, 2021
|
||||
Français|mercredi 3 novembre 2021
|
||||
Deutsch|Mittwoch, 3. November 2021
|
||||
|
||||
See [time.Format] for details.
|
||||
See [`time.Format`] for details.
|
||||
|
||||
### Currency
|
||||
|
||||
@@ -636,7 +636,7 @@ i18n|MISSING_TRANSLATION|en|wordCount
|
||||
To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there is more than one language, URLs must meet the following criteria:
|
||||
|
||||
* Come from the built-in `.Permalink` or `.RelPermalink`
|
||||
* Be constructed with the [`relLangURL` template function][rellangurl] or the [`absLangURL` template function][abslangurl] **OR** be prefixed with `{{ .LanguagePrefix }}`
|
||||
* Be constructed with the [`relLangURL`] or [`absLangURL`] template function, or be prefixed with `{{ .LanguagePrefix }}`
|
||||
|
||||
If there is more than one language defined, the `LanguagePrefix` variable will equal `/en` (or whatever your `CurrentLanguage` is). If not enabled, it will be an empty string (and is therefore harmless for single-language Hugo websites).
|
||||
|
||||
@@ -657,23 +657,23 @@ hugo new content content/en/post/test.md
|
||||
hugo new content content/de/post/test.md
|
||||
```
|
||||
|
||||
[abslangurl]: /functions/abslangurl
|
||||
[`abslangurl`]: /functions/urls/abslangurl
|
||||
[config]: /getting-started/configuration/
|
||||
[contenttemplate]: /templates/single-page-templates/
|
||||
[go-i18n-source]: https://github.com/nicksnyder/go-i18n
|
||||
[go-i18n]: https://github.com/nicksnyder/go-i18n
|
||||
[homepage]: /templates/homepage/
|
||||
[Hugo Multilingual Part 1: Content translation]: https://regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/
|
||||
[i18func]: /functions/i18n/
|
||||
[lang.FormatAccounting]: /functions/lang
|
||||
[lang.FormatCurrency]: /functions/lang
|
||||
[lang.FormatNumber]: /functions/lang
|
||||
[lang.FormatNumberCustom]: /functions/lang
|
||||
[lang.FormatPercent]: /functions/lang
|
||||
[lang.Merge]: /functions/lang.merge/
|
||||
[i18func]: /functions/lang/translate
|
||||
[lang.FormatAccounting]: /functions/lang/formataccounting
|
||||
[lang.FormatCurrency]: /functions/lang/formatcurrency
|
||||
[lang.FormatNumber]: /functions/lang/formatnumber
|
||||
[lang.FormatNumberCustom]: /functions/lang/formatnumbercustom
|
||||
[lang.FormatPercent]: /functions/lang/formatpercent
|
||||
[lang.Merge]: /functions/lang/merge/
|
||||
[menus]: /content-management/menus/
|
||||
[OS environment]: /getting-started/configuration/#configure-with-environment-variables
|
||||
[rellangurl]: /functions/rellangurl
|
||||
[`rellangurl`]: /functions/urls/rellangurl
|
||||
[RFC 5646]: https://tools.ietf.org/html/rfc5646
|
||||
[single page templates]: /templates/single-page-templates/
|
||||
[time.Format]: /functions/dateformat
|
||||
[`time.Format`]: /functions/time/format
|
||||
|
||||
@@ -187,7 +187,7 @@ Rendered:
|
||||
|
||||
To specify one or more [highlighting options], include a quotation-encapsulated, comma-separated list:
|
||||
|
||||
[highlighting options]: /functions/highlight/
|
||||
[highlighting options]: /functions/transform/highlight/
|
||||
|
||||
```text
|
||||
{{</* highlight go-html-template "lineNos=inline, lineNoStart=42" */>}}
|
||||
@@ -391,7 +391,7 @@ To learn more about creating custom shortcodes, see the [shortcode template docu
|
||||
[`figure` shortcode]: #figure
|
||||
[contentmanagementsection]: /content-management/formats/
|
||||
[examplegist]: https://gist.github.com/spf13/7896402
|
||||
[figureelement]: https://html5doctor.com/the-figure-figcaption-elements/ "An article from HTML5 doctor discussing the fig and figcaption elements."
|
||||
[figureelement]: https://html5doctor.com/the-figure-figcaption-elements/
|
||||
[Hugo and the GDPR]: /about/hugo-and-gdpr/
|
||||
[Instagram]: https://www.instagram.com/
|
||||
[pagevariables]: /variables/page/
|
||||
|
||||
@@ -92,7 +92,7 @@ Gives this:
|
||||
|
||||
## Highlight template function
|
||||
|
||||
See [Highlight](/functions/highlight/).
|
||||
See [Highlight](/functions/transform/highlight/).
|
||||
|
||||
## Highlighting in code fences
|
||||
|
||||
|
||||
@@ -191,12 +191,11 @@ title: "Bruce Willis"
|
||||
wikipedia: "https://en.wikipedia.org/wiki/Bruce_Willis"
|
||||
{{< /code-toggle >}}
|
||||
|
||||
[`urlize` template function]: /functions/urlize/
|
||||
[content section]: /content-management/sections/
|
||||
[content type]: /content-management/types/
|
||||
[documentation on archetypes]: /content-management/archetypes/
|
||||
[front matter]: /content-management/front-matter/
|
||||
[taxonomy list templates]: /templates/taxonomy-templates/#taxonomy-list-templates
|
||||
[taxonomy templates]: /templates/taxonomy-templates/
|
||||
[terms within the taxonomy]: /templates/taxonomy-templates/#taxonomy-terms-templates "See how to order terms associated with a taxonomy"
|
||||
[terms within the taxonomy]: /templates/taxonomy-templates/#taxonomy-terms-templates
|
||||
[configuration]: /getting-started/configuration/
|
||||
|
||||
@@ -2,13 +2,15 @@
|
||||
title: .AddDate
|
||||
description: Returns the time corresponding to adding the given number of years, months, and days to the given time.Time value.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature: [.AddDate YEARS MONTHS DAYS]
|
||||
function:
|
||||
aliases: []
|
||||
returnType: time.Time
|
||||
signatures: [.AddDate YEARS MONTHS DAYS]
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -0,0 +1,90 @@
|
||||
---
|
||||
title: .Format
|
||||
description: Returns a formatted time.Time value.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: string
|
||||
signatures: [.Format LAYOUT]
|
||||
relatedFunctions: []
|
||||
toc: true
|
||||
---
|
||||
|
||||
```go-template
|
||||
{{ $t := "2023-01-27T23:44:58-08:00" }}
|
||||
{{ $t = time.AsTime $t }}
|
||||
{{ $format := "2 Jan 2006" }}
|
||||
|
||||
{{ $t.Format $format }} → 27 Jan 2023
|
||||
```
|
||||
|
||||
{{% note %}}
|
||||
To return a formatted and localized `time.Time` value, use the [`time.Format`] function instead.
|
||||
|
||||
[`time.Format`]: /functions/time/format
|
||||
{{% /note %}}
|
||||
|
||||
Use the `.Format` method with any `time.Time` value, including the four predefined front matter dates:
|
||||
|
||||
```go-html-template
|
||||
{{ $format := "2 Jan 2006" }}
|
||||
|
||||
{{ .Date.Format $format }}
|
||||
{{ .PublishDate.Format $format }}
|
||||
{{ .ExpiryDate.Format $format }}
|
||||
{{ .Lastmod.Format $format }}
|
||||
```
|
||||
|
||||
## Layout string
|
||||
|
||||
{{% readfile file="/functions/_common/time-layout-string.md" %}}
|
||||
|
||||
## Examples
|
||||
|
||||
Given this front matter:
|
||||
|
||||
{{< code-toggle fm=true copy=false >}}
|
||||
title = "About time"
|
||||
date = 2023-01-27T23:44:58-08:00
|
||||
{{< /code-toggle >}}
|
||||
|
||||
The examples below were rendered in the `America/Los_Angeles` time zone:
|
||||
|
||||
Format string|Result
|
||||
:--|:--
|
||||
`Monday, January 2, 2006`|`Friday, January 27, 2023`
|
||||
`Mon Jan 2 2006`|`Fri Jan 27 2023`
|
||||
`January 2006`|`January 2023`
|
||||
`2006-01-02`|`2023-01-27`
|
||||
`Monday`|`Friday`
|
||||
`02 Jan 06 15:04 MST`|`27 Jan 23 23:44 PST`
|
||||
`Mon, 02 Jan 2006 15:04:05 MST`|`Fri, 27 Jan 2023 23:44:58 PST`
|
||||
`Mon, 02 Jan 2006 15:04:05 -0700`|`Fri, 27 Jan 2023 23:44:58 -0800`
|
||||
|
||||
## UTC and local time
|
||||
|
||||
Convert and format any `time.Time` value to either Coordinated Universal Time (UTC) or local time.
|
||||
|
||||
```go-html-template
|
||||
{{ $t := "2023-01-27T23:44:58-08:00" }}
|
||||
{{ $t = time.AsTime $t }}
|
||||
{{ $format := "2 Jan 2006 3:04:05 PM MST" }}
|
||||
|
||||
{{ $t.UTC.Format $format }} → 28 Jan 2023 7:44:58 AM UTC
|
||||
{{ $t.Local.Format $format }} → 27 Jan 2023 11:44:58 PM PST
|
||||
```
|
||||
|
||||
## Ordinal representation
|
||||
|
||||
Use the [`humanize`](/functions/inflect/humanize) function to render the day of the month as an ordinal number:
|
||||
|
||||
```go-html-template
|
||||
{{ $t := "2023-01-27T23:44:58-08:00" }}
|
||||
{{ $t = time.AsTime $t }}
|
||||
|
||||
{{ humanize $t.Day }} of {{ $t.Format "January 2006" }} → 27th of January 2023
|
||||
```
|
||||
@@ -2,15 +2,17 @@
|
||||
title: .Get
|
||||
description: Accesses positional and ordered parameters in shortcode declaration.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .Get INDEX
|
||||
- .Get KEY
|
||||
function:
|
||||
aliases: []
|
||||
returnType: any
|
||||
signatures:
|
||||
- .Get INDEX
|
||||
- .Get KEY
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
`.Get` is specifically used when creating your own [shortcode template][sc], to access the [positional and named](/templates/shortcode-templates/#positional-vs-named-parameters) parameters passed to it. When used with a numeric INDEX, it queries positional parameters (starting with 0). With a string KEY, it queries named parameters.
|
||||
@@ -2,14 +2,15 @@
|
||||
title: .GetPage
|
||||
description: Gets a `Page` of a given `path`.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .GetPage PATH
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: [.GetPage PATH]
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
`.GetPage` returns a page of a given `path`. Both `Site` and `Page` implements this method. The `Page` variant will, if given a relative path -- i.e. a path without a leading `/` -- try look for the page relative to the current page.
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: .HasMenuCurrent
|
||||
description: Reports whether the given page object matches the page object associated with one of the child menu entries under the given menu entry in the given menu.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: bool
|
||||
signatures: [PAGE.HasMenuCurrent MENU MENUENTRY]
|
||||
relatedFunctions:
|
||||
- .HasMenuCurrent
|
||||
- .IsMenuCurrent
|
||||
---
|
||||
|
||||
If the page object associated with the menu entry is a section, this method also returns `true` for any descendant of that section.
|
||||
|
||||
```go-html-template
|
||||
{{ $currentPage := . }}
|
||||
{{ range site.Menus.main }}
|
||||
{{ if $currentPage.IsMenuCurrent .Menu . }}
|
||||
<a class="active" aria-current="page" href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ else if $currentPage.HasMenuCurrent .Menu . }}
|
||||
<a class="ancestor" aria-current="true" href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ else }}
|
||||
<a href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
See [menu templates] for a complete example.
|
||||
|
||||
[menu templates]: /templates/menu-templates/#example
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: .IsMenuCurrent
|
||||
description: Reports whether the given page object matches the page object associated with the given menu entry in the given menu.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: bool
|
||||
signatures: [PAGE.IsMenuCurrent MENU MENUENTRY]
|
||||
relatedFunctions:
|
||||
- .HasMenuCurrent
|
||||
- .IsMenuCurrent
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
{{ $currentPage := . }}
|
||||
{{ range site.Menus.main }}
|
||||
{{ if $currentPage.IsMenuCurrent .Menu . }}
|
||||
<a class="active" aria-current="page" href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ else if $currentPage.HasMenuCurrent .Menu . }}
|
||||
<a class="ancestor" aria-current="true" href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ else }}
|
||||
<a href="{{ .URL }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
See [menu templates] for a complete example.
|
||||
|
||||
[menu templates]: /templates/menu-templates/#example
|
||||
@@ -2,14 +2,15 @@
|
||||
title: .Param
|
||||
description: Returns a page parameter, falling back to a site parameter if present.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .Param KEY
|
||||
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`.
|
||||
@@ -2,14 +2,15 @@
|
||||
title: .Render
|
||||
description: Takes a view to apply when rendering content.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .Render LAYOUT
|
||||
function:
|
||||
aliases: []
|
||||
returnType: template.HTML
|
||||
signatures: [.Render LAYOUT]
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
The view is an alternative layout and should be a file name that points to a template in one of the locations specified in the documentation for [Content Views](/templates/views).
|
||||
@@ -1,15 +1,15 @@
|
||||
---
|
||||
title: .RenderString
|
||||
description: sRenders markup to HTML.
|
||||
description: Renders markup to HTML.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .RenderString MARKUP [OPTIONS]
|
||||
function:
|
||||
aliases: []
|
||||
returnType: template.HTML
|
||||
signatures: ['.RenderString MARKUP [OPTIONS]']
|
||||
---
|
||||
|
||||
`.RenderString` is a method on `Page` that renders some markup to HTML using the content renderer defined for that page (if not set in the options).
|
||||
@@ -32,4 +32,4 @@ Some examples:
|
||||
{{ "/italic org mode/" | $p.RenderString $optOrg }}
|
||||
```
|
||||
|
||||
{{< new-in "0.93.0" >}} **Note**: [markdownify](/functions/markdownify/) uses this function in order to support [Render Hooks](/getting-started/configuration-markup/#markdown-render-hooks).
|
||||
{{< new-in "0.93.0" >}} **Note**: [markdownify](/functions/transform/markdownify) uses this function in order to support [Render Hooks](/getting-started/configuration-markup/#markdown-render-hooks).
|
||||
|
||||
@@ -2,15 +2,17 @@
|
||||
title: .Scratch
|
||||
description: Acts as a "scratchpad" to store and manipulate data.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: []
|
||||
relatedFunctions:
|
||||
- .Store
|
||||
- .Scratch
|
||||
signature:
|
||||
aliases: [/extras/scratch/,/doc/scratch/]
|
||||
---
|
||||
|
||||
@@ -74,7 +76,7 @@ Get the value of a given key.
|
||||
|
||||
Add a given value to existing value(s) of the given key.
|
||||
|
||||
For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be [appended](/functions/append/) to that list.
|
||||
For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be [appended](/functions/collections/append/) to that list.
|
||||
|
||||
```go-html-template
|
||||
{{ $scratch.Add "greetings" "Hello" }}
|
||||
@@ -2,15 +2,17 @@
|
||||
title: .Store
|
||||
description: Returns a Scratch that is not reset on server rebuilds.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: []
|
||||
relatedFunctions:
|
||||
- .Store
|
||||
- .Scratch
|
||||
signature:
|
||||
---
|
||||
|
||||
The `.Store` method on `.Page` returns a [Scratch] to store and manipulate data. In contrast to the `.Scratch` method, this Scratch is not reset on server rebuilds.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: .Unix
|
||||
description: Converts a time.Time value to the number of seconds elapsed since the Unix epoch, excluding leap seconds. The Unix epoch is 00:00:00 UTC on 1 January 1970.
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: int64
|
||||
signatures:
|
||||
- .Unix
|
||||
- .UnixMilli
|
||||
- .UnixMicro
|
||||
- .UnixNano
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
The `Milli`, `Micro`, and `Nano` variants return the number of milliseconds, microseconds, and nanoseconds (respectively) elapsed since the Unix epoch.
|
||||
|
||||
```go-html-template
|
||||
.Date.Unix → 1637259694
|
||||
.ExpiryDate.Unix → 1672559999
|
||||
.Lastmod.Unix → 1637361786
|
||||
.PublishDate.Unix → 1637421261
|
||||
|
||||
("1970-01-01T00:00:00-00:00" | time.AsTime).Unix → 0
|
||||
("1970-01-01T00:00:42-00:00" | time.AsTime).Unix → 42
|
||||
("1970-04-11T01:48:29-08:00" | time.AsTime).Unix → 8675309
|
||||
("2026-05-02T20:09:31-07:00" | time.AsTime).Unix → 1777777771
|
||||
|
||||
now.Unix → 1637447841
|
||||
now.UnixMilli → 1637447841347
|
||||
now.UnixMicro → 1637447841347378
|
||||
now.UnixNano → 1637447841347378799
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
See Go's [text/template] documentation for more details.
|
||||
|
||||
[text/template]: https://pkg.go.dev/text/template
|
||||
@@ -0,0 +1,3 @@
|
||||
Localization of dates, currencies, numbers, and percentages is performed by the [gohugoio/locales] package. The language tag of the current site must match one of the listed locales.
|
||||
|
||||
[gohugoio/locales]: https://github.com/gohugoio/locales
|
||||
@@ -0,0 +1,42 @@
|
||||
Format a `time.Time` value based on [Go's reference time]:
|
||||
|
||||
[Go's reference time]: https://pkg.go.dev/time#pkg-constants
|
||||
|
||||
```text {copy=false}
|
||||
Mon Jan 2 15:04:05 MST 2006
|
||||
```
|
||||
|
||||
Create a format string using these components:
|
||||
|
||||
Description|Valid components
|
||||
:--|:--
|
||||
Year|`"2006" "06"`
|
||||
Month|`"Jan" "January" "01" "1"`
|
||||
Day of the week|`"Mon" "Monday"`
|
||||
Day of the month|`"2" "_2" "02"`
|
||||
Day of the year|`"__2" "002"`
|
||||
Hour|`"15" "3" "03"`
|
||||
Minute|`"4" "04"`
|
||||
Second|`"5" "05"`
|
||||
AM/PM mark|`"PM"`
|
||||
Time zone offsets|`"-0700" "-07:00" "-07" "-070000" "-07:00:00"`
|
||||
|
||||
Replace the sign in the format string with a Z to print Z instead of an offset for the UTC zone.
|
||||
|
||||
Description|Valid components
|
||||
:--|:--
|
||||
Time zone offsets|`"Z0700" "Z07:00" "Z07" "Z070000" "Z07:00:00"`
|
||||
|
||||
```go-html-template
|
||||
{{ $t := "2023-01-27T23:44:58-08:00" }}
|
||||
{{ $t = time.AsTime $t }}
|
||||
{{ $t = $t.Format "Jan 02, 2006 3:04 PM Z07:00" }}
|
||||
|
||||
{{ $t }} → Jan 27, 2023 11:44 PM -08:00
|
||||
```
|
||||
|
||||
Strings such as `PST` and `CET` are not time zones. They are time zone _abbreviations_.
|
||||
|
||||
Strings such as `-07:00` and `+01:00` are not time zones. They are time zone _offsets_.
|
||||
|
||||
A time zone is a geographic area with the same local time. For example, the time zone abbreviated by `PST` and `PDT` (depending on Daylight Savings Time) is `America/Los_Angeles`.
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: float
|
||||
title: cast.ToFloat
|
||||
linkTitle: float
|
||||
description: Casts a value to a decimal (base 10) floating point value.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: cast
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [float]
|
||||
returnType: float64
|
||||
signatures: [cast.ToFloat INPUT]
|
||||
relatedFunctions:
|
||||
- cast.ToFloat
|
||||
- cast.ToInt
|
||||
- cast.ToString
|
||||
signature:
|
||||
- cast.ToFloat INPUT
|
||||
- float INPUT
|
||||
aliases: [/functions/float]
|
||||
---
|
||||
|
||||
With a decimal (base 10) input:
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: int
|
||||
title: cast.ToInt
|
||||
linkTitle: int
|
||||
description: Casts a value to a decimal (base 10) integer.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: cast
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [int]
|
||||
returnType: int
|
||||
signatures: [cast.ToInt INPUT]
|
||||
relatedFunctions:
|
||||
- cast.ToFloat
|
||||
- cast.ToInt
|
||||
- cast.ToString
|
||||
signature:
|
||||
- cast.ToInt INPUT
|
||||
- int INPUT
|
||||
aliases: [/functions/int]
|
||||
---
|
||||
|
||||
With a decimal (base 10) input:
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: string
|
||||
title: cast.ToString
|
||||
linkTitle: string
|
||||
description: Cast a value to a string.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: cast
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [string]
|
||||
returnType: string
|
||||
signatures: [cast.ToString INPUT]
|
||||
relatedFunctions:
|
||||
- cast.ToFloat
|
||||
- cast.ToInt
|
||||
- cast.ToString
|
||||
signature:
|
||||
- cast.ToString INPUT
|
||||
- string INPUT
|
||||
aliases: [/functions/string]
|
||||
---
|
||||
|
||||
With a decimal (base 10) input:
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: after
|
||||
title: collections.After
|
||||
linkTitle: after
|
||||
description: Slices an array to the items after the Nth item.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [after]
|
||||
returnType: any
|
||||
signatures: [collections.After INDEX COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.After
|
||||
- collections.First
|
||||
- collections.Last
|
||||
signature:
|
||||
- collections.After INDEX COLLECTION
|
||||
- after INDEX COLLECTION
|
||||
aliases: [/functions/after]
|
||||
---
|
||||
|
||||
The following shows `after` being used in conjunction with the [`slice` function][slice]:
|
||||
The following shows `after` being used in conjunction with the [`slice`]function:
|
||||
|
||||
```go-html-template
|
||||
{{ $data := slice "one" "two" "three" "four" }}
|
||||
@@ -28,7 +30,7 @@ The following shows `after` being used in conjunction with the [`slice` function
|
||||
|
||||
## Example of `after` with `first`: 2nd–4th most recent articles
|
||||
|
||||
You can use `after` in combination with the [`first` function] and Hugo's [powerful sorting methods][lists]. Let's assume you have a list page at `example.com/articles`. You have 10 articles, but you want your templating for the [list/section page] to show only two rows:
|
||||
You can use `after` in combination with the [`first`] function and Hugo's [powerful sorting methods][lists]. Let's assume you have a list page at `example.com/articles`. You have 10 articles, but you want your templating for the [list/section page] to show only two rows:
|
||||
|
||||
1. The top row is titled "Featured" and shows only the most recently published article (i.e. by `publishdate` in the content files' front matter).
|
||||
2. The second row is titled "Recent Articles" and shows only the 2nd- to 4th-most recently published articles.
|
||||
@@ -58,7 +60,7 @@ You can use `after` in combination with the [`first` function] and Hugo's [power
|
||||
{{ end }}
|
||||
{{< /code >}}
|
||||
|
||||
[`first` function]: /functions/first/
|
||||
[list/section page]: /templates/section-templates/
|
||||
[`first`]: /functions/collections/first
|
||||
[list/section page]: /templates/section-templates
|
||||
[lists]: /templates/lists/#order-content
|
||||
[slice]: /functions/slice/
|
||||
[`slice`]: /functions/collections/slice/
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: append
|
||||
title: collections.Append
|
||||
linkTitle: append
|
||||
description: Appends one or more elements to a slice and returns the resulting slice.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [append]
|
||||
returnType: any
|
||||
signatures:
|
||||
- COLLECTION | collections.Append ELEMENT [ELEMENT]...
|
||||
- COLLECTION | collections.Append COLLECTION
|
||||
relatedFunctions:
|
||||
- collections.Append
|
||||
- collections.Merge
|
||||
- collections.Slice
|
||||
signature:
|
||||
- COLLECTION | collections.Append ELEMENT [ELEMENT]...
|
||||
- COLLECTION | collections.Append COLLECTION
|
||||
- COLLECTION | append ELEMENT [ELEMENT]...
|
||||
- COLLECTION | append COLLECTION
|
||||
aliases: [/functions/append]
|
||||
---
|
||||
|
||||
This function appends all elements, excluding the last, to the last element. This allows [pipe](/getting-started/glossary/#pipeline) constructs as shown below.
|
||||
@@ -1,28 +1,30 @@
|
||||
---
|
||||
title: apply
|
||||
title: collections.Apply
|
||||
linkTitle: apply
|
||||
description: Given an array or slice, `apply` returns a new slice with a function applied over it.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [apply]
|
||||
returnType: any
|
||||
signatures: ['collections.Apply COLLECTION FUNCTION [PARAM...]']
|
||||
relatedFunctions:
|
||||
- collections.Apply
|
||||
- collections.Delimit
|
||||
- collections.In
|
||||
- collections.Reverse
|
||||
- collections.Seq
|
||||
- collections.Slice
|
||||
signature:
|
||||
- collections.Apply COLLECTION FUNCTION [PARAM...]
|
||||
- apply COLLECTION FUNCTION [PARAM...]
|
||||
aliases: [/functions/apply]
|
||||
---
|
||||
|
||||
`apply` expects at least three arguments, depending on the function being applied.
|
||||
|
||||
1. The first argument is the sequence to operate on.
|
||||
2. The second argument is the name of the function as a string, which must be the name of a valid [Hugo function][functions].
|
||||
2. The second argument is the name of the function as a string, which must be the name of a valid [template function].
|
||||
3. 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:
|
||||
@@ -44,13 +46,13 @@ Which will result in the following:
|
||||
"derek-perkins", "joe-bergevin", "tanner-linsley"
|
||||
```
|
||||
|
||||
This is *roughly* equivalent to using the following with [range]:
|
||||
This is *roughly* equivalent to using the following with [`range`]:
|
||||
|
||||
```go-html-template
|
||||
{{ range .Params.names }}{{ . | urlize }}{{ end }}
|
||||
```
|
||||
|
||||
However, it is not possible to provide the output of a range to the [`delimit` function][delimit], so you need to `apply` it.
|
||||
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:
|
||||
|
||||
@@ -92,7 +94,7 @@ This first version of `layouts/partials/post-tag-list.html` separates all of the
|
||||
{{ 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:
|
||||
Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [`chomp`] 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 }}
|
||||
@@ -107,8 +109,7 @@ Now in the completed version, you can sort the tags, convert the tags to links w
|
||||
`apply` does not work when receiving the sequence as an argument through a pipeline.
|
||||
{{% /note %}}
|
||||
|
||||
[chomp]: /functions/chomp/ "See documentation for the chomp function"
|
||||
[delimit]: /functions/delimit/ "See documentation for the delimit function"
|
||||
[functions]: /functions/ "See the full list of Hugo functions to see what can be passed as an argument to the apply function."
|
||||
[partials]: /templates/partials/
|
||||
[range]: /functions/range/ "Learn the importance of the range function, a fundamental keyword in both Hugo templates and the Go programming language."
|
||||
[`chomp`]: /functions/strings/chomp/
|
||||
[`delimit`]: /functions/collections/delimit/
|
||||
[template function]: /functions/
|
||||
[`range`]: /functions/go-template/range/
|
||||
+10
-7
@@ -1,19 +1,22 @@
|
||||
---
|
||||
title: complement
|
||||
title: collections.Complement
|
||||
linkTitle: complement
|
||||
description: Returns the elements of the last collection that are not in any of the others.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [complement]
|
||||
returnType: any
|
||||
signatures: ['collections.Complement COLLECTION [COLLECTION]...']
|
||||
relatedFunctions:
|
||||
- collections.Complement
|
||||
- collections.Intersect
|
||||
- collections.SymDiff
|
||||
- collections.Union
|
||||
signature:
|
||||
- collections.Complement COLLECTION [COLLECTION]...
|
||||
- complement COLLECTION [COLLECTION]...
|
||||
aliases: [/functions/complement]
|
||||
---
|
||||
|
||||
To find the elements within `$c3` that do not exist in `$c1` or `$c2`:
|
||||
@@ -61,7 +64,7 @@ To list everything except blog articles (`blog`) and frequently asked questions
|
||||
{{% note %}}
|
||||
Although the example above demonstrates the `complement` function, you could use the [`where`] function as well:
|
||||
|
||||
[`where`]: /functions/where/
|
||||
[`where`]: /functions/collections/where
|
||||
{{% /note %}}
|
||||
|
||||
```go-html-template
|
||||
@@ -1,13 +1,17 @@
|
||||
---
|
||||
title: delimit
|
||||
title: collections.Delimit
|
||||
linkTitle: delimit
|
||||
description: Loops through any array, slice, or map and returns a string of all the values separated by a delimiter.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [delimit]
|
||||
returnType: template.HTML
|
||||
signatures: ['collections.Delimit COLLECTION DELIMITER [LAST]']
|
||||
relatedFunctions:
|
||||
- collections.Apply
|
||||
- collections.Delimit
|
||||
- collections.In
|
||||
@@ -15,9 +19,7 @@ relatedFuncs:
|
||||
- collections.Seq
|
||||
- collections.Slice
|
||||
- strings.Split
|
||||
signature:
|
||||
- collections.Delimit COLLECTION DELIMITER [LAST]
|
||||
- delimit COLLECTION DELIMITER [LAST]
|
||||
aliases: [/functions/delimit]
|
||||
---
|
||||
|
||||
Delimit a slice:
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: dict
|
||||
title: collections.Dictionary
|
||||
linkTitle: dict
|
||||
description: Creates a map from a list of key and value pairs.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [dict]
|
||||
returnType: mapany
|
||||
signatures: ['collections.Dictionary KEY VALUE [KEY VALUE]...']
|
||||
relatedFunctions:
|
||||
- collections.Dictionary
|
||||
- collections.Group
|
||||
- collections.Index
|
||||
- collections.IsSet
|
||||
- collections.Where
|
||||
signature:
|
||||
- collections.Dictionary KEY VALUE [KEY VALUE]...
|
||||
- dict KEY VALUE [KEY VALUE]...
|
||||
aliases: [/functions/dict]
|
||||
---
|
||||
|
||||
`dict` is especially useful for passing more than one value to a partial template.
|
||||
@@ -1,16 +1,18 @@
|
||||
---
|
||||
title: echoParam
|
||||
title: collections.EchoParam
|
||||
linkTitle: echoParam
|
||||
description: Prints a parameter if it is set.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- collections.EchoParam COLLECTION KEY
|
||||
- echoParam COLLECTION KEY
|
||||
function:
|
||||
aliases: [echoParam]
|
||||
returnType: any
|
||||
signatures: [collections.EchoParam COLLECTION KEY]
|
||||
relatedFunctions: []
|
||||
aliases: [/functions/echoparam]
|
||||
---
|
||||
|
||||
For example, consider this site configuration:
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: first
|
||||
title: collections.First
|
||||
linkTitle: first
|
||||
description: Slices an array to the first N elements.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [first]
|
||||
returnType: any
|
||||
signatures: [collections.First LIMIT COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.After
|
||||
- collections.First
|
||||
- collections.Last
|
||||
signature:
|
||||
- collections.First LIMIT COLLECTION
|
||||
- first LIMIT COLLECTION
|
||||
aliases: [/functions/first]
|
||||
---
|
||||
|
||||
`first` works in a similar manner to the [`limit` keyword in
|
||||
@@ -34,9 +36,9 @@ elements. It takes the array and number of elements as input.
|
||||
|
||||
## `first` and `where` Together
|
||||
|
||||
Using `first` and [`where`][wherefunction] together can be very
|
||||
powerful. Below snippet gets a list of posts only from [**main
|
||||
sections**][mainsections], sorts it by the `title` parameter, and then
|
||||
Using `first` and [`where`] together can be very
|
||||
powerful. Below snippet gets a list of posts only from [main
|
||||
sections], sorts it by the `title` parameter, and then
|
||||
ranges through only the first 5 posts in that list:
|
||||
|
||||
{{< code file="first-and-where-together.html" >}}
|
||||
@@ -47,5 +49,5 @@ ranges through only the first 5 posts in that list:
|
||||
|
||||
|
||||
[limitkeyword]: https://www.techonthenet.com/sql/select_limit.php
|
||||
[wherefunction]: /functions/where/
|
||||
[mainsections]: /functions/where/#mainsections
|
||||
[`where`]: /functions/collections/where
|
||||
[main sections]: /functions/collections/where#mainsections
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: group
|
||||
description: "`group` groups a list of pages."
|
||||
title: collections.Group
|
||||
linkTitle: group
|
||||
description: Groups a list of pages.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [group]
|
||||
returnType: any
|
||||
signatures: [PAGES | collections.Group KEY]
|
||||
relatedFunctions:
|
||||
- collections.Dictionary
|
||||
- collections.Group
|
||||
- collections.Index
|
||||
- collections.IsSet
|
||||
- collections.Where
|
||||
signature:
|
||||
- PAGES | collections.Group KEY
|
||||
- PAGES | group KEY
|
||||
aliases: [/functions/group]
|
||||
---
|
||||
|
||||
{{< code file="layouts/partials/groups.html" >}}
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: collections.In
|
||||
linkTitle: in
|
||||
description: Reports whether an element is in an array or slice, or if a substring is in a string.
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: [in]
|
||||
returnType: bool
|
||||
signatures: [collections.In SET ITEM]
|
||||
relatedFunctions:
|
||||
- collections.Slice
|
||||
aliases: [/functions/in]
|
||||
---
|
||||
|
||||
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "a" "b" "c" }}
|
||||
{{ in $s "b" }} → true
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice 1 2 3 }}
|
||||
{{ in $s 2 }} → true
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice 1.11 2.22 3.33 }}
|
||||
{{ in $s 2.22 }} → true
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $s := "abc" }}
|
||||
{{ in $s "b" }} → true
|
||||
```
|
||||
+11
-10
@@ -1,25 +1,26 @@
|
||||
---
|
||||
title: index
|
||||
title: collections.Index
|
||||
linkTitle: index
|
||||
description: Looks up the index(es) or key(s) of the data structure passed into it.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [index]
|
||||
returnType: any
|
||||
signatures:
|
||||
- collections.Index COLLECTION INDEXES
|
||||
- collections.Index COLLECTION KEYS
|
||||
relatedFunctions:
|
||||
- collections.Dictionary
|
||||
- collections.EchoParam
|
||||
- collections.Group
|
||||
- collections.Index
|
||||
- collections.IsSet
|
||||
- collections.Where
|
||||
signature:
|
||||
- collections.Index COLLECTION INDEXES
|
||||
- collections.Index COLLECTION KEYS
|
||||
- index COLLECTION INDEXES
|
||||
- index COLLECTION KEYS
|
||||
aliases: [/functions/index/]
|
||||
aliases: [/functions/index,/functions/index-function]
|
||||
---
|
||||
|
||||
The `index` functions returns the result of indexing its first argument by the following arguments. Each indexed item must be a map or a slice, e.g.:
|
||||
@@ -1,19 +1,22 @@
|
||||
---
|
||||
title: intersect
|
||||
title: collections.Intersect
|
||||
linkTitle: intersect
|
||||
description: Returns the common elements of two arrays or slices, in the same order as the first array.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [intersect]
|
||||
returnType: any
|
||||
signatures: [collections.Intersect SET1 SET2]
|
||||
relatedFunctions:
|
||||
- collections.Complement
|
||||
- collections.Intersect
|
||||
- collections.SymDiff
|
||||
- collections.Union
|
||||
signature:
|
||||
- collections.Intersect SET1 SET2
|
||||
- intersect SET1 SET2
|
||||
aliases: [/functions/intersect]
|
||||
---
|
||||
A useful example is to use it as `AND` filters when combined with where:
|
||||
|
||||
@@ -27,7 +30,7 @@ A useful example is to use it as `AND` filters when combined with where:
|
||||
|
||||
The above fetches regular pages not of `page` or `about` type unless they are pinned. And finally, we exclude all pages with no `images` set in Page parameters.
|
||||
|
||||
See [union](/functions/union) for `OR`.
|
||||
See [union](/functions/collections/union) for `OR`.
|
||||
|
||||
|
||||
[partials]: /templates/partials/
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: isset
|
||||
description: Returns true if the key exists within the collection.
|
||||
title: collections.IsSet
|
||||
linkTitle: isset
|
||||
description: Reports whether the key exists within the collection.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [isset]
|
||||
returnType: bool
|
||||
signatures: [collections.IsSet COLLECTION KEY]
|
||||
relatedFunctions:
|
||||
- collections.Dictionary
|
||||
- collections.Group
|
||||
- collections.Index
|
||||
- collections.IsSet
|
||||
- collections.Where
|
||||
signature:
|
||||
- collections.IsSet COLLECTION KEY
|
||||
- isset COLLECTION KEY
|
||||
aliases: [/functions/isset]
|
||||
---
|
||||
|
||||
For example, consider this site configuration:
|
||||
@@ -1,17 +1,18 @@
|
||||
---
|
||||
title: keyVals
|
||||
title: collections.KeyVals
|
||||
linkTitle: keyVals
|
||||
description: Returns a KeyVals struct.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- collections.KeyVals KEY VALUES...
|
||||
- keyVals KEY VALUES...
|
||||
|
||||
function:
|
||||
aliases: [keyVals]
|
||||
returnType: KeyValues
|
||||
signatures: [collections.KeyVals KEY VALUES...]
|
||||
relatedFunctions: []
|
||||
aliases: [/functions/keyvals]
|
||||
---
|
||||
|
||||
The primary application for this function is the definition of the `namedSlices` parameter in the options map passed to the `.Related` method on the `Page` object.
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: last
|
||||
title: collections.Last
|
||||
linkTitle: last
|
||||
description: Slices an array to the last N elements.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [last]
|
||||
returnType: any
|
||||
signatures: [collections.Last INDEX COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.After
|
||||
- collections.First
|
||||
- collections.Last
|
||||
signature:
|
||||
- collections.Last INDEX COLLECTION
|
||||
- last INDEX COLLECTION
|
||||
aliases: [/functions/last]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,18 +1,20 @@
|
||||
---
|
||||
title: merge
|
||||
description: "Returns the result of merging two or more maps."
|
||||
title: collections.Merge
|
||||
linkTitle: merge
|
||||
description: Returns the result of merging two or more maps.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [merge]
|
||||
returnType: any
|
||||
signatures: [collections.Merge MAP MAP...]
|
||||
relatedFunctions:
|
||||
- collections.Append
|
||||
- collections.Merge
|
||||
signature:
|
||||
- collections.Merge MAP MAP...
|
||||
- merge MAP MAP...
|
||||
aliases: [/functions/merge]
|
||||
---
|
||||
|
||||
Returns the result of merging two or more maps from left to right. If a key already exists, `merge` updates its value. If a key is absent, `merge` inserts the value under the new key.
|
||||
@@ -68,5 +70,5 @@ Example 4
|
||||
```
|
||||
|
||||
{{% note %}}
|
||||
Regardless of depth, merging only applies to maps. For slices, use [append](/functions/append).
|
||||
Regardless of depth, merging only applies to maps. For slices, use [append](/functions/collections/append).
|
||||
{{% /note %}}
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: collections.NewScratch
|
||||
linkTitle: newScratch
|
||||
description: Creates a new Scratch which can be used to store values in a thread safe way.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: [newScratch]
|
||||
returnType: Scratch
|
||||
signatures: [collections.NewScratch ]
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
{{ $scratch := newScratch }}
|
||||
{{ $scratch.Add "b" 2 }}
|
||||
{{ $scratch.Add "b" 2 }}
|
||||
{{ $scratch.Get "b" }} → 4
|
||||
```
|
||||
@@ -1,20 +1,22 @@
|
||||
---
|
||||
title: querify
|
||||
title: collections.Querify
|
||||
linkTitle: querify
|
||||
description: Takes a set or slice of key-value pairs and returns a query string to be appended to URLs.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [querify]
|
||||
returnType: string
|
||||
signatures:
|
||||
- collections.Querify KEY VALUE [KEY VALUE]...
|
||||
- collections.Querify COLLECTION
|
||||
relatedFunctions:
|
||||
- collections.Querify
|
||||
- urlquery
|
||||
signature:
|
||||
- collections.Querify KEY VALUE [KEY VALUE]...
|
||||
- collections.Querify COLLECTION
|
||||
- querify KEY VALUE [KEY VALUE]...
|
||||
- querify COLLECTION
|
||||
aliases: [/functions/querify]
|
||||
---
|
||||
|
||||
`querify` takes a set or slice of key-value pairs and returns a [query string](https://en.wikipedia.org/wiki/Query_string) that can be appended to a URL.
|
||||
+7
-5
@@ -2,20 +2,22 @@
|
||||
title: collections.Reverse
|
||||
description: Reverses the order of a collection.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType: any
|
||||
signatures: [collections.Reverse COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.Apply
|
||||
- collections.Delimit
|
||||
- collections.In
|
||||
- collections.Reverse
|
||||
- collections.Seq
|
||||
- collections.Slice
|
||||
signature:
|
||||
- collections.Reverse COLLECTION
|
||||
aliases: [/functions/collections.reverse]
|
||||
---
|
||||
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
---
|
||||
title: seq
|
||||
title: collections.Seq
|
||||
linkTitle: seq
|
||||
description: Returns a slice of integers.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [seq]
|
||||
returnType: '[]int'
|
||||
signatures:
|
||||
- collections.Seq LAST
|
||||
- collections.Seq FIRST LAST
|
||||
- collections.Seq FIRST INCREMENT LAST
|
||||
relatedFunctions:
|
||||
- collections.Apply
|
||||
- collections.Delimit
|
||||
- collections.In
|
||||
- collections.Reverse
|
||||
- collections.Seq
|
||||
- collections.Slice
|
||||
signature:
|
||||
- collections.Seq LAST
|
||||
- collections.Seq FIRST LAST
|
||||
- collections.Seq FIRST INCREMENT LAST
|
||||
- seq LAST
|
||||
- seq FIRST LAST
|
||||
- seq FIRST INCREMENT LAST
|
||||
aliases: [/functions/seq]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,24 +1,25 @@
|
||||
---
|
||||
title: shuffle
|
||||
title: collections.Shuffle
|
||||
linkTitle: shuffle
|
||||
description: Returns a random permutation of a given array or slice.
|
||||
keywords: [ordering]
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [shuffle]
|
||||
returnType: any
|
||||
signatures: [collections.Shuffle COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.Reverse
|
||||
- collections.Shuffle
|
||||
- collections.Sort
|
||||
- collections.Uniq
|
||||
signature:
|
||||
- collections.Shuffle COLLECTION
|
||||
- shuffle COLLECTION
|
||||
aliases: [/functions/shuffle]
|
||||
---
|
||||
|
||||
|
||||
```go-html-template
|
||||
{{ shuffle (seq 1 2 3) }} → [3 1 2]
|
||||
{{ shuffle (slice "a" "b" "c") }} → [b a c]
|
||||
@@ -1,13 +1,17 @@
|
||||
---
|
||||
title: slice
|
||||
title: collections.Slice
|
||||
linkTitle: slice
|
||||
description: Creates a slice (array) of all passed arguments.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [slice]
|
||||
returnType: any
|
||||
signatures: [collections.Slice ITEM...]
|
||||
relatedFunctions:
|
||||
- collections.Append
|
||||
- collections.Apply
|
||||
- collections.Delimit
|
||||
@@ -15,19 +19,12 @@ relatedFuncs:
|
||||
- collections.Reverse
|
||||
- collections.Seq
|
||||
- collections.Slice
|
||||
signature:
|
||||
- collections.Slice ITEM...
|
||||
- slice ITEM...
|
||||
aliases: [/functions/slice]
|
||||
---
|
||||
|
||||
One use case is the concatenation of elements in combination with the [`delimit` function]:
|
||||
|
||||
{{< code file="slice.html" >}}
|
||||
{{ $sliceOfStrings := slice "foo" "bar" "buzz" }}
|
||||
<!-- returns the slice [ "foo", "bar", "buzz"] -->
|
||||
{{ delimit ($sliceOfStrings) ", " }}
|
||||
<!-- returns the string "foo, bar, buzz" -->
|
||||
{{< /code >}}
|
||||
|
||||
|
||||
[`delimit` function]: /functions/delimit/
|
||||
```go-html-template
|
||||
{{ $s := slice "a" "b" "c" }}
|
||||
{{ $s }} → [a b c]
|
||||
```
|
||||
@@ -1,20 +1,22 @@
|
||||
---
|
||||
title: sort
|
||||
title: collections.Sort
|
||||
linkTitle: sort
|
||||
description: Sorts slices, maps, and page collections.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [sort]
|
||||
returnType: any
|
||||
signatures: ['collections.Sort COLLECTION [KEY] [ORDER]']
|
||||
relatedFunctions:
|
||||
- collections.Reverse
|
||||
- collections.Shuffle
|
||||
- collections.Sort
|
||||
- collections.Uniq
|
||||
signature:
|
||||
- collections.Sort COLLECTION [KEY] [ORDER]
|
||||
- sort COLLECTION [KEY] [ORDER]
|
||||
aliases: [/functions/sort]
|
||||
---
|
||||
|
||||
The `KEY` is optional when sorting slices in ascending order, otherwise it is required. When sorting slices, use the literal `value` in place of the `KEY`. See examples below.
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: collections.SymDiff
|
||||
linkTitle: symdiff
|
||||
description: Returns the symmetric difference of two collections.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: [symdiff]
|
||||
returnType: any
|
||||
signatures: [COLLECTION | collections.SymDiff COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.Complement
|
||||
- collections.Intersect
|
||||
- collections.SymDiff
|
||||
- collections.Union
|
||||
aliases: [/functions/symdiff]
|
||||
---
|
||||
|
||||
Example:
|
||||
|
||||
```go-html-template
|
||||
{{ slice 1 2 3 | symdiff (slice 3 4) }} → [1 2 4]
|
||||
```
|
||||
|
||||
Also see https://en.wikipedia.org/wiki/Symmetric_difference
|
||||
@@ -1,19 +1,22 @@
|
||||
---
|
||||
title: union
|
||||
title: collections.Union
|
||||
linkTitle: union
|
||||
description: Given two arrays or slices, returns a new array that contains the elements or objects that belong to either or both arrays/slices.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [union]
|
||||
returnType: any
|
||||
signatures: [collections.Union SET1 SET2]
|
||||
relatedFunctions:
|
||||
- collections.Complement
|
||||
- collections.Intersect
|
||||
- collections.SymDiff
|
||||
- collections.Union
|
||||
signature:
|
||||
- collections.Union SET1 SET2
|
||||
- union SET1 SET2
|
||||
aliases: [/functions/union]
|
||||
---
|
||||
|
||||
Given two arrays (or slices) A and B, this function will return a new array that contains the elements or objects that belong to either A or to B or to both. The elements supported are strings, integers, and floats (only float64).
|
||||
@@ -44,4 +47,4 @@ This is also very useful to use as `OR` filters when combined with where:
|
||||
|
||||
The above fetches regular pages not of `page` or `about` type unless they are pinned. And finally, we exclude all pages with no `images` set in Page parameters.
|
||||
|
||||
See [intersect](/functions/intersect) for `AND`.
|
||||
See [intersect](/functions/collections/intersect) for `AND`.
|
||||
@@ -1,20 +1,22 @@
|
||||
---
|
||||
title: uniq
|
||||
title: collections.Uniq
|
||||
linkTitle: uniq
|
||||
description: Takes in a slice or array and returns a slice with duplicate elements removed.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [uniq]
|
||||
returnType: any
|
||||
signatures: [collections.Uniq COLLECTION]
|
||||
relatedFunctions:
|
||||
- collections.Reverse
|
||||
- collections.Shuffle
|
||||
- collections.Sort
|
||||
- collections.Uniq
|
||||
signature:
|
||||
- collections.Uniq COLLECTION
|
||||
- uniq COLLECTION
|
||||
aliases: [/functions/uniq]
|
||||
---
|
||||
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: where
|
||||
title: collections.Where
|
||||
linkTitle: where
|
||||
description: Filters an array to only the elements containing a matching value for a given field.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [where]
|
||||
returnType: any
|
||||
signatures: ['collections.Where COLLECTION KEY [OPERATOR] MATCH']
|
||||
relatedFunctions:
|
||||
- collections.Dictionary
|
||||
- collections.Group
|
||||
- collections.Index
|
||||
- collections.IsSet
|
||||
- collections.Where
|
||||
signature:
|
||||
- collections.Where COLLECTION KEY [OPERATOR] MATCH
|
||||
- where COLLECTION KEY [OPERATOR] MATCH
|
||||
aliases: [/functions/where]
|
||||
toc: true
|
||||
---
|
||||
|
||||
@@ -122,7 +124,7 @@ This example matches pages where the "foo" parameter begins with "ab":
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
{{% readfile file="/functions/common/regular-expressions.md" %}}
|
||||
{{% readfile file="/functions/_common/regular-expressions.md" %}}
|
||||
|
||||
## Use `where` with `first`
|
||||
|
||||
@@ -184,5 +186,5 @@ The user can override the default:
|
||||
mainSections = ["blog", "docs"]
|
||||
{{< /code-toggle >}}
|
||||
|
||||
[intersect]: /functions/intersect/
|
||||
[intersect]: /functions/collections/intersect
|
||||
[wherekeyword]: https://www.techonthenet.com/sql/where.php
|
||||
@@ -1,18 +1,20 @@
|
||||
---
|
||||
title: cond
|
||||
title: compare.Conditional
|
||||
linkTitle: cond
|
||||
description: Returns one of two arguments depending on the value of the control argument.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [cond]
|
||||
returnType: any
|
||||
signatures: [compare.Conditional CONTROL ARG1 ARG2]
|
||||
relatedFunctions:
|
||||
- compare.Conditional
|
||||
- compare.Default
|
||||
signature:
|
||||
- compare.Conditional CONTROL ARG1 ARG2
|
||||
- cond CONTROL ARG1 ARG2
|
||||
aliases: [/functions/cond]
|
||||
---
|
||||
|
||||
The CONTROL argument is a boolean value that indicates whether the function should return ARG1 or ARG2. If CONTROL is `true`, the function returns ARG1. Otherwise, the function returns ARG2.
|
||||
@@ -1,18 +1,20 @@
|
||||
---
|
||||
title: default
|
||||
title: compare.Default
|
||||
linkTitle: default
|
||||
description: Allows setting a default value that can be returned if a first value is not set.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [default]
|
||||
returnType: any
|
||||
signatures: [compare.Default DEFAULT INPUT]
|
||||
relatedFunctions:
|
||||
- compare.Conditional
|
||||
- compare.Default
|
||||
signature:
|
||||
- compare.Default DEFAULT INPUT
|
||||
- default DEFAULT INPUT
|
||||
aliases: [/functions/default]
|
||||
---
|
||||
|
||||
`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:
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: eq
|
||||
title: compare.Eq
|
||||
linkTitle: eq
|
||||
description: Returns the boolean truth of arg1 == arg2 || arg1 == arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [eq]
|
||||
returnType: bool
|
||||
signatures: ['compare.Eq ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Eq ARG1 ARG2 [ARG...]
|
||||
- eq ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/eq]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: ge
|
||||
title: compare.Ge
|
||||
linkTitle: ge
|
||||
description: Returns the boolean truth of arg1 >= arg2 && arg1 >= arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [ge]
|
||||
returnType: bool
|
||||
signatures: ['compare.Ge ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Ge ARG1 ARG2 [ARG...]
|
||||
- ge ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/ge]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: gt
|
||||
title: compare.Gt
|
||||
linkTitle: gt
|
||||
description: Returns the boolean truth of arg1 > arg2 && arg1 > arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [gt]
|
||||
returnType: bool
|
||||
signatures: ['compare.Gt ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Gt ARG1 ARG2 [ARG...]
|
||||
- gt ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/gt]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: le
|
||||
title: compare.Le
|
||||
linkTitle: le
|
||||
description: Returns the boolean truth of arg1 <= arg2 && arg1 <= arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [le]
|
||||
returnType: bool
|
||||
signatures: ['compare.Le ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Le ARG1 ARG2 [ARG...]
|
||||
- le ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/le]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,24 @@
|
||||
---
|
||||
title: lt
|
||||
title: compare.Lt
|
||||
linkTitle: lt
|
||||
description: Returns the boolean truth of arg1 < arg2 && arg1 < arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [lt]
|
||||
returnType: bool
|
||||
signatures: ['compare.Lt ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Lt ARG1 ARG2 [ARG...]
|
||||
- lt ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/lt]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,21 +1,24 @@
|
||||
---
|
||||
title: ne
|
||||
title: compare.Ne
|
||||
linkTitle: ne
|
||||
description: Returns the boolean truth of arg1 != arg2 && arg1 != arg3.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
namespace: compare
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [ne]
|
||||
returnType: bool
|
||||
signatures: ['compare.Ne ARG1 ARG2 [ARG...]']
|
||||
relatedFunctions:
|
||||
- compare.Eq
|
||||
- compare.Ge
|
||||
- compare.Gt
|
||||
- compare.Le
|
||||
- compare.Lt
|
||||
- compare.Ne
|
||||
signature:
|
||||
- compare.Ne ARG1 ARG2 [ARG...]
|
||||
- ne ARG1 ARG2 [ARG...]
|
||||
aliases: [/functions/ne]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
title: countrunes
|
||||
description: Determines the number of runes in a string excluding any whitespace.
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: strings
|
||||
relatedFuncs:
|
||||
- len
|
||||
- strings.Count
|
||||
- strings.CountRunes
|
||||
- strings.CountWords
|
||||
- strings.RuneCount
|
||||
signature:
|
||||
- strings.CountRunes INPUT
|
||||
- countrunes INPUT
|
||||
---
|
||||
|
||||
In contrast with `countwords` function, which counts every word in a string, the `countrunes` function determines the number of runes in the content and excludes any whitespace. This has specific utility if you are dealing with CJK-like languages.
|
||||
|
||||
```go-html-template
|
||||
{{ "Hello, 世界" | countrunes }}
|
||||
<!-- outputs a content length of 8 runes. -->
|
||||
```
|
||||
|
||||
[pagevars]: /variables/page/
|
||||
@@ -2,19 +2,21 @@
|
||||
title: crypto.FNV32a
|
||||
description: Returns the FNV (Fowler–Noll–Vo) 32 bit hash of a given string.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: crypto
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType: int
|
||||
signatures: [crypto.FNV32a STRING]
|
||||
relatedFunctions:
|
||||
- crypto.FNV32a
|
||||
- crypto.HMAC
|
||||
- crypto.MD5
|
||||
- crypto.SHA1
|
||||
- crypto.SHA256
|
||||
signature:
|
||||
- crypto.FNV32a STRING
|
||||
aliases: [/functions/crypto.fnv32a]
|
||||
---
|
||||
|
||||
This function calculates the 32 bit [FNV1a hash](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) of a given string according to the [specification](https://datatracker.ietf.org/doc/html/draft-eastlake-fnv-12):
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: hmac
|
||||
title: crypto.HMAC
|
||||
linkTitle: hmac
|
||||
description: Returns a cryptographic hash that uses a key to sign a message.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: crypto
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [hmac]
|
||||
returnType: string
|
||||
signatures: ['crypto.HMAC HASH_TYPE KEY MESSAGE [ENCODING]']
|
||||
relatedFunctions:
|
||||
- crypto.FNV32a
|
||||
- crypto.HMAC
|
||||
- crypto.MD5
|
||||
- crypto.SHA1
|
||||
- crypto.SHA256
|
||||
signature:
|
||||
- crypto.HMAC HASH_TYPE KEY MESSAGE [ENCODING]
|
||||
- hmac HASH_TYPE KEY MESSAGE [ENCODING]
|
||||
aliases: [/functions/hmac]
|
||||
---
|
||||
|
||||
Set the `HASH_TYPE` argument to `md5`, `sha1`, `sha256`, or `sha512`.
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: md5
|
||||
title: crypto.MD5
|
||||
linkTitle: md5
|
||||
description: hashes the given input and returns its MD5 checksum.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: crypto
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [md5]
|
||||
returnType: string
|
||||
signatures: [crypto.MD5 INPUT]
|
||||
relatedFunctions:
|
||||
- crypto.FNV32a
|
||||
- crypto.HMAC
|
||||
- crypto.MD5
|
||||
- crypto.SHA1
|
||||
- crypto.SHA256
|
||||
signature:
|
||||
- crypto.MD5 INPUT
|
||||
- md5 INPUT
|
||||
aliases: [/functions/md5]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,23 @@
|
||||
---
|
||||
title: sha1
|
||||
title: crypto.SHA1
|
||||
linkTitle: sha1
|
||||
description: Hashes the given input and returns its SHA1 checksum.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: crypto
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [sha1]
|
||||
returnType: string
|
||||
signatures: [crypto.SHA1 INPUT]
|
||||
relatedFunctions:
|
||||
- crypto.FNV32a
|
||||
- crypto.HMAC
|
||||
- crypto.MD5
|
||||
- crypto.SHA1
|
||||
- crypto.SHA256
|
||||
signature:
|
||||
- crypto.SHA1 INPUT
|
||||
- sha1 INPUT
|
||||
aliases: [sha]
|
||||
aliases: [/functions/sha,/functions/sha1]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,22 +1,23 @@
|
||||
---
|
||||
title: sha256
|
||||
title: crypto.SHA256
|
||||
linkTitle: sha256
|
||||
description: Hashes the given input and returns its SHA256 checksum.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: crypto
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [sha256]
|
||||
returnType: string
|
||||
signatures: [crypto.SHA256 INPUT]
|
||||
relatedFunctions:
|
||||
- crypto.FNV32a
|
||||
- crypto.HMAC
|
||||
- crypto.MD5
|
||||
- crypto.SHA1
|
||||
- crypto.SHA256
|
||||
signature:
|
||||
- crypto.SHA256 INPUT
|
||||
- sha256 INPUT
|
||||
aliases: [sha]
|
||||
aliases: [/functions/sha256]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -0,0 +1,117 @@
|
||||
---
|
||||
title: data.GetCSV
|
||||
linkTitle: getCSV
|
||||
description: Returns an array of arrays from a local or remote CSV file, or an error if the file does not exist.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: [getCSV]
|
||||
returnType: '[]string'
|
||||
signatures: [data.GetCSV SEPARATOR PATHPART...]
|
||||
relatedFunctions:
|
||||
- data.GetCSV
|
||||
- data.GetJSON
|
||||
toc: true
|
||||
---
|
||||
|
||||
Given the following directory structure:
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── other-files/
|
||||
└── pets.csv
|
||||
```
|
||||
|
||||
Access the data with either of the following:
|
||||
|
||||
```go-html-template
|
||||
{{ $data := getCSV "," "other-files/pets.csv" }}
|
||||
{{ $data := getCSV "," "other-files/" "pets.csv" }}
|
||||
```
|
||||
|
||||
Access remote data with either of the following:
|
||||
|
||||
```go-html-template
|
||||
{{ $data := getCSV "," "https://example.org/pets.csv" }}
|
||||
{{ $data := getCSV "," "https://example.org/" "pets.csv" }}
|
||||
```
|
||||
|
||||
The resulting data structure is an array of arrays:
|
||||
|
||||
```json
|
||||
[
|
||||
["name","type","breed","age"],
|
||||
["Spot","dog","Collie","3"],
|
||||
["Felix","cat","Malicious","7"]
|
||||
]
|
||||
```
|
||||
|
||||
## Global resource alternative
|
||||
|
||||
Consider using `resources.Get` with [`transform.Unmarshal`] when accessing a global resource.
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── assets/
|
||||
└── data/
|
||||
└── pets.csv
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $p := "data/pets.csv" }}
|
||||
{{ with resources.Get $p }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get resource %q" $p }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Page resource alternative
|
||||
|
||||
Consider using `.Resources.Get` with [`transform.Unmarshal`] when accessing a page resource.
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── content/
|
||||
└── posts/
|
||||
└── my-pets/
|
||||
├── index.md
|
||||
└── pets.csv
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $p := "pets.csv" }}
|
||||
{{ with .Resources.Get $p }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get resource %q" $p }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Remote resource alternative
|
||||
|
||||
Consider using `resources.GetRemote` with [`transform.Unmarshal`] for improved error handling when accessing a remote resource.
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $u := "https://example.org/pets.csv" }}
|
||||
{{ with resources.GetRemote $u }}
|
||||
{{ with .Err }}
|
||||
{{ errorf "%s" . }}
|
||||
{{ else }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get remote resource %q" $u }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
[`transform.Unmarshal`]: /functions/transform/unmarshal
|
||||
@@ -0,0 +1,124 @@
|
||||
---
|
||||
title: data.GetJSON
|
||||
linkTitle: getJSON
|
||||
description: Returns a JSON object from a local or remote JSON file, or an error if the file does not exist.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: [getJSON]
|
||||
returnType: any
|
||||
signatures: [data.GetJSON PATHPART...]
|
||||
relatedFunctions:
|
||||
- data.GetCSV
|
||||
- data.GetJSON
|
||||
toc: true
|
||||
---
|
||||
|
||||
Given the following directory structure:
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── other-files/
|
||||
└── books.json
|
||||
```
|
||||
|
||||
Access the data with either of the following:
|
||||
|
||||
```go-html-template
|
||||
{{ $data := getCSV "," "other-files/books.json" }}
|
||||
{{ $data := getCSV "," "other-files/" "books.json" }}
|
||||
```
|
||||
|
||||
Access remote data with either of the following:
|
||||
|
||||
```go-html-template
|
||||
{{ $data := getCSV "," "https://example.org/books.json" }}
|
||||
{{ $data := getCSV "," "https://example.org/" "books.json" }}
|
||||
```
|
||||
|
||||
The resulting data structure is a JSON object:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"author": "Victor Hugo",
|
||||
"rating": 5,
|
||||
"title": "Les Misérables"
|
||||
},
|
||||
{
|
||||
"author": "Victor Hugo",
|
||||
"rating": 4,
|
||||
"title": "The Hunchback of Notre Dame"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## Global resource alternative
|
||||
|
||||
Consider using `resources.Get` with [`transform.Unmarshal`] when accessing a global resource.
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── assets/
|
||||
└── data/
|
||||
└── books.json
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $p := "data/books.json" }}
|
||||
{{ with resources.Get $p }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get resource %q" $p }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Page resource alternative
|
||||
|
||||
Consider using `.Resources.Get` with [`transform.Unmarshal`] when accessing a page resource.
|
||||
|
||||
```text
|
||||
my-project/
|
||||
└── content/
|
||||
└── posts/
|
||||
└── reading-list/
|
||||
├── books.json
|
||||
└── index.md
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $p := "books.json" }}
|
||||
{{ with .Resources.Get $p }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get resource %q" $p }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
## Remote resource alternative
|
||||
|
||||
Consider using `resources.GetRemote` with [`transform.Unmarshal`] for improved error handling when accessing a remote resource.
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $u := "https://example.org/books.json" }}
|
||||
{{ with resources.GetRemote $u }}
|
||||
{{ with .Err }}
|
||||
{{ errorf "%s" . }}
|
||||
{{ else }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get remote resource %q" $u }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
[`transform.Unmarshal`]: /functions/transform/unmarshal
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
title: time.Format
|
||||
description: Converts a date/time to a localized string.
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: time
|
||||
relatedFuncs:
|
||||
- time.AsTime
|
||||
- time.Duration
|
||||
- time.Format
|
||||
- time.Now
|
||||
- time.ParseDuration
|
||||
signature:
|
||||
- time.Format LAYOUT INPUT
|
||||
- dateFormat LAYOUT INPUT
|
||||
---
|
||||
|
||||
`time.Format` (alias `dateFormat`) converts either a `time.Time` object (e.g. `.Date`) or a timestamp string `INPUT` into the format specified by the `LAYOUT` string.
|
||||
|
||||
```go-html-template
|
||||
{{ time.Format "Monday, Jan 2, 2006" "2015-01-21" }} → "Wednesday, Jan 21, 2015"
|
||||
```
|
||||
|
||||
`time.Format` returns a localized string for the current language.
|
||||
|
||||
The `LAYOUT` string can be either:
|
||||
|
||||
* [Go’s Layout String](/functions/format/#gos-layout-string) to learn about how the `LAYOUT` string has to be formatted. There are also some useful examples.
|
||||
* A custom Hugo layout identifier (see full list below)
|
||||
|
||||
See the [`time` function](/functions/time/) to convert a timestamp string to a Go `time.Time` type value.
|
||||
|
||||
|
||||
## Date/time formatting layouts
|
||||
|
||||
Go's date layout strings can be hard to reason about, especially with multiple languages. You can alternatively use some predefined layout identifiers that will output localized dates or times:
|
||||
|
||||
```go-html-template
|
||||
{{ .Date | time.Format ":date_long" }}
|
||||
```
|
||||
|
||||
The full list of custom layouts with examples for English:
|
||||
|
||||
* `:date_full` => `Wednesday, June 6, 2018`
|
||||
* `:date_long` => `June 6, 2018`
|
||||
* `:date_medium` => `Jun 6, 2018`
|
||||
* `:date_short` => `6/6/18`
|
||||
|
||||
* `:time_full` => `2:09:37 am UTC`
|
||||
* `:time_long` => `2:09:37 am UTC`
|
||||
* `:time_medium` => `2:09:37 am`
|
||||
* `:time_short` => `2:09 am`
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: debug.Dump
|
||||
description: Returns an object dump as a string.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: string
|
||||
signatures: [debug.Dump VALUE]
|
||||
relatedFunctions: []
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
{{ $data := "" }}
|
||||
{{ $p := "data/books.json" }}
|
||||
{{ with resources.Get $p }}
|
||||
{{ $opts := dict "delimiter" "," }}
|
||||
{{ $data = . | transform.Unmarshal $opts }}
|
||||
{{ else }}
|
||||
{{ errorf "Unable to get resource %q" $p }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
```go-html-template
|
||||
<pre>{{ debug.Dump $data }}</pre>
|
||||
```
|
||||
|
||||
```text
|
||||
[]interface {}{
|
||||
map[string]interface {}{
|
||||
"author": "Victor Hugo",
|
||||
"rating": 5.0,
|
||||
"title": "Les Misérables",
|
||||
},
|
||||
map[string]interface {}{
|
||||
"author": "Victor Hugo",
|
||||
"rating": 4.0,
|
||||
"title": "The Hunchback of Notre Dame",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
{{% note %}}
|
||||
Output from this function may change from one release to the next. Use for debugging only.
|
||||
{{% /note %}}
|
||||
+10
-8
@@ -1,18 +1,20 @@
|
||||
---
|
||||
title: base64Decode
|
||||
title: encoding.Base64Decode
|
||||
linkTitle: base64Decode
|
||||
description: Returns the base64 decoding of the given content.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: encoding
|
||||
relatedFuncs:
|
||||
- encoding.Base64Decode
|
||||
- encoding.Base64Encode
|
||||
signature:
|
||||
- encoding.Base64Decode INPUT
|
||||
function:
|
||||
aliases: [base64Decode]
|
||||
returnType: string
|
||||
signatures: [encoding.Base64Decode INPUT]
|
||||
signatures:
|
||||
-
|
||||
- base64Decode INPUT
|
||||
aliases: [/functions/base64Decode]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
+9
-8
@@ -1,19 +1,20 @@
|
||||
---
|
||||
title: base64Encode
|
||||
title: encoding.Base64Encode
|
||||
linkTitle: base64Encode
|
||||
description: Returns the base64 decoding of the given content.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: encoding
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [base64Encode]
|
||||
returnType: string
|
||||
signatures: [encoding.Base64Encode INPUT]
|
||||
relatedFunctions:
|
||||
- encoding.Base64Decode
|
||||
- encoding.Base64Encode
|
||||
signature:
|
||||
- encoding.Base64Encode INPUT
|
||||
- base64Encode INPUT
|
||||
aliases: ['/functions/base64']
|
||||
aliases: [/functions/base64, /functions/base64Encode]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,21 +1,23 @@
|
||||
---
|
||||
title: jsonify
|
||||
title: encoding.Jsonify
|
||||
linkTitle: jsonify
|
||||
description: Encodes a given object to JSON.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: encoding
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [jsonify]
|
||||
returnType: template.HTML
|
||||
signatures:
|
||||
- encoding.Jsonify INPUT
|
||||
- encoding.Jsonify OPTIONS INPUT
|
||||
relatedFunctions:
|
||||
- encoding.Jsonify
|
||||
- transform.Remarshal
|
||||
- transform.Unmarshal
|
||||
signature:
|
||||
- encoding.Jsonify INPUT
|
||||
- encoding.Jsonify OPTIONS INPUT
|
||||
- jsonify INPUT
|
||||
- jsonify OPTIONS INPUT
|
||||
aliases: [/functions/jsonify]
|
||||
---
|
||||
|
||||
To customize the printing of the JSON, pass a map of options as the first
|
||||
@@ -30,7 +32,7 @@ more copies of *indent* according to the indentation nesting.
|
||||
{{ dict "title" .Title "content" .Plain | jsonify (dict "prefix" " " "indent" " ") }}
|
||||
```
|
||||
|
||||
## Jsonify options
|
||||
## Options
|
||||
|
||||
indent ("")
|
||||
: Indentation to use.
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: errorf
|
||||
title: fmt.Errorf
|
||||
linkTitle: errorf
|
||||
description: Log an ERROR from a template.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [errorf]
|
||||
returnType: string
|
||||
signatures: ['fmt.Errorf FORMAT [INPUT]']
|
||||
relatedFunctions:
|
||||
- fmt.Errorf
|
||||
- fmt.Erroridf
|
||||
- fmt.Warnf
|
||||
signature:
|
||||
- fmt.Errorf FORMAT [INPUT]
|
||||
- errorf FORMAT [INPUT]
|
||||
aliases: [/functions/errorf]
|
||||
---
|
||||
|
||||
The documentation for [Go's fmt package] describes the structure and content of the format string.
|
||||
@@ -26,6 +28,6 @@ Like the [`printf`] function, the `errorf` function evaluates the format string
|
||||
|
||||
Use the [`erroridf`] function to allow optional supression of specific errors.
|
||||
|
||||
[`erroridf`]: /functions/erroridf/
|
||||
[`printf`]: /functions/printf/
|
||||
[`erroridf`]: /functions/fmt/erroridf
|
||||
[`printf`]: /functions/fmt/printf
|
||||
[Go's fmt package]: https://pkg.go.dev/fmt
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: erroridf
|
||||
title: fmt.Erroridf
|
||||
linkTitle: erroridf
|
||||
description: Log a suppressable ERROR from a template.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [erroridf]
|
||||
returnType: string
|
||||
signatures: ['fmt.Erroridf ID FORMAT [INPUT]']
|
||||
relatedFunctions:
|
||||
- fmt.Errorf
|
||||
- fmt.Erroridf
|
||||
- fmt.Warnf
|
||||
signature:
|
||||
- fmt.Erroridf ID FORMAT [INPUT]
|
||||
- erroridf ID FORMAT [INPUT]
|
||||
aliases: [/functions/erroridf]
|
||||
---
|
||||
|
||||
The documentation for [Go's fmt package] describes the structure and content of the format string.
|
||||
@@ -42,5 +44,5 @@ To suppress this message:
|
||||
ignoreErrors = ["error-42"]
|
||||
{{< /code-toggle >}}
|
||||
|
||||
[`errorf`]: /functions/errorf/
|
||||
[`errorf`]: /functions/fmt/errorf
|
||||
[Go's fmt package]: https://pkg.go.dev/fmt
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: print
|
||||
title: fmt.Print
|
||||
linkTitle: print
|
||||
description: Prints the default representation of the given arguments using the standard `fmt.Print` function.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [print]
|
||||
returnType: string
|
||||
signatures: [fmt.Print INPUT]
|
||||
relatedFunctions:
|
||||
- fmt.Print
|
||||
- fmt.Printf
|
||||
- fmt.Println
|
||||
signature:
|
||||
- fmt.Print INPUT
|
||||
- print INPUT
|
||||
aliases: [/functions/print]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: printf
|
||||
title: fmt.Printf
|
||||
linkTitle: printf
|
||||
description: Formats a string using the standard `fmt.Sprintf` function.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [printf]
|
||||
returnType: string
|
||||
signatures: ['fmt.Printf FORMAT [INPUT]']
|
||||
relatedFunctions:
|
||||
- fmt.Print
|
||||
- fmt.Printf
|
||||
- fmt.Println
|
||||
signature:
|
||||
- fmt.Printf FORMAT [INPUT]
|
||||
- printf FORMAT [INPUT]
|
||||
aliases: [/functions/printf]
|
||||
---
|
||||
|
||||
The documentation for [Go's fmt package] describes the structure and content of the format string.
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: println
|
||||
title: fmt.Println
|
||||
linkTitle: println
|
||||
description: Prints the default representation of the given argument using the standard `fmt.Print` function and enforces a linebreak.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [println]
|
||||
returnType: string
|
||||
signatures: [fmt.Println INPUT]
|
||||
relatedFunctions:
|
||||
- fmt.Print
|
||||
- fmt.Printf
|
||||
- fmt.Println
|
||||
signature:
|
||||
- fmt.Println INPUT
|
||||
- println INPUT
|
||||
aliases: [/functions/println]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: warnf
|
||||
title: fmt.Warnf
|
||||
linkTitle: warnf
|
||||
description: Log a WARNING from a template.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: fmt
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [warnf]
|
||||
returnType: string
|
||||
signatures: ['fmt.Warnf FORMAT [INPUT]']
|
||||
relatedFunctions:
|
||||
- fmt.Errorf
|
||||
- fmt.Erroridf
|
||||
- fmt.Warnf
|
||||
signature:
|
||||
- fmt.Warnf FORMAT [INPUT]
|
||||
- warnf FORMAT [INPUT]
|
||||
aliases: [/functions/warnf]
|
||||
---
|
||||
|
||||
The documentation for [Go's fmt package] describes the structure and content of the format string.
|
||||
@@ -24,5 +26,5 @@ Like the [`printf`] function, the `warnf` function evaluates the format string.
|
||||
{{ warnf "Copyright notice missing from site configuration" }}
|
||||
```
|
||||
|
||||
[`printf`]: /functions/printf/
|
||||
[`printf`]: /functions/fmt/printf
|
||||
[Go's fmt package]: https://pkg.go.dev/fmt
|
||||
@@ -1,121 +0,0 @@
|
||||
---
|
||||
title: .Format
|
||||
description: Formats built-in Hugo dates---`.Date`, `.PublishDate`, and `.Lastmod`---according to Go's layout string.
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs: []
|
||||
signature:
|
||||
- .Format FORMAT
|
||||
toc: true
|
||||
---
|
||||
|
||||
`.Format` will format date values defined in your front matter and can be used as a property on the following [page variables][pagevars]:
|
||||
|
||||
* `.PublishDate`
|
||||
* `.Date`
|
||||
* `.Lastmod`
|
||||
|
||||
Assuming a key-value of `date: 2017-03-03` in a content file's front matter, your can run the date through `.Format` followed by a layout string for your desired output at build time:
|
||||
|
||||
```go-html-template
|
||||
{{ .PublishDate.Format "January 2, 2006" }} => March 3, 2017
|
||||
```
|
||||
|
||||
For formatting *any* string representations of dates defined in your front matter, see the [`dateFormat` function][dateFormat], which will still leverage the Go layout string explained below but uses a slightly different syntax.
|
||||
|
||||
## Go's layout string
|
||||
|
||||
Hugo templates [format your dates][time] via layout strings that point to a specific reference time:
|
||||
|
||||
```
|
||||
Mon Jan 2 15:04:05 MST 2006
|
||||
```
|
||||
|
||||
While this may seem arbitrary, the numerical value of `MST` is `07`, thus making the layout string a sequence of numbers.
|
||||
|
||||
Here is a visual explanation [taken directly from the Go docs][gdex]:
|
||||
|
||||
```
|
||||
Jan 2 15:04:05 2006 MST
|
||||
=> 1 2 3 4 5 6 -7
|
||||
```
|
||||
|
||||
### Hugo date and time templating reference
|
||||
|
||||
The following examples show the layout string followed by the rendered output.
|
||||
|
||||
The examples were rendered and tested in [CST] and all point to the same field in a content file's front matter:
|
||||
|
||||
```
|
||||
date: 2017-03-03T14:15:59-06:00
|
||||
```
|
||||
|
||||
`.Date` (i.e. called via [page variable][pagevars])
|
||||
: **Returns**: `2017-03-03 14:15:59 -0600 CST`
|
||||
|
||||
`"Monday, January 2, 2006"`
|
||||
: **Returns**: `Friday, March 3, 2017`
|
||||
|
||||
`"Mon Jan 2 2006"`
|
||||
: **Returns**: `Fri Mar 3 2017`
|
||||
|
||||
`"January 2006"`
|
||||
: **Returns**: `March 2017`
|
||||
|
||||
`"2006-01-02"`
|
||||
: **Returns**: `2017-03-03`
|
||||
|
||||
`"Monday"`
|
||||
: **Returns**: `Friday`
|
||||
|
||||
`"02 Jan 06 15:04 MST"` (RFC822)
|
||||
: **Returns**: `03 Mar 17 14:15 CST`
|
||||
|
||||
`"02 Jan 06 15:04 -0700"` (RFC822Z)
|
||||
: **Returns**: `03 Mar 17 14:15 -0600`
|
||||
|
||||
`"Mon, 02 Jan 2006 15:04:05 MST"` (RFC1123)
|
||||
: **Returns**: `Fri, 03 Mar 2017 14:15:59 CST`
|
||||
|
||||
`"Mon, 02 Jan 2006 15:04:05 -0700"` (RFC1123Z)
|
||||
: **Returns**: `Fri, 03 Mar 2017 14:15:59 -0600`
|
||||
|
||||
More examples can be found in Go's [documentation for the time package][timeconst].
|
||||
|
||||
### Cardinal s
|
||||
|
||||
Spelled-out cardinal numbers (e.g. "one", "two", and "three") are not currently supported.
|
||||
|
||||
Use the [`humanize`](/functions/humanize) function to render the day of the month as an ordinal number:
|
||||
|
||||
```go-html-template
|
||||
{{ humanize .Date.Day }} of {{ .Date.Format "January 2006" }}
|
||||
```
|
||||
|
||||
This will output:
|
||||
|
||||
```
|
||||
5th of March 2017
|
||||
```
|
||||
|
||||
|
||||
### Use `.Local` and `.UTC`
|
||||
|
||||
In conjunction with the [`dateFormat` function][dateFormat], you can also convert your dates to `UTC` or to local timezones:
|
||||
|
||||
`{{ dateFormat "02 Jan 06 15:04 MST" .Date.UTC }}`
|
||||
: **Returns**: `03 Mar 17 20:15 UTC`
|
||||
|
||||
`{{ dateFormat "02 Jan 06 15:04 MST" .Date.Local }}`
|
||||
: **Returns**: `03 Mar 17 14:15 CST`
|
||||
|
||||
[CST]: https://en.wikipedia.org/wiki/Central_Time_Zone
|
||||
[dateFormat]: /functions/dateformat/
|
||||
[gdex]: https://golang.org/pkg/time/#example_Time_Format
|
||||
[pagevars]: /variables/page/
|
||||
[time]: https://golang.org/pkg/time/
|
||||
[timeconst]: https://golang.org/pkg/time/#ANSIC
|
||||
@@ -2,20 +2,25 @@
|
||||
title: len
|
||||
description: Returns the length of a string, slice, map, or collection.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: text/template
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType: int
|
||||
signatures: [len INPUT]
|
||||
relatedFunctions:
|
||||
- len
|
||||
- strings.Count
|
||||
- strings.CountRunes
|
||||
- strings.CountWords
|
||||
- strings.RuneCount
|
||||
signature: ["len INPUT"]
|
||||
aliases: [/functions/len]
|
||||
---
|
||||
|
||||
{{% readfile file="/functions/_common/go-template-functions.md" %}}
|
||||
|
||||
With a string:
|
||||
|
||||
```go-html-template
|
||||
@@ -0,0 +1,159 @@
|
||||
---
|
||||
title: range
|
||||
description: Iterates over slices, maps, and page collections.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: [range COLLECTION]
|
||||
relatedFunctions:
|
||||
- with
|
||||
- range
|
||||
aliases: [/functions/range]
|
||||
toc: true
|
||||
---
|
||||
|
||||
{{% readfile file="/functions/_common/go-template-functions.md" %}}
|
||||
|
||||
## Slices
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "foo" "bar" "baz" }}
|
||||
{{ range $s }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>foo</p>
|
||||
<p>bar</p>
|
||||
<p>baz</p>
|
||||
```
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "foo" "bar" "baz" }}
|
||||
{{ range $v := $s }}
|
||||
<p>{{ $v }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>foo</p>
|
||||
<p>bar</p>
|
||||
<p>baz</p>
|
||||
```
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "foo" "bar" "baz" }}
|
||||
{{ range $k, $v := $s }}
|
||||
<p>{{ $k }}: {{ $v }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>0: foo</p>
|
||||
<p>1: bar</p>
|
||||
<p>2: baz</p>
|
||||
```
|
||||
|
||||
## Maps
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $m := slice
|
||||
(dict "name" "John" "age" 30)
|
||||
(dict "name" "Will" "age" 28)
|
||||
(dict "name" "Joey" "age" 24)
|
||||
}}
|
||||
{{ range $m }}
|
||||
<p>{{ .name }} is {{ .age }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>John is 30</p>
|
||||
<p>Will is 28</p>
|
||||
<p>Joey is 24</p>
|
||||
```
|
||||
|
||||
## Page collections
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ range where site.RegularPages "Type" "articles" }}
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<h2><a href="/articles/article-3/">Article 3</a></h2>
|
||||
<h2><a href="/articles/article-2/">Article 2</a></h2>
|
||||
<h2><a href="/articles/article-1/">Article 1</a></h2>
|
||||
```
|
||||
|
||||
## Break
|
||||
|
||||
Use the `break` statement to stop the innermost iteration and bypass all remaining iterations.
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "foo" "bar" "baz" }}
|
||||
{{ range $s }}
|
||||
{{ if eq . "bar" }}
|
||||
{{ break }}
|
||||
{{ end }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>foo</p>
|
||||
```
|
||||
|
||||
## Continue
|
||||
|
||||
Use the `continue` statement to stop the innermost iteration and continue to the next iteration.
|
||||
|
||||
Template:
|
||||
|
||||
```go-html-template
|
||||
{{ $s := slice "foo" "bar" "baz" }}
|
||||
{{ range $s }}
|
||||
{{ if eq . "bar" }}
|
||||
{{ continue }}
|
||||
{{ end }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```html
|
||||
<p>foo</p>
|
||||
<p>baz</p>
|
||||
```
|
||||
@@ -2,18 +2,22 @@
|
||||
title: urlquery
|
||||
description: Returns the escaped value of the textual representation of its arguments in a form suitable for embedding in a URL query.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: text/template
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType: string
|
||||
signatures: ['urlquery INPUT [INPUT]...']
|
||||
relatedFunctions:
|
||||
- collections.Querify
|
||||
- urlquery
|
||||
signature:
|
||||
- urlquery INPUT [INPUT]...
|
||||
aliases: [/functions/urlquery]
|
||||
---
|
||||
|
||||
{{% readfile file="/functions/_common/go-template-functions.md" %}}
|
||||
|
||||
This template code:
|
||||
|
||||
```go-html-template
|
||||
@@ -2,23 +2,27 @@
|
||||
title: with
|
||||
description: Rebinds the context (`.`) within its scope and skips the block if the variable is absent or empty.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: text/template
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: []
|
||||
returnType: any
|
||||
signatures: [with PIPELINE]
|
||||
relatedFunctions:
|
||||
- with
|
||||
- range
|
||||
signature:
|
||||
- with INPUT
|
||||
aliases: [/functions/with]
|
||||
---
|
||||
|
||||
{{% readfile file="/functions/_common/go-template-functions.md" %}}
|
||||
|
||||
An alternative way of writing an `if` statement and then referencing the same value is to use `with` instead. `with` rebinds the context (`.`) within its scope and skips the block if the variable is absent, unset or empty.
|
||||
|
||||
The set of *empty* values is defined by [the Go templates package](https://golang.org/pkg/text/template/). Empty values include `false`, the number zero, and the empty string.
|
||||
|
||||
If you want to render a block if an index or key is present in a slice, array, channel or map, regardless of whether the value is empty, you should use [`isset`](/functions/isset) instead.
|
||||
If you want to render a block if an index or key is present in a slice, array, channel or map, regardless of whether the value is empty, you should use [`isset`](/functions/collections/isset) instead.
|
||||
|
||||
The following example checks for a [user-defined site variable](/variables/site/) called `twitteruser`. If the key-value is not set, the following will render nothing:
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
title: .HasMenuCurrent
|
||||
description:
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs:
|
||||
- .HasMenuCurrent
|
||||
- .IsMenuCurrent
|
||||
signature:
|
||||
- PAGE.HasMenuCurrent MENU MENUENTRY
|
||||
---
|
||||
|
||||
`.HasMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
|
||||
returns `true` if the PAGE is the same object as the `.Page` in one of the
|
||||
**children menu entries** under MENUENTRY in a given MENU.
|
||||
|
||||
If MENUENTRY's `.Page` is a [section](/content-management/sections/) then, from Hugo `0.86.0`, this method also returns true for any descendant of that section..
|
||||
|
||||
You can find its example use in [menu templates](/templates/menu-templates/).
|
||||
@@ -1,15 +1,20 @@
|
||||
---
|
||||
title: hugo
|
||||
description: The `hugo` function provides easy access to Hugo-related data.
|
||||
keywords: []
|
||||
description: Provides global access to Hugo-related data.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: global
|
||||
relatedFuncs: []
|
||||
signature: [hugo]
|
||||
function:
|
||||
aliases: []
|
||||
returnType:
|
||||
signatures: [hugo]
|
||||
relatedFunctions:
|
||||
- hugo
|
||||
- page
|
||||
- site
|
||||
aliases: [/functions/hugo]
|
||||
---
|
||||
|
||||
`hugo` returns an instance that contains the following functions:
|
||||
@@ -2,6 +2,7 @@
|
||||
title: Image filters
|
||||
description: The images namespace provides a list of filters and other image related functions.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
aliases: [/functions/imageconfig/]
|
||||
menu:
|
||||
docs:
|
||||
@@ -270,4 +271,4 @@ favicon.ico: {{ .Width }} x {{ .Height }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
[`Process`]: #process
|
||||
[`Process`]: #process
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
title: in
|
||||
description: Checks if an element is in an array or slice---or a substring in a string---and returns a boolean.
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: collections
|
||||
relatedFuncs:
|
||||
- strings.Contains
|
||||
- strings.ContainsAny
|
||||
- strings.ContainsNonSpace
|
||||
- strings.HasPrefix
|
||||
- strings.HasSuffix
|
||||
signature:
|
||||
- collections.In SET ITEM
|
||||
- in SET ITEM
|
||||
---
|
||||
|
||||
The elements supported are strings, integers and floats, although only float64 will match as expected.
|
||||
|
||||
In addition, `in` can also check if a substring exists in a string.
|
||||
|
||||
```go-html-template
|
||||
{{ if in .Params.tags "Git" }}Follow me on GitHub!{{ end }}
|
||||
```
|
||||
|
||||
|
||||
```go-html-template
|
||||
{{ if in "this string contains a substring" "substring" }}Substring found!{{ end }}
|
||||
```
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: humanize
|
||||
title: inflect.Humanize
|
||||
linkTitle: humanize
|
||||
description: Returns the humanized version of an argument with the first letter capitalized.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: inflect
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [humanize]
|
||||
returnType: string
|
||||
signatures: [inflect.Humanize INPUT]
|
||||
relatedFunctions:
|
||||
- inflect.Humanize
|
||||
- inflect.Pluralize
|
||||
- inflect.Singularize
|
||||
signature:
|
||||
- inflect.Humanize INPUT
|
||||
- humanize INPUT
|
||||
aliases: [/functions/humanize]
|
||||
---
|
||||
|
||||
If the input is either an int64 value or the string representation of an integer, humanize returns the number with the proper ordinal appended.
|
||||
@@ -1,19 +1,21 @@
|
||||
---
|
||||
title: pluralize
|
||||
title: inflect.Pluralize
|
||||
linkTitle: pluralize
|
||||
description: Pluralizes the given word according to a set of common English pluralization rules
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: inflect
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [pluralize]
|
||||
returnType: string
|
||||
signatures: [inflect.Pluralize INPUT]
|
||||
relatedFunctions:
|
||||
- inflect.Humanize
|
||||
- inflect.Pluralize
|
||||
- inflect.Singularize
|
||||
signature:
|
||||
- inflect.Pluralize INPUT
|
||||
- pluralize INPUT
|
||||
aliases: [/functions/pluralize]
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
@@ -1,21 +1,25 @@
|
||||
---
|
||||
title: singularize
|
||||
title: inflect.Singularize
|
||||
linkTitle: singularize
|
||||
description: Converts a word according to a set of common English singularization rules.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace: inflect
|
||||
relatedFuncs:
|
||||
function:
|
||||
aliases: [singularize]
|
||||
returnType: string
|
||||
signatures: [inflect.Singularize INPUT]
|
||||
relatedFunctions:
|
||||
- inflect.Humanize
|
||||
- inflect.Pluralize
|
||||
- inflect.Singularize
|
||||
signature:
|
||||
- inflect.Singularize INPUT
|
||||
- singularize INPUT
|
||||
aliases: [/functions/singularize]
|
||||
---
|
||||
|
||||
`{{ "cats" | singularize }}` → "cat"
|
||||
```go-html-template
|
||||
{{ "cats" | singularize }} → "cat"
|
||||
```
|
||||
|
||||
See also the `.Data.Singular` [taxonomy variable](/variables/taxonomy/) for singularizing taxonomy names.
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
title: .IsMenuCurrent
|
||||
description:
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
namespace:
|
||||
relatedFuncs:
|
||||
- .HasMenuCurrent
|
||||
- .IsMenuCurrent
|
||||
signature:
|
||||
- PAGE.IsMenuCurrent MENU MENUENTRY
|
||||
---
|
||||
|
||||
`.IsMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
|
||||
returns `true` if the PAGE is the same object as the `.Page` in MENUENTRY in a
|
||||
given MENU.
|
||||
|
||||
You can find its example use in [menu templates](/templates/menu-templates/).
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
title: lang
|
||||
package: lang
|
||||
description: "Functions in the language namespace."
|
||||
categories: [functions]
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
keywords: []
|
||||
relatedFuncs: []
|
||||
signature: []
|
||||
aliases: ['/functions/numfmt/']
|
||||
type: 'template-func'
|
||||
---
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: lang.FormatAccounting
|
||||
description: Returns a currency representation of a number for the given currency and precision for the current language in accounting notation.
|
||||
categories: [functions]
|
||||
keywords: []
|
||||
menu:
|
||||
docs:
|
||||
parent: functions
|
||||
function:
|
||||
aliases: []
|
||||
returnType: string
|
||||
signatures: [lang.FormatAccounting PRECISION CURRENCY NUMBER]
|
||||
relatedFunctions:
|
||||
- lang.FormatAccounting
|
||||
- lang.FormatCurrency
|
||||
- lang.FormatNumber
|
||||
- lang.FormatNumberCustom
|
||||
- lang.FormatPercent
|
||||
---
|
||||
|
||||
```go-html-template
|
||||
{{ 512.5032 | lang.FormatAccounting 2 "NOK" }} → NOK512.50
|
||||
```
|
||||
|
||||
{{% note %}}
|
||||
{{% readfile file="/functions/_common/locales.md" %}}
|
||||
{{% /note %}}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user