Warum Hugo Spaß macht

2017-09-25 // Tags:

Nachdem ich erste Erfahrungen damit gemacht habe, wie man einen Blog mit Hugo erstellt, habe ich lange überlegt, ob ich nicht auch eines meiner Musik-Magazine auf statische Webseiten umziehen soll. Am Wochenende war es schlussendlich soweit und ich habe TheNocturnalSilence.de von Wordpress auf Hugo migriert.
Und ich muss sagen: So viel Spaß hat mir das Erstellen einer Website schon lange nicht mehr gemacht!

Doch warum macht Hugo so viel Spaß? Für mich hat es viel Gründe…

Simplizität und dennoch Flexibilität

Zugegeben, man muss erstmal in Hugo reinkommen. Es ist eine komplett andere Vorgehensweise, als das Aufsetzen einer Wordpress-Seite. Dank vieler One-Click-Lösungen vieler Web-Hoster, kann heute fast jeder eine eigene Wordpress-Instanz betreiben und einfach ein beliebiges Theme aus dem kostenlosen Pool installieren. Der Laie wird hingegen schon bei der Installation des ersten Themes für Hugo scheitern, wenn er noch nie mit Git gearbeitet hat. Und ohne ein Theme macht Hugo gar nichts. Da der Umfang an verfügbaren Themes für den Static Site Generator vergleichsweise verschwindend gering ist, ist eine mögliche Einstiegsfrustration nicht unwahrscheinlich. Doch wenn man die ersten Hürden genommen hat, ist das Arbeiten mit Hugo echt angenehm einfach und geradeaus.

Zunächst werden die einzelnen Seiten grob organisiert. Und anschließend kann man durch schlichte Variablen im Front-Matter eigentlich alles mögliche machen. Als Beispiel für mein Musik-Magazin: Ich will pro Seite ein Hintergrund-Bild, ein Header-Bild und ein Bild für die Übersicht. Das erledige ich in Hugo schnell über neue Variablen im Kopf-Teil des Beitrags:

background = "background.jpg"
header = "header.jpg"
preview = "preview.jpg"

In Wordpress müsste ich erstmal entsprechende Felder in der functions.php meines Themes definieren, angeben, für welche Beitragstypen die Informationen verfügbar sind und mich selber darum kümmern, dass diese Daten gespeichert oder gegebenenfalls aktualisiert werden. Durchaus alles machbar, aber bei weitem nicht so einfach und geradeaus, wie bei Hugo.

Ebenso einfach ist das Hinzufügen neuer Taxonomien. In der config.toml genügt die Angabe

[taxonomies]
category = "category"
artist = "artist"
genre = "genre"
label = "label"

und schon habe ich neu Taxonomien, die ich Front-Matter der einzelnen Beiträgen benutzen kann:

category = "review"
artist = "The Doors"
genre = "Psychedelic Rock"
label = "Elektra"

In Wordpress müsste ich die Custom-Taxonomies ebenfalls erst mal in der functions.php definieren und den Beitragstypen zuordnen.

Eigene Beitragstypen sind in Hugo auch schnell erstellt. Schlicht die Einordnung unter /content sortiert die Beiträge in Sektionen, ohne dass ich einen Custom-Post-Typ in einer php-Datei definieren müsste. Zur Darstellung kann ich dann optional ein eigenes Template erstellen oder Hugo greift auf das layouts/_default/single.php-Template zurück.

Mit diesen Möglichkeiten kann ich schnell, einfach und extrem flexibel die Webseite den eigenen Anforderungen anpassen und erweitern. Da alle Inhalte als Plain-Text vorliegen, kann ich über CLI-Tools wie find, grep, sed, etc. schnell alle Dateien in einem Rutsch bearbeiten - und natürlich helfen die RegEx-Suche/Ersetz-Funktion von Texteditoren wie Atom.io gleichermaßen.

Minimalismus

Hugo ist einfach und geradeaus. Und das erlaubt mir auch das Erstellen von einfachen und auf das nötigste reduzierten Webseiten. Fängt am Webserver an, der auf PHP und Datenbanken oder gar ein server-seitiges CMS verzichten kann. Auch der automatisch generierte Overhead aus der Mediathek wird ausgespart, keine automatisch erstellen Bildgrößen, sondern nur diese, die ich selber angelegt habe, weil ich sie auch wirklich brauche. In der Datenbank spare ich mir Beitrags-Revisionen, weil Git die Versionsverwaltung an anderer Stelle übernimmt.
Und auch die generierten HTML-Seiten sind auf das nötigste runtergekocht. Keine ungewollten Scripte, die mir ein Plugin in den Wordpress-Header schreibt, nur die Style-Sheets, die ich wirklich haben will. Dabei hätte ich die Freiheit, dass ich pro Seite, Sektion oder Kategorie unkompliziert weitere CSS-Dateien hinzufügen könnte.

Als Ergebnis sind die zu übertragenden Datenmengen kleiner, die Rechenlast auf dem Server geringer und somit die Auslieferung an den Betrachter schneller. Das ist gut für die User Experience und das Page-Ranking bei Google (;

Technische Spielerei

Ja, wo die vorigen Aspekte wirklich einen praktischen Nutzen haben, macht es auch einfach Spaß, dass man mit Hugo wieder etwas zum spielen hat. Das Einarbeiten in ein neues Templating-System, die neue Informations-Architektur, die Möglichkeit, die Daten in eigener Verantwortung zu verwalten und das automatisieren von Arbeitsabläufen. Wer hat schon Lust zig generierte Seiten manuell per FTP auf den Server zu laden? Dann doch lieber einen Git Post-Commit-Hook einrichten, der das automatische Deployment für einen übernimmt.

Und da die Versionskontrolle verteilt über Git erfolgt, muss ich mir auch keine Gedanken mehr über das automatisierte Backup der Webseite machen.

Flexibilität - Teil 2

Will ich einfach mal die Struktur der Seite umstellen, erlaubt mir Hugo das schnell und einfach. An einem anderen Beispiel, meinem kleinen Web-Menschen Portfolio: Zuvor hatte ich Beiträge einfach als Posts reingehauen. Eine klare Untergliederung in Portfolio-Einträge und Beiträge war mit Hugo kein Problem. Einfach die Einträge, die als Auflistung meines Schaffens benötigt werden in das entsprechende Verzeichnis verschoben, einen Link angepasst, dass er nicht mehr auf /posts, sondern auf /portfolio zeigt und gut ist. Im eigenen Template für die neuen Portfolio-Einträge kann ich schnell über eine eigene Taxonomie auf entsprechende Beiträge unter /posts automatisiert verlinken lassen. Und schon habe ich eine Unterteilung von Portfolio und Beiträgen, die ich in Wordpress nicht so schnell und flexibel hinbekommen hätte.

tl;dr

Etwas neues zum Lernen, einfache und flexible Lösungsansätze, umgehende Erfolge. All das sind Aspekte, die die Webseiten-Erstellung mit Hugo so erfrischend und spaßig machen. Ich bin sehr zufrieden und kann den Static Site Generator nur jedem empfehlen, der ein gewisses Grundverständnis für IT hat.