mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
5e078383a7
49809a03 Merge commit '20a631b4964fc0ab9137cce1e41774cbc17de044' 20a631b4 Squashed 'themes/gohugoioTheme/' changes from b8202f539..dafc91ff1 8b58f565 Re-generate CLI docs 4653a724 Add Netlify deployment badge 2d6246bc Remove some deprecated site variables e6777153 Improve Algolia Search Display Styling 1570999f Add missing "." in front of gitlab-ci.yaml example b922ae7d This adds documentation to the new configDir/Environment logic from .53 (#729) 7cff379f Correctly escape multi-word taxonomy terms in example 2dfeeda4 fix typo by removing stray paren 0870bd9a Fix typo in `paginate` description 91e8be85 Fixes https://github.com/gohugoio/hugo/issues/5609 c1db65ec Make the dummy URL more obvious b4589ff0 Fix a link b73dcb9a Consistently use "posts" as section name in examples 7a56abbc Format definitions a9c6fd9b Minor clarification over the last commit 5c86bdc8 Add alternative instructions for Quick Start for non-git users dafe7ee9 Add Visual Studio Code plug-ins 110ed19e Update HUGO_VERSION 2abd031a Update page.md b332f7b9 Update page.md f5a8c9d4 Update static-files.md 6d0c155c Add note about relative protocol URLs a13751ac Theme Warning: Remove note about unquoted URLs 4c8f7d68 Incorporate feedback 6f2b9cf0 Update Creating Themes Warning 40d88d98 Fix ToC example to use binary true/false 4a11f3f1 Fix typo 2dbfc0a4 Fix a typo in taxonomies d63790ef Do not mark UndocumentedFeature issues as stale d7aff095 Regenerate docs.json 71c0826f Update transform.Unmarshal.md git-subtree-dir: docs git-subtree-split: 49809a038b2691637bab7f3f2e385dde654a88b8
61 lines
2 KiB
Markdown
61 lines
2 KiB
Markdown
---
|
|
title: len
|
|
linktitle: len
|
|
description: Returns the length of a variable according to its type.
|
|
godocref: https://golang.org/pkg/builtin/#len
|
|
date: 2017-02-01
|
|
publishdate: 2017-02-01
|
|
lastmod: 2017-04-18
|
|
categories: [functions]
|
|
keywords: []
|
|
signature: ["len INPUT"]
|
|
workson: [lists,taxonomies,terms]
|
|
hugoversion:
|
|
relatedfuncs: []
|
|
deprecated: false
|
|
toc: false
|
|
aliases: []
|
|
---
|
|
|
|
`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" >}}
|
|
<header>
|
|
<h1{{if gt (len .Title) 80}} class="long-title"{{end}}>{{.Title}}</h1>
|
|
</header>
|
|
{{< /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][].
|
|
|
|
|
|
[fundamental function for Hugo templating]: /templates/introduction/
|
|
[list templates]: /templates/lists/
|
|
[section]: /content-management/sections/
|
|
[site variable]: /variables/site/
|
|
[`where`]: /functions/where/
|