Lange habe ich hier nichts mehr geschrieben. Irgendwie hat es sich nie ergeben, war zu umständlich, zu faul oder nicht mal eben - zwischendurch - machbar.

Ebenso war mir das alte Monster WordPress schon lange ein Dorn im Auge. Es ist träge, funktional überladen und Aufwändig aktuell zu halten. Zudem lassen immer mal wieder Plugin Inkompatibilitäten freundlich grüßen.

Der Workflow zum Schreiben im Webinterface von WordPress ist umständlich und bringt an der einen oder anderen Stelle schon mal Formatierungsspaß mit sich. Seit einigen Jahren schreibe ich zudem Texte komplett in Markdown1. Hier tummeln sich zwar einige WordPress-Plugins, allerdings merkt man immer wieder, dass WordPress dafür nicht ausgelegt ist.

Auch am alten Design hat der Zahn der Zeit genagt. Es war damals okay, heute scheint eine dicke Staubschicht darauf zu liegen. Grund genug für einen ausgiebigen Herbstputz.

Anforderungen an ein Blogsystem

Jeder State – sowohl der Texte als auch vom gesamten Blog – soll versioniert sein. Änderungen sollen nachvollziehbar und im Notfall komplett oder auch nur teilweise wiederherstellbar sein.

Die Texte sollen in einem einfachen Workflow direkt in Markdown geschrieben werden. Zum Veröffentlichen sollen einige einfach Klicks bzw. Tastatureingaben ausreichen.

Ein frisches und zeitgemäßes Theme, vorzugsweise OpenSource, soll her. Es soll leicht pflegbar und ebenso sollen Änderungen bzw. Anpassungen möglichst unproblematisch durchführbar sein.

Dynamische Seiten, wie sie Scriptsprachen wie PHP etc. erzeugen, sind träge und für ein Blog im Regelfall gar nicht mehr notwendig. Für die Kommentarfunktion im Blog nutze ich seit Jahren eh Disqus, eine Userverwaltung mit Gruppen und anderen Schnick-Schnack benötige ich nicht.

Im Gegensatz dazu sollen schnell ladende, statische HTML Seiten generiert und ausgeliefert werden. Als Bonus wäre zukünftig auch keine Datenbank mehr notwendig, aus der die Seiten bei jedem Seitenaufruf generiert wurden.

Neues Blogsystem

Da ich seit einiger Zeit – für diverse Projekte – einen eigenen GitLab Server betreibe, war die Frage des Versionierungssystems schnell geklärt. Alternativ kann man einen GitLab, GitHub Account dazu nutzen oder git2 auch einfach ohne fremden Online-Service nutzen.

Dienste wie GitLab Pages und GitHub Pages und deren Integration in ihre Git Repositories haben mich ein inspiriert und nach ein wenig googeln suchen, bin ich auf Jekyll gestoßen.

Jekyll ist in Ruby geschrieben und generiert aus reinen Text, statische HTML-Seiten. Dazu nutzt es ein ausgeklügeltes Template System, unterstützt diverse moderne Tools zum Erzeugen von performanten HTML, CSS und JavaScript. Der Aufbau der Jekyll Templates ist einfach und kann beliebig um eigene Features abzubilden erweitert werden.

Lokal installiert es sich mit wenigen Kommandos und bringt eine Fileüberwachung inclusive kleinen Webserver mit. Dies ist beim Schreiben sehr hilfreich, da bei jedem Speichern des Beitrages im Hintergrund gleich die fertige Seite generiert wird. Ein Blick auf dem Webbrowser und man kann das fertige Ergebnis betrachten.

Als neues Design kommt das Theme beautiful-jekyll von Dean Attali zum Einsatz. Es ist klar, frisch, modern und bietet alle Möglichkeiten um es nach eigenen Wünschen zu erweitern.

Neuer Workflow

Meine Beiträge schreibe ich in über Sublime Text – wie gewünscht in Markdown. Im selben Markdown-Dokument werden auch alle nötigen Metadaten3 zu einem Beitrag geschrieben. Wenn ein Beitrag fertig ist, muss dieser nur noch über git eingecheckt werden. Dieses geht – dank GitSavvy, einem sehr genialen git Plugin für Sublime Text – in wenigen Sekunden.

Die über git eingecheckten Markdown-Seiten (Blogbeiträge oder andere Änderungen) werden über meinen Gitlab CI Service mit Hilfe von Jekyll generiert. Bei einem erfolgreichen Build wird mein GitLab CE Pages informiert, der sich das Ganze abholt und auf dem Webserver ablegt. Größere Dateien wie Bilder lege ich parallel über einen anderen, automatisierten Workflow, per SCP4 auf dem Werbserver ab.

Einfach, schnell, unkompliziert in der Handhabung und für den geneigten Leser laden die Seiten zudem um einiges schneller.


  1. Markdown ist eine einfache Auszeichnungssprache zum formatieren von Texten. Der Vorteil von Markdown liegt in der einfachen Lesbarkeit in der Rohform. 

  2. Git ist eine Versionsverwaltung von Dateien und kommt hauptsächlich in der Softwareentwicklung zum Einsatz. Es ist äußerst flexibel und benötigt im einfachsten Fall keine spezielle Serversoftware als Backend. 

  3. Metadaten zum Blogpost sind zum Beispiel Titel, Untertitel, Datum, Tags, Headerbild oder andere Einstellmöglichkeiten. 

  4. SCP - Secure Copy ist ein Protokoll zur verschlüsselten Übertragung von Daten zwischen Rechnern.