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.