1
0
mirror of https://github.com/gohugoio/hugo.git synced 2024-05-11 05:54:58 +00:00
Files
gohugoio-hugo/content/en/functions/merge.md
Bjørn Erik Pedersen c1398b91a9 Squashed 'docs/' changes from 93f7baf80..3f95a2ace
3f95a2ace Update merge function examples (#1662)
e8d518011 requires -> require typo fix (#1666)
e714066cb Update GitLab deployment instructions (#1661)
11946a218 update GitLab CI/CD yaml syntax (#1649)
3568ddc03 Add explicit `contentDir` to module-config-mounts (#1658)
798ac8f68 Add default value to isHTML
d376565ce Create extensions.json

git-subtree-dir: docs
git-subtree-split: 3f95a2ace37b04851905d72e4444020e30996787
2022-02-28 10:37:27 +01:00

1.5 KiB

title, description, date, categories, menu, keywords, signature, workson, hugoversion, relatedfuncs, aliases
title description date categories menu keywords signature workson hugoversion relatedfuncs aliases
merge Returns the result of merging two or more maps. 2019-08-08
functions
docs
parent
functions
dictionary
collections.Merge MAP MAP...
merge MAP MAP...
0.56.0
dict
append
reflect.IsMap
reflect.IsSlice

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.

Key handling is case-insensitive.

The following examples use these map definitions:

{{ $m1 := dict "x" "foo" }}
{{ $m2 := dict "x" "bar" "y" "wibble" }}
{{ $m3 := dict "x" "baz" "y" "wobble" "z" (dict "a" "huey") }}

Example 1

{{ $merged := merge $m1 $m2 $m3 }}

{{ $merged.x }}   --> baz
{{ $merged.y }}   --> wobble
{{ $merged.z.a }} --> huey

Example 2

{{ $merged := merge $m3 $m2 $m1 }}

{{ $merged.x }}   --> foo
{{ $merged.y }}   --> wibble
{{ $merged.z.a }} --> huey

Example 3

{{ $merged := merge $m2 $m3 $m1 }}

{{ $merged.x }}   --> foo
{{ $merged.y }}   --> wobble
{{ $merged.z.a }} --> huey

Example 4

{{ $merged := merge $m1 $m3 $m2 }}

{{ $merged.x }}   --> bar
{{ $merged.y }}   --> wibble
{{ $merged.z.a }} --> huey

{{% note %}} Regardless of depth, merging only applies to maps. For slices, use [append]({{< ref "functions/append" >}}). {{% /note %}}