ByName
Returns the given menu with its entries sorted by name.
Syntax
MENU.ByName
Returns
navigation.Menu
The Sort method returns the given menu with its entries sorted by name.
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:
<ul>
  {{ range .Site.Menus.main.ByName }}
    <li><a href="{{ .URL }}">{{ .Name }}</a></li>
  {{ end }}
</ul>Hugo renders this to:
<ul>
  <li><a href="/about/">About</a></li>
  <li><a href="/contact">Contact</a></li>
  <li><a href="/services/">Services</a></li>
</ul>You can also sort menu entries using the sort function. For example, to sort by name in descending order:
<ul>
  {{ range sort .Site.Menus.main "Name" "desc" }}
    <li><a href="{{ .URL }}">{{ .Name }}</a></li>
  {{ end }}
</ul>When using the sort function with menu entries, specify any of the following keys: Identifier, Name, Parent, Post, Pre, Title, URL, or Weight.
