HUGO
Menu
GitHub 87548 stars Mastodon

Menus

返回給定站點的菜單對象集合。

Syntax

SITE.Menus

Returns

navigation.Menus

Site 對象上的 Menus 方法返回菜單集合,每個菜單包含一個或多個條目,可以是扁平的或嵌套的。每個條目指向站點內的頁面或外部資源。

菜單可以通過多種方式定義和本地化。請參閱 菜單 部分以獲取完整解釋和示例。

站點可以有多個菜單。例如,主菜單和頁腳菜單:

menus:
  footer:
  - name: Legal
    pageRef: /legal
    weight: 10
  - name: Privacy
    pageRef: /privacy
    weight: 20
  main:
  - name: Home
    pageRef: /
    weight: 10
  - name: Books
    pageRef: /books
    weight: 20
  - name: Films
    pageRef: /films
    weight: 30
[menus]
  [[menus.footer]]
    name = 'Legal'
    pageRef = '/legal'
    weight = 10
  [[menus.footer]]
    name = 'Privacy'
    pageRef = '/privacy'
    weight = 20
  [[menus.main]]
    name = 'Home'
    pageRef = '/'
    weight = 10
  [[menus.main]]
    name = 'Books'
    pageRef = '/books'
    weight = 20
  [[menus.main]]
    name = 'Films'
    pageRef = '/films'
    weight = 30
{
   "menus": {
      "footer": [
         {
            "name": "Legal",
            "pageRef": "/legal",
            "weight": 10
         },
         {
            "name": "Privacy",
            "pageRef": "/privacy",
            "weight": 20
         }
      ],
      "main": [
         {
            "name": "Home",
            "pageRef": "/",
            "weight": 10
         },
         {
            "name": "Books",
            "pageRef": "/books",
            "weight": 20
         },
         {
            "name": "Films",
            "pageRef": "/films",
            "weight": 30
         }
      ]
   }
}

此模板渲染主菜單:

{{ with site.Menus.main }}
  <nav class="menu">
    {{ range . }}
      {{ if $.IsMenuCurrent .Menu . }}
        <a class="active" aria-current="page" href="{{ .URL }}">{{ .Name }}</a>
      {{ else }}
        <a href="{{ .URL }}">{{ .Name }}</a>
      {{ end }}
    {{ end }}
  </nav>
{{ end }}

訪問主頁時,結果為:

<nav class="menu">
  <a class="active" aria-current="page" href="/">Home</a>
  <a href="/books/">Books</a>
  <a href="/films/">Films</a>
</nav>

訪問"books"頁面時,結果為:

<nav class="menu">
  <a href="/">Home</a>
  <a class="active" aria-current="page" href="/books/">Books</a>
  <a href="/films/">Films</a>
</nav>

您通常會使用 局部 模板來渲染菜單。由於活動菜單條目在每個頁面都不同,請使用 partial 函數來調用模板。不要使用 partialCached 函數。

上面的示例很簡單。請參閱 菜單模板 部分以獲取更多信息。


Last updated: January 1, 0001
Improve this page