KeyName
在以下選單定義中,第二個項目未包含 identifier
,因此 Identifier
方法會改傳回其 name
屬性:
hugo.
menus:
main:
- identifier: about
name: About
pageRef: /about
weight: 10
- name: Contact
pageRef: /contact
weight: 20
[menus]
[[menus.main]]
identifier = 'about'
name = 'About'
pageRef = '/about'
weight = 10
[[menus.main]]
name = 'Contact'
pageRef = '/contact'
weight = 20
{
"menus": {
"main": [
{
"identifier": "about",
"name": "About",
"pageRef": "/about",
"weight": 10
},
{
"name": "Contact",
"pageRef": "/contact",
"weight": 20
}
]
}
}
以下範例展示如何在多語系站點中使用 KeyName
方法查詢翻譯表,並在翻譯表中沒有匹配鍵時,回退使用 name
屬性:
<ul>
{{ range .Site.Menus.main }}
<li><a href="{{ .URL }}">{{ or (T (.KeyName | lower)) .Name }}</a></li>
{{ end }}
</ul>
在上述範例中,我們需要將 .KeyName
所返回的值通過 lower
函數轉換為小寫,因為翻譯表中的鍵是小寫的。