Hugo bietet derzeit keine Funktion, um das aktuelle OutputFormat zu erhalten – dieses Partial1 bietet eine einfache Lösung.
Hugo ermöglicht das Hinzufügen von benutzerdefinierten Ausgabeformaten – jedoch bietet es bis einschliesslich Version 0.111.0 keine Funktion, um das OutputFormat
des aktuellen Seitenkontexts bereitzustellen. Da Hugo zwei Funktionen zur Auflistung verfügbarer OutputFormat
s bereitstellt, die sich darin unterscheiden, ob sie das aktuelle OutputFormat
enthalten, liefert ein einfacher Aufruf von complement
die Antwort.
Hinweis
Es gibt ein offenes Issue auf GitHub bezüglich des Fehlens einer OutputFormat
-Eigenschaft der Page
-Klasse. Joe Mooring kam auf dieselbe Lösung wie unten. Aber er fügt auch einen wichtigen Vorbehalt hinzu: Das untenstehende funktioniert nur, solange alle deklarierten OutputFormat
s folgendes in config.toml
deklariert haben:
1notAlternative = false
Du kannst das folgenden Snippet zu layouts/partials/_functions
hinzufügen, um diese Funktion in Deinen Templates zu verwenden.
In diesem Beitrag haben wir gesehen, wie wir mit einem einfachen Partial in Hugo das aktuelle OutputFormat erhalten können, obwohl Hugo selbst noch keine Funktion dafür anbietet. Es ist wichtig zu beachten, dass diese Lösung unter der Bedingung funktioniert, dass alle deklarierten OutputFormats den Parameter notAlternative = false
in der config.toml
-Datei deklariert haben.
Durch das Hinzufügen des oben genannten Schnipsels zu layouts/partials/_functions
kannst Du das OutputFormat in Deinen Templates verwenden und die Ausgabe der Seiten dynamisch anpassen, je nachdem, welches Format gerade verwendet wird.
Denke bitte daran, dass es sich hierbei um eine temporäre Lösung handelt, bis Hugo möglicherweise eine integrierte Funktion für das Abrufen des aktuellen OutputFormats bereitstellt. Am besten abonnierst Du das offene Issue auf GitHub, um über zukünftige Updates informiert zu bleiben.
Foto von Keith Misner auf Unsplash.
Ein Partial ist ein Hugo-spezifisches Template und wird im Projektverzeichnis unter
layouts/partials
abgelegt. Partials, welche keinen Inhalt ausgeben, sondern wie das vorliegende einen Wert zurück liefern, werden oftmals unterlayouts/partials/_functions
abgelegt. Dies ist aber keine Voraussetzung. ↩︎