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