Заказ пунктов меню

Я пытаюсь заказать элементы в меню, но у меня не получается. Я пытался следовать в соответствии с их документами, но это вообще не работает.

В моей шапке:

      {{ range .Site.Data.Menu }}
      <li>

        <a href="{{ .URL | absURL }}"
        {{ if and ( isset . "Title" ) ( ne .Title "" ) }} title="{{ .Title }}"{{ end }}>

        {{ if and ( isset . "IconClass" ) ( ne .IconClass "" )  }}
            <i class="fa {{ .IconClass }}"></i>
        {{ end }}

        {{ .Name }}
        </a>
      </li>
      {{ end }}

menu.toml

[home]
    Name = "Home"
    Title = "Home"
    URL = "/home"
    weight = 1

[apparatus]
    Name = "Apparatus"
    URL = "/apparatus"
    weight = 2

[deliveries]
    Name = "Deliveries"
    URL = "/deliveries"
    weight = 3

[command]
    Name = "Command"
    URL = "/command"
    weight = 4

[ambulance]
    Name = "Ambulance"
    URL = "/ambulance"
    weight = 5

[service]
    Name = "Service"
    URL = "/service"
    weight = 6

[about]
    Name = "about"
    URL = "/about"
    weight = 7

[contact]
    Name = "Contact"
    URL = "/contact"
    weight = 8

Меню оказывается в произвольном порядке. Как мне заказать их так, как я хочу?


person Fennek    schedule 14.02.2016    source источник


Ответы (3)


Вес - это сортировка по умолчанию для меню в Hugo. Некоторые варианты ниже:

{{ range .Site.Data.Menu.Sort }}
{{ range .Site.Data.Menu.ByName }}
{{ range .Site.Data.Menu.ByName.Reverse }}
{{ range .Site.Data.Menu.ByName.Limit 10 }}
{{ range .Site.Data.Menu.ByWeight }}
person bep    schedule 30.04.2016

У меня была такая же проблема, и я решил ее, используя отрицательные числа для атрибута веса.

person Martin    schedule 28.02.2016

Измените строку:

{{ range .Site.Data.Menu }}

by:

{{ range sort .Site.Data.Menu "Weight"}}

Это решило проблему для меня.

person Reynaldo Aguilar    schedule 04.03.2016
comment
Только этот ответ работал у меня с v0.69.2. Однако мне пришлось использовать Weight с большой буквы W. - person Dirk Herrmann; 15.05.2020
comment
Также работает как ответ @bep - person sudoz; 01.12.2020