summaryrefslogtreecommitdiffstats
path: root/docs/content/en/functions/collections/IndexFunction.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/functions/collections/IndexFunction.md')
-rw-r--r--docs/content/en/functions/collections/IndexFunction.md57
1 files changed, 26 insertions, 31 deletions
diff --git a/docs/content/en/functions/collections/IndexFunction.md b/docs/content/en/functions/collections/IndexFunction.md
index cd063f36e..e595d2b41 100644
--- a/docs/content/en/functions/collections/IndexFunction.md
+++ b/docs/content/en/functions/collections/IndexFunction.md
@@ -1,71 +1,66 @@
---
title: collections.Index
-linkTitle: index
description: Looks up the index(es) or key(s) of the data structure passed into it.
-categories: [functions]
+categories: []
keywords: []
-menu:
- docs:
- parent: functions
-function:
+action:
aliases: [index]
+ related:
+ - functions/collections/Dictionary
+ - functions/collections/Group
+ - functions/collections/IsSet
+ - functions/collections/Where
returnType: any
signatures:
- collections.Index COLLECTION INDEXES
- collections.Index COLLECTION KEYS
-relatedFunctions:
- - collections.Dictionary
- - collections.EchoParam
- - collections.Group
- - collections.Index
- - collections.IsSet
- - collections.Where
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.:
-```go-text-template
+```go-html-template
{{ $slice := slice "a" "b" "c" }}
-{{ index $slice 1 }} => b
+{{ index $slice 0 }} → a
+{{ index $slice 1 }} → b
+
{{ $map := dict "a" 100 "b" 200 }}
-{{ index $map "b" }} => 200
+{{ index $map "b" }} → 200
```
The function takes multiple indices as arguments, and this can be used to get nested values, e.g.:
-```go-text-template
+```go-html-template
{{ $map := dict "a" 100 "b" 200 "c" (slice 10 20 30) }}
-{{ index $map "c" 1 }} => 20
+{{ index $map "c" 1 }} → 20
{{ $map := dict "a" 100 "b" 200 "c" (dict "d" 10 "e" 20) }}
-{{ index $map "c" "e" }} => 20
+{{ index $map "c" "e" }} → 20
```
You may write multiple indices as a slice:
-```go-text-template
+```go-html-template
{{ $map := dict "a" 100 "b" 200 "c" (dict "d" 10 "e" 20) }}
{{ $slice := slice "c" "e" }}
-{{ index $map $slice }} => 20
+{{ index $map $slice }} → 20
```
## Example: load data from a path based on front matter parameters
Assume you want to add a `location = ""` field to your front matter for every article written in `content/vacations/`. You want to use this field to populate information about the location at the bottom of the article in your `single.html` template. You also have a directory in `data/locations/` that looks like the following:
-```
-.
-└── data
- └── locations
- ├── abilene.toml
- ├── chicago.toml
- ├── oslo.toml
- └── provo.toml
+```text
+data/
+ └── locations/
+ ├── abilene.toml
+ ├── chicago.toml
+ ├── oslo.toml
+ └── provo.toml
```
Here is an example:
-{{< code-toggle file="data/locations/oslo" copy=false >}}
+{{< code-toggle file=data/locations/oslo >}}
website = "https://www.oslo.kommune.no"
pop_city = 658390
pop_metro = 1717900
@@ -73,7 +68,7 @@ pop_metro = 1717900
The example we will use will be an article on Oslo, whose front matter should be set to exactly the same name as the corresponding file name in `data/locations/`:
-{{< code-toggle file="content/articles/oslo.md" fm=true copy=false >}}
+{{< code-toggle file=content/articles/oslo.md fm=true >}}
title = "My Norwegian Vacation"
location = "oslo"
{{< /code-toggle >}}