Menüs im Hugo Entwurfsmodus

Manchmal will man neue Menüpunkte hinzufügen, ohne sie zu veröffentlichen…

…z.B. weil man während man daran arbeitet, parallel weitere Blog Einträge erstellt. Leider bietet Hugo von sich aus nicht die Möglichkeit Menüeinträge als Enwurf zu kennzeichnen. Aber man kann das leicht selbst hinzufügen:

Implementierung

In der Hugo Konfiguraton (config.toml, hugo.toml bzw. in dem eingesetzten Dateiformat) muss der Abschnitt der Menü Konfiguration ein Parameter (z.B. draft = true) eingefügt werden:

[menus]
  [[menus.main]]
    name = 'New unfinished section'
    pageRef = '/work-in-progress'
    [menus.main.params]
      draft = true

Dieser muss dann einfach im Template, dass die Menüs generiert überprüft werden. Dazu muss noch geschaut werden, ob der Entwurfsmodus aktiv ist. In dem Beispiel wird das Menü in einer Schleife zusammengesetzt und ein Eintrag einfach übersprungen, wenn beide Bedingungen erfüllt sind.

{{- with .Site.Menus.main -}}
  {{- range sort . -}}
    {{- if and .Params.draft (not site.BuildDrafts) -}}
      {{- continue -}}
    {{- end -}}
    <a href="{{ .URL }}">{{ .Name }}</a>
  {{- end -}}
{{- end -}}

Nun erscheint der Eintrag nur noch wenn man im Entwurfsmodus startet:

hugo -D server

Dank

Dank an irkode aus dem Hugo Forum, der mich bei der Lösung unterstützt hat.

Update 2.6.2025

Nun ist das neue Feature verfügbar: Die Suche.