fboës - Der Blog

Static Site Generator als neuer Blog

Da meine alte Blog-Software nicht mehr auf meinem Server funktioniert, habe ich mal etwas neues probiert: Ich habe einen Static Site Generator aufgesetzt.

War ich vor wenigen Monaten noch voller Begeisterung über Grav, so haben die PHP-Anforderungen der neuen Version es mir leider unmöglich gemacht, die Software noch länger zu betreiben. Netterweise hat Grav aber alle Blog-Artikel als Markdown-Artikel gespeichert, die eine sehr gute Grundlage sind, um darauf seinen eigenen Static Site Generator zu bauen.

Eigentlich macht es keinen Sinn, seinen eigenen Generator zu bauen, da genug gut programmierte Generatoren kostenlos zur Verfügung stehen. Aber um ehrlich zu sein, gab es doch gute Gründe:

  • Ich wollte meine alten URLs behalten, ohne dass ich am Apache großartig Konfiguration durchführen muss.
  • Mich reizte die Idee, mal richtig in node.js einzutauchen. Unter anderem wollte ich in die Denkweise hinter Event-zentrierter Programmierung eintauchen.

Die Vorteile eines Static Site Generators lagen schon länger auf der Hand:

  • Betrieb der eigentlichen Seite ohne Datenbanken, PHP oder irgendwelche Interpreter.
  • HTML-Seite sind unschlagbar performant, wenn sie bereits fertig generiert vorliegen.
  • Es gibt keinerlei Möglichkeit, sich über HTTP nutzbare Sicherheitslücken einzuhandeln.

Mein Ansatz für einen Static Site Generator war ganz einfach:

  1. Die Artikel werden in Multi Markdown in einem einfachen Text-Editor geschrieben.
  2. Danach werden die Dateien durch einen kleinen Konverter namens „Blogophon“ geschickt. Wenn gulp aktiv ist, passiert dies automatisch beim Speichern der Markdown-Datei.
  3. Dadurch werden die Daten mittels Mustache-Templates in einen Stapel HTML-Dateien verwandelt. Unter anderem werden auch automatisch alle Übersichtsseiten neu erzeugt, sowie RSS-Feeds und Sitemaps aktualisiert.
  4. Diese Dateien werden dann einfach auf den Server kopiert, und fertig ist der Internet-Auftritt!

Und andererseits denke ich daran herum, die HTML-Dateien via Dropbox auf den Server kopieren zu lassen.