hugo/content/en/functions/len.md
Bjørn Erik Pedersen 41bc6f702a Squashed 'docs/' changes from 2201ac0e5..2c0125b52
2c0125b52 Remove .Site.Author
2cf8841b3 Update partialCached.md (#1924)
385487191 Update data-templates.md (#1926)
ce207e141 Remove redundant markdown and fix a few typos (#1936)
3687c2953 Make heading id linkable, take 2
45c79bea7 Make heading id linkable
b22079344 Delete duplicates the lines 557-569 and 570-582. (#1934)
0a90dc122 Rework the taxonomy variables page (#1935)
7f8979c50 Update theme
26e682a3a Update multilingual.md
d40e7693f Update postcss.md
375d75c01 Update postcss npm instructions (#1931)
63020094a Emphasize Window shell selection (#1930)
56824be2c Update configuration.md
b7b8f16b3 Docu 'Theme components': minor fix (#1929)
09dc81a05 Remove Docker from BSD page (#1927)
205fea204 netlify: Hugo 0.108.0
6abe49c28 Merge commit 'da670c38ee63a7fef25e2b9f42519232055b60dc'
12b59a4c5 docs: Add basic doc for wrapStandAloneImageWithinParagraph etc.
ba07bd970 dartsass: Add sourceMapIncludeSources option

git-subtree-dir: docs
git-subtree-split: 2c0125b5290494d49334606c451446ebd9df3c21
2022-12-20 11:04:41 +01:00

2 KiB

title linktitle description date publishdate lastmod categories menu keywords signature workson hugoversion relatedfuncs deprecated toc aliases
len len Returns the length of a variable according to its type. 2017-02-01 2017-02-01 2017-04-18
functions
docs
parent
functions
len INPUT
lists
taxonomies
terms
false false

len is a built-in function in Go that returns the length of a variable according to its type. From the Go documentation:

Array: the number of elements in v.

Pointer to array: the number of elements in *v (even if v is nil).

Slice, or map: the number of elements in v; if v is nil, len(v) is zero.

String: the number of bytes in v.

Channel: the number of elements queued (unread) in the channel buffer; if v is nil, len(v) is zero.

len is also considered a fundamental function for Hugo templating.

len Example 1: Longer Headings

You may want to append a class to a heading according to the length of the string therein. The following templating checks to see if the title's length is greater than 80 characters and, if so, adds a long-title class to the <h1>:

{{< code file="check-title-length.html" >}}

{{.Title}} {{< /code >}}

len Example 2: Counting Pages with where

The following templating uses where in conjunction with len to figure out the total number of content pages in a posts section:

{{< code file="how-many-posts.html" >}} {{ $posts := (where .Site.RegularPages "Section" "==" "posts") }} {{ $postCount := len $posts }} {{< /code >}}

Note the use of .RegularPages, a site variable that counts all regular content pages but not the _index.md pages used to add front matter and content to list templates.