HUGO
News Docs Themes Community GitHub

Reverse

Returns the given menu, reversing the sort order of its entries.

Syntax

MENU.Reverse

Returns

navigation.Menu

The Reverse method returns the given menu, reversing the sort order of its entries.

Consider this menu definition:

menus:
  main:
  - name: Services
    pageRef: /services
    weight: 10
  - name: About
    pageRef: /about
    weight: 20
  - name: Contact
    pageRef: /contact
    weight: 30
[menus]
  [[menus.main]]
    name = 'Services'
    pageRef = '/services'
    weight = 10
  [[menus.main]]
    name = 'About'
    pageRef = '/about'
    weight = 20
  [[menus.main]]
    name = 'Contact'
    pageRef = '/contact'
    weight = 30
{
   "menus": {
      "main": [
         {
            "name": "Services",
            "pageRef": "/services",
            "weight": 10
         },
         {
            "name": "About",
            "pageRef": "/about",
            "weight": 20
         },
         {
            "name": "Contact",
            "pageRef": "/contact",
            "weight": 30
         }
      ]
   }
}

To sort the entries by name in descending order:

<ul>
  {{ range .Site.Menus.main.ByName.Reverse }}
    <li><a href="{{ .URL }}">{{ .Name }}</a></li>
  {{ end }}
</ul>

Hugo renders this to:

<ul>
  <li><a href="/services/">Services</a></li>
  <li><a href="/contact">Contact</a></li>
  <li><a href="/about/">About</a></li>
</ul>