archetypes

Archetypes dienen bei Hugo als Schablonen für neue Seiten. Dadurch wird beim Aufruf von mit hugo new <verzeichnis><name> eine neue Seite angelegt, in der die Felder im Frontmatter schon vorhanden oder sogar schon ausgefüllt sind.

Archetype “ftpedia.md”

Ein solcher Archetype liefert die Schablone für die einzelnen Ausgaben der ft:pedia. Da die ft:pedia-Ausgaben alle im Verzeichnis content/ftpedia liegen, heißt der Archetype dafür per Default ftpedia.md und liegt im Verzeichnis archetypes. Dieser Archetype erzeugt das hier beschriebene Frontmatter.

Die Datei für neue ft:pedia-Ausgabe wird mit diesem Archetype durch hugo new ftpedia/YYYY/YYYY-n/_index.md angelegt. Wenn die Datei _index.md in diesem Verzeichnis schon vorher für den Teaser existiert, muss diese allerdings zunächst entfernt werden.

---
hidden: true
layout: "file"
title: "{{- $s := split .Name "-" }} {{- print (index $s 1) " / " (index $s 0)}}"
date: {{ .Date }}
file: "ftpedia-{{ .Name }}.pdf"
uploadBy:
- "ft:pedia-Redaktion"
---

Die Variable .Name liefert so etwas wie “2019-3”, obwohl der Name der angelegten Datei ja “_index.md” lautet. Aus diesem Wert lässt sich mit etwas String-Zauberei der String “3 / 2019” erzeugen. Dabei wird zunächst der Name entlang des Bindestriches zerlegt, wodurch ein Array bestehend aus den beiden Elemente “2019” und “3” entsteht. Diese beiden Elemente werden jetzt in umgekehrter Reihenfolge und mit / verbunden als Titel ausgegeben.

Der Parameter date wird durch die Variable .Date automatisch mit dem aktuellen Datum belegt. Der Name der PDF-Datei muss unbedingt dem Schema “YYYY-n.pdf” folgen; sonst wird entweder die Datei nicht gefunden, oder der Name muss in der md-Datei händisch geändert werden. Dieser Archetype ist für alle neuen ft:pedia-Ausgaben geeignet. Die Parameter im Frontmatter, die sich auf den Import der älteren Ausgaben beziehen, werden nicht angelegt.

Weitere Archetypes für ft:pedia

Beim Aufruf von hugo new ist es möglich, mit -k typ einen Archetype anzugeben. Diesen Befehl nutzen wir, um auch für die anderen Files, die für die einzelnen ft:pedia-Ausgaben anfallen, eigene Archetypes zu verwenden. Dies sind:

  • year.md für die _index.md im Jahrgang
  • teaser.md für einen Teaser
  • download.md für eine Download-Datei.

Der Aufruf erfolgt jeweils mit

  • hugo new -k year ftpedia/YYYY/_index.md
  • hugo new -k teaser ftpedia/YYYY/YYYY-n/_index.md
  • hugo new -k download ftpedia/YYYY/YYYY-n/filename.md

Die so erzeugten Files für Teaser und Downloads müssen noch bearbeitet werden. Beispielsweise muss bei einer Download-Datei der Konstrukteur genannt werden, die Datei-Endung muss gesetzt werden und das Datum angepasst werden. In den Content-Bereich kann man noch erklärenden Text schreiben. Da der Aufruf von hugo new auch ggf. noch fehlende Verzeichnisse erzeugt, wird durch die Verwendung dieser Archetypes das Hochladen einer ft:pedia-Datei deutlich erleichtert.