Zurück zu den Web-Wurzeln

tl;dr

Seit Oktober 2007 betreibe ich dieses Kleinstblog, und seit Januar 2016 habe ich keine Lust mehr für ein minimalistisches Blog ständig WordPress-Updates nachjagen und eine MySQL-Datenbank pflegen zu müssen. Deshalb habe ich es durch diese statische Website ersetzt, die offline generiert und bei Aktualisierungsbedarf hochgeladen wird.

Früher und Heute

Die wenigen bis heute entstandenen Artikel waren ein Sammelsurium zu unterschiedlichen Themen in Deutsch und/oder Englisch, die nie unter einen Hut zu bringen waren, und mein Leben fand ich noch nie so interessant für den Rest der Welt, dass ich das Internet mit Trivialitäten aus meinem Alltag anreichern wollte. Da manche der älteren Artikel auch heute noch einen gewissen Hitcount aufzuweisen haben, habe ich alle Artikel hierher portiert und die alten URLs wenn möglich und wo lohnenswert erhalten. Lediglich die Kommentare habe ich entsorgt; die waren in keinem Fall Träger aufhebenswerter Informationen.

Neue Beiträge werde ich deshalb vorzugsweise auf den Websites oder in den Foren, Kanälen und Medien erstellen, wo sie thematisch und sprachlich hingehören, und sollte ich sie für längere Zeit lesenswert finden, dann werde ich hier jeweils einen Link dorthin veröffentlichen.

Dynamik von und nach Draußen

Wegen meiner niedrigen Updatefrequenz machen mit jeder der wenigen Anfragen dynamisch generierte Webseiten keinen Sinn mehr, zumal man die meisten (wenn nicht alle) dynamischen Features auslagern kann:

  • Für Diskussionen gab es auf meinen Seiten größtenteils nur Bedarf seitens junger Damen aus aller Herren Länder, die z. B. über meine Konvertierungshilfe von Tiddly- zu DokuWikis "most excited" waren und unbedingt wollten, dass ich ihre Webseiten mit exklusiven Bildern besuche. Sollte ich also einmal wieder den Wunsch nach Kommentaren verspüren, dann wird wohl Disqus das Medium meiner Wahl werden.
  • À propos "Medium": Dieser Dienst ist der geeignete Kandidat für längere Artikel, die wirklich für ein größeres Publikum interessant sein könnten, und die Diskussionen sind auch schon enthalten.
  • Die Links aus der Blogroll kann man auch diigo, dem einst schon totgesagten Delicious, oder einem anderen vergleichbaren Service anvertrauen.
  • Will man der Umwelt unbedingt Termine mitteilen, oder mit diesen welche ausmachen, dann gibt es ja Google Kalender, Doodle und Co.
  • Soziale Medien werden gerne über die auswuchsartigen "Teilen"-Buttons eingebunden, die in den meisten Fällen leider nicht nur die Verbreitung des aktuellen Inhalts erleichtern, sondern vor allem den Besuch des Users an den Medienbetreiber petzen wollen - auch ohne Klick auf den Button, weshalb ich diese Dinger ablehne (die Buttons, nicht die Sozialen Medien).
  • Für alle weiteren hier vergessenen oder bisher ungedachten Anwendungsfälle gibt es sicher ein aufstrebendes Startup-Unternehmen, das sich darum kümmern wird - inklusive App versteht sich.

Write, Generate, Upload

Damit brauchte ich noch eine Lösung für die verbliebenen Textseiten, und die Älteren unter uns erinnern sich, dass der Dreamweaver schon zu Macromedia-Zeiten über ein Template-System verfügte, das es ermöglichte eine Site mit isomorphen Einzelseiten aus einem Vorlagensatz zu generieren. Dieser alte Hut hyped gerade wieder unter dem Terminus "Static Site Generators". Dabei handelt es sich i. A. um Automaten, die genau das aus der Kommandozeile machen, was der Dreamweaver früher auf Mausklick machte: Vorlagen mit Inhalten füllen und untereinander verlinken.

Eine gute Übersicht der beliebtesten Open Source Systeme für diesen Aufgabenbereich, und sofern sie auf Github vertreten sind, bietet die Seite StatigGen, auf der man nach der Lieblingsprogrammiersprache der eigenen Wahl filtern und nach diversen Kriterien sortieren lassen kann. Ich selbst habe mich für das Python-getriebene Pelican aus folgenden Gründen entschieden:

  • Python mag ich.
  • Die Template-Engine ist Jinja2, mit der ich im Flask-Umfeld auch schon gute Erfahrungen gemacht habe.
  • Pelican ist (seit Version 3.0) modular aufgebaut, d. h. der "Schnickschnack" hält sich so lange in Grenzen bis man ihn braucht. Dann kann man ihn in Form eines von aktuell 107 (Stand 19.02.16) Plugins nachinstallieren.
  • Es gibt 105 (Stand 19.02.16) Vorlagensätze - Themes, auf die man aufsetzen kann, wenn sie im Auslieferungszustand nicht direkt taugen.
  • Eine ausreichende (englische) Dokumentation hilft einem meistens das zu erreichen, was man will.
  • Zusätzliche Tools helfen beim Aufsetzen neuer Projekte und dem Import aus bestehenden Quellen, z. B. WordPress.

Zwei Sätze der Warnung sollten aber nicht fehlen:

  • Obwohl die Doku aussagt, dass Pelican sowohl unter dem Python-Versionszweig 2.x als auch 3.x funktioniert, hatte ich beim Import von WordPress-Seiten mit dem Tool pelican-import fehlerhafte Abbrüche aufgrund von (Überraschung!) bestimmten Unicode-Glyphen, die ich nicht isolieren konnte - vermutlich nicht druckbare Zeichen. Deshalb habe ich mich entschlossen, Pelican konsequent unter Python 2 einzusetzen.
  • Wie bei allen größeren Python-Projekten lohnt sich die Einrichtung einer virtuellen Entwicklungsumgebung vor der Installation von Pelican, weil Pelican von einigen Paketen abhängig ist, die im globalen Systemumfeld vielleicht nicht sofort, aber mit Sicherheit eines Tages zu Versionskonflikten führen werden.

Das ist kein Artikel über Pelican, aber es lohnt sich m. E. in Anwendungsfällen wie dem meinen, sich damit einmal zu beschäftigen, und meine persönlichen Erfahrungen aus den ersten Tagen bestätigen das. Die Tauglichkeit im dauerhaften Einsatz kann ich sicher erst im Laufe der nächsten Jahre beurteilen. Bis dahin:

Happy "Bloggerating"

Go Top