summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorDavid Jones <[email protected]>2020-11-22 13:09:59 -0800
committerGitHub <[email protected]>2020-11-22 22:09:59 +0100
commit8f5c9a747fcebb02bb99f5de272046411eb15370 (patch)
treeda9d219c001c2ddccafe8f5c5d05d962bf8c6275 /docs
parente4fcb672ed8bae21fd9780292b54fea3040dd877 (diff)
downloadhugo-8f5c9a747fcebb02bb99f5de272046411eb15370.tar.gz
hugo-8f5c9a747fcebb02bb99f5de272046411eb15370.zip
Add menu params
Fixes #7951
Diffstat (limited to 'docs')
-rw-r--r--docs/content/en/content-management/menus.md18
-rw-r--r--docs/content/en/templates/menu-templates.md20
2 files changed, 38 insertions, 0 deletions
diff --git a/docs/content/en/content-management/menus.md b/docs/content/en/content-management/menus.md
index 9ac6f8bff..6b89c44da 100644
--- a/docs/content/en/content-management/menus.md
+++ b/docs/content/en/content-management/menus.md
@@ -113,6 +113,24 @@ This means that `.Title` will be used unless `.LinkTitle` is present, etc. In pr
In this example, the top level of the menu is defined in your [site `config` file][config]. All content entries are attached to one of these entries via the `.Parent` field.
+## Params
+
+You can also add user-defined content to menu items via the `params` field.
+
+A common use case is to define a custom param to add a css class to a specific menu item.
+
+{{< code-toggle file="config" >}}
+[[menu.main]]
+ name = "about hugo"
+ pre = "<i class='fa fa-heart'></i>"
+ weight = -110
+ identifier = "about"
+ url = "/about/"
+ [menu.main.params]
+ class = "highlight-menu-item"
+{{</ code-toggle >}}
+
+
## Render Menus
See [Menu Templates](/templates/menu-templates/) for information on how to render your site menus within your templates.
diff --git a/docs/content/en/templates/menu-templates.md b/docs/content/en/templates/menu-templates.md
index b39fe42a9..8893d7b5a 100644
--- a/docs/content/en/templates/menu-templates.md
+++ b/docs/content/en/templates/menu-templates.md
@@ -160,3 +160,23 @@ Here's an example:
{{ end }}
</nav>
```
+
+## Using .Params in Menus
+
+User-defined content on menu items are accessible via `.Params`.
+
+Here's an example:
+
+```
+<nav class="sidebar-nav">
+ {{ range .Site.Menus.main }}
+ <a href="{{ .URL }}" title="{{ .Title }}" class="{{ with .Params.class }}{{ . }}{{ end }}">
+ {{- .Name -}}
+ </a>
+ {{ end }}
+</nav>
+```
+
+{{% note %}}
+With Menu-level .Params they can easily exist on one menu item but not another. It's recommended to access them gracefully using the [with function](/functions/with).
+{{% /note %}} \ No newline at end of file