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 函數轉換為小寫,因為翻譯表中的鍵是小寫的。