Sections in Hugo

Posted on Sep 5, 2023

Ich fange gerade an, mit Hugo zu arbeiten, und fühle mich ein wenig an das Meme How To Draw An Owl erinnert. Die ersten Schritte sind super simpel, aber sobald der Pfad der Glückseligkeit verlassen wird, wird es kritisch. Heißt in meinem Fall konkret: Ich dachte mir, dass es ganz pfiffig wäre, nicht nur eine Liste von Posts zu haben, sondern getrennt davon auch eine Sammlung von Wissenshappen (inspiriert durch die TILs). Nun strukturiert man seinen Content in Hugo in Ordnern, das Vorgehen schien folglich sehr naheliegend: neuen Ordner anlegen, darin die Happen erstellen, fertig.

Nun, ganz so einfach war es dann nicht.

Statt meiner Posts tauchten auf der Startseite plötzlich die Wissenshappen auf. Wie lässt sich das kontrollieren? Nun, die Konfiguration hüllt sich in Schweigen, und überhaupt, die Dokumentation: ich finde sie wenig hilfreich. Vielleicht hätte ich wissen sollen, worauf ich mich einlasse, aber während das Onboarding noch ein entspanntes “Installier dir ein Theme und schreib’ los” umfasst, nimmt die restliche Dokumentation offenbar an, dass keinerlei Berührungsängste (und natürlich ausreichend Kenntnisse) bestehen, Layouts samt Partials umzubauen.


Eine Frage an ChatGPT und ein Blick in die index.html brachten mich schließlich zum Ergebnis.

Im index.html-Layout gibt’s diese Zeile, in der offenbar $pages gesetzt wird, und zwar mit allen Seiten, die als mainSections deklariert sind.

    {{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}

ChatGPT liefert den entscheidenden Hinweis, wie diese Sections zu deklarieren sind.

Statt dem vorgeschlagenen

[params]
  SectionPagesMenu = ["section1", "section2"]

steht in meiner hugo.toml nun also

[params]
  mainSections = ["posts"]

… und das scheint ausreichend gut zu funktionieren.