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 函數。
上面的示例很簡單。請參閱 菜單模板 部分以獲取更多信息。