Page
Syntax
MENUENTRY.Page
Returns
page.Page
Regardless of how you define menu entries, an entry associated with a page has access to its methods.
In this menu definition, the first two entries are associated with a page, the last entry is not:
hugo.
menus:
main:
- pageRef: /about
weight: 10
- pageRef: /contact
weight: 20
- name: Hugo
url: https://gohugo.io
weight: 30
[menus]
[[menus.main]]
pageRef = '/about'
weight = 10
[[menus.main]]
pageRef = '/contact'
weight = 20
[[menus.main]]
name = 'Hugo'
url = 'https://gohugo.io'
weight = 30
{
"menus": {
"main": [
{
"pageRef": "/about",
"weight": 10
},
{
"pageRef": "/contact",
"weight": 20
},
{
"name": "Hugo",
"url": "https://gohugo.io",
"weight": 30
}
]
}
}
In this example, if the menu entry is associated with a page, we use page’s RelPermalink
and LinkTitle
when rendering the anchor element.
If the entry is not associated with a page, we use its url
and name
properties.
<ul>
{{ range .Site.Menus.main }}
{{ with .Page }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{ else }}
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
{{ end }}
{{ end }}
</ul>
See the menu templates section for more information.