Zum Hauptinhalt springen

Switch to Hugo

·4 min

hugo static site generator #

what is it? #

Durch einen Static Site Generator (SSG) werden zumeist aus Markdown-Quellen und einem Theme-System statische Seiten (HTML, CSS und JS) erzeugt, die dann direkt aus dem Webverzeichnis ausgeliefert werden.
Dadurch fällt sowohl die Datenbankschicht als auch die Ausführungsschicht für den Webserver komplett weg. Das hat dann nicht nur enorme Performance-Vorteile, sondern minimiert drastisch die Angriffsfläche für Hacker. Natürlich gestaltet sich das Ändern bzw. Erstellen der Inhalte etwas umständlicher (Adieu WYSIWYG), aber bei einer Site, die sonst über keine Dynamik verfügt ist das durchaus eine nennenswerte Alternative.

why bother with it? #

Aufgrund des nahenden End of life von Drupal 7, der zwar schon zweimal um ein Jahr verlängert wurde (siehe: https://www.drupal.org/psa-2022-02-23), habe ich mich nach Alternativen für meine private Site umgeschaut.

what are the alternatives? #

Neben der Alternative, einfach bei Drupal zu bleiben, gibt es bei den SSGs auch vieler Auswahlmöglichkeiten:

Migration auf Drupal 8/9/10
Ist mir zu aufwändig, da schon Drupal 7 viel zu mächtig für meine kleine Site ist 😉 Ist außerdem noch um einiges höher von der Anforderungen (und ich mag composer nicht!)
Umstieg auf Backdrop
Erschien mir lange als die beste Lösung, da ich mich da wohl schnell heimisch fühlen würde. Allerdings auch hier zu hoher Migrations- und Wartungs-Aufwand
Statische Version der Drupal Site
Lies sich am schnellsten realisieren (siehe https://ludmann.de), faktisch kein Aufwand, ist aber doch nur eine Krücke.

which ssg? #

Also hab ich mir mal die gängigen Static Site Generators angeschaut, mit durchwachsenem Erfolg.
Die Generatoren funktionieren in einigen Punkten ziemlich ähnlich:

  • es gibt ein cli-Kommando, mit dem man die Site verwalten, generieren und testen kann
  • es gibt eine Entwicklungs-Modus, in dem die Seiten bei Änderungen automatisch neu erzeugt und über einen eingebauten web-server lokal ausgeliefert werden
  • der Inhalt wird als Markdown oder HTML erstellt
  • die Systeme unterstützen eine Blog-Funktionalität, die neue Artikel automatisch in die Menüstruktur einbindet
  • die Site wird als Verzeichnisstruktur in einem Webverzeichnis erzeugt und besteht nur aus statischen HTML, CSS und JS Dateien, die der Webserver dann ohne weiteres ausliefern kann
  • man kann mit einem Befehl einen Basic Blog erzeugen und darauf aufbauen
  • es gibt fertige Themes für das System, die sich einfach importieren und verwenden lassen

Auch waren die meisten davon in den Repos meiner Linux-Distribution enthalten, was für eine nennenswerte Verbreitung spricht.
Allerdings sind die Versionen in den Repos doch meistens ziemlich veraltet, weshalb es ratsam erscheint, die Tools immer von der jeweiligen Homepage zu laden und zu installieren.

jekyll #

Website: https://jekyllrb.com/ Anscheinend zwar sehr beliebt und kommt immerhin bei GitHub Pages zum Einsatz, kommt aber nur in Frage, wenn man Ruby nicht hasst…
Und ich hasse Ruby.

gatsby #

Website: https://www.gatsbyjs.com/
Ist sehr modern und scheinbar viel im Einsatz, aber npm und javascript auf dem Server macht mir anderenorts schon genügend Probleme.
Und das Ding installiert schon beim Demo-Blog ziemliche viele JS-Packages… Ausserdem ist nur eine abgespeckte Version für den privaten Bereich kostenlos. Wenn man mehr will muss man zahlen.

hexo #

Website: https://hexo.io/
Basiert ebenfalls auf JS und npm. Viele schöne Themes. Auf Blogging spezialisiert. Da könnte ich mich evt. nochmal mit beschäftigen, wenn die Alternativen ausgehen. Ist von JS-basierten, derjenige, der mir auf den ersten Blick am Besten gefallen hat.

lektor #

Website: https://www.getlektor.com/
Python-basierter SSG, der wohl hauptsächlich in Österreich entwickelt wird.
Daher sollten auch die manchmal speziellen Bedürfnisse der deutschen Sprache kein Problem darstellen. Die Userbase ist hier vermutlich nicht sonderlich groß, das Angebot an Themes überschaubar.
Eine lokale Test-Site lies sich schnell aufsetzen und mit einem Theme versehen. Als ich in die Struktur eingreifen wollte, wurde es aber kompliziert und fehlerhaft.

pelican #

Website: https://getpelican.com/ Basiert ebenfalls auf python, macht einen guten ersten Eindruck.
Es gibt auch schöne Themes und eine Test-Site war auch hier im Nu erstellt.
Was mich allerdings etwas erschlagen hat, ist die Funktionalität und auch hier braucht es nicht viel, um den Generator mit einer Fehlermeldung abzuwürgen.
Da bräuchte es wohl mehr Zeit, um sich zurecht zu finden. Man hat sogar die Wahl zwischen ReText und Markdown für die Erstellung der Seiten.

hugo #

Website: https://hugo.io/ Der nach eigenen Angaben schnellste SSG, wurde in GO programmiert.
Das bringt ein paar Vorteile mit sich:

  • man kann sich einfach das fertige Binary installieren, das gibts direkt von GitHub, sogar als deb(ian) Paket.
  • keine weiteren Abhängigkeiten
  • läuft angenehm schnell, bringt verständliche Fehlermeldungen.
  • zeigt im Entwicklungsmodus Änderungen sofort im Browser an

Themes gibt es auch viele, ich hatte mich zunächst für Blist entschieden.
Mittlerweile bin ich aber auf Congo umgestiegen.
Hierzu habe ich einen extra Blogpost verfasst.