``` git subtree add --prefix=docs/ https://github.com/gohugoio/hugoDocs.git master --squash ``` Closes #11925
1.9 KiB
title | description | categories | keywords | action | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ByWeight | Returns the given menu with its entries sorted by weight, then by name, then by identifier. |
|
The ByWeight
method returns the given menu with its entries sorted by weight
, then by name
, then by identifier
. This is the default sort order.
Consider this menu definition:
{{< code-toggle file=hugo >}} menus.main identifier = 'about' name = 'About' pageRef = '/about' weight = 20
menus.main identifier = 'services' name = 'Services' pageRef = '/services' weight = 10
menus.main identifier = 'contact' name = 'Contact' pageRef = '/contact' weight = 30 {{< /code-toggle >}}
To sort the entries by weight
, then by name
, then by identifier
:
<ul>
{{ range .Site.Menus.main.ByWeight }}
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
{{ end }}
</ul>
Hugo renders this to:
<ul>
<li><a href="/services/">Services</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
{{% note %}}
In the menu definition above, note that the identifier
property is only required when two or more menu entries have the same name, or when localizing the name using translation tables.
{{% /note %}}
You can also sort menu entries using the sort
function. For example, to sort by weight
in descending order:
<ul>
{{ range sort .Site.Menus.main "Weight" "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
.