summaryrefslogtreecommitdiffstats
path: root/docs/content/en/methods/menu-entry/KeyName.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/content/en/methods/menu-entry/KeyName.md')
-rw-r--r--docs/content/en/methods/menu-entry/KeyName.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/docs/content/en/methods/menu-entry/KeyName.md b/docs/content/en/methods/menu-entry/KeyName.md
new file mode 100644
index 000000000..8031441b9
--- /dev/null
+++ b/docs/content/en/methods/menu-entry/KeyName.md
@@ -0,0 +1,39 @@
+---
+title: KeyName
+description: Returns the `identifier` property of the given menu entry, falling back to its `name` property.
+categories: []
+keywords: []
+action:
+ related: []
+ returnType: string
+ signatures: [MENUENTRY.KeyName]
+---
+
+In this menu definition, the second entry does not contain an `identifier`, so the `Identifier` method returns its `name` property instead:
+
+{{< code-toggle file=hugo >}}
+[[menu.main]]
+identifier = 'about'
+name = 'About'
+pageRef = '/about'
+weight = 10
+
+[[menu.main]]
+name = 'Contact'
+pageRef = '/contact'
+weight = 20
+{{< /code-toggle >}}
+
+This example uses the `KeyName` method when querying the translation table on a multilingual site, falling back the `name` property if a matching key in the translation table does not exist:
+
+```go-html-template
+<ul>
+ {{ range .Site.Menus.main }}
+ <li><a href="{{ .URL }}">{{ or (T (.KeyName | lower)) .Name }}</a></li>
+ {{ end }}
+</ul>
+```
+
+In the example above, we need to pass the value returned by `.KeyName` through the [`lower`] function because the keys in the translation table are lowercase.
+
+[`lower`]: functions/strings/tolower