Von Textpattern zu Jekyll

Von Textpattern zu Jekyll

Tags:

Der Wechsel ist nun erfolgt. Von einer dynamischen Steuerung, hin zum in Blei gegossenen Text.

Lange sitzt der Gedanke schon bei mir im Kopf. Schon vor mehr als einem Jahr habe ich etwas 1 darüber geschrieben und würde immer noch Textpattern weiter als CMS weiter empfehlen.

Wer ebenfalls den Schritt wagen will, sollte sich Gedanken darüber machen, wie Jekyll funktioniert. Erste Anlaufstelle wird die Projektseite 2 von Jekyll sein. Aber auch ein Artikel aus dem Admin-Magazin 3 wird unterstützen. Im Großen und Ganzen ist Jekyll ein auf Ruby basierendes Konstrukt, was nach bestimmten Regeln die statischen Webseiten generiert. Wie evtl. schon bekannt, wird keine Datenbank oder sonstige dynamische Umgebung gebraucht.

Um dennoch eine Logik ins Spiel zu bringen, nutz Jekyll Liquid 4. Laut dem Admin-Magazin, ein aus dem Online-Shop Shopify stammendes Framework, um mit einer bestimmten Syntax, z.B. das Setzen von Blog-Artikeln zu steuern. Beispiele sind in der Doku von Jekyll zu finden. Weiter hilfreich für mich war die Shopify-Dokumentation 5, um noch im Detail weitere Möglichkeiten zu entdecken.

Technischer Unterbau für Jekyll ist, wie schon geschrieben, Ruby. Beim Mac mit Mavericks ist mittlerweile eine aktuelle Version mit dabei; Voraussetzung ist auf jeden Fall die Version 1.9.3. Allerdings setze ich für lokale Arbeiten eine benutzerspezifische Umgebung ein, da bei mir die Mac OS X Umgebung ein wenig gezickt hat. Ruby zusammen mit passender Versionskontrolle rbenv 6, um unterschiedliche Ruby-Versionen lokal zu verwalten und zu steuern, wird beim Mac am besten mit Homebrew 7 installiert.

Homebrew selbst ist weiterhin hilfreich, um notwendige Programme nachzureichen, die von den von Jekyll gelieferten Blog-Migrations-Skripten 8 benötigt werden. Ein Blick z.B. in das Textpattern- oder Wordpress-Migrationsskript hilft, um aus den Kommentartexten die zusätzlichen Programme zu identifizieren. So war es bei mir unumgänglich, eine lokale MySQL-Datenbank samt Schnittstellen (mit Homebrew) zu installieren. Ist alles fertig, hat der Import der alten Blogeinträge einen Augenschlag gedauert. Kommentare wurden bei der Textpattern-Migration nicht vom Skript berücksichtigt. Daher habe ich auf die alten, wenigen Kommentare verzichtet. Wie das bei Wordpress aussieht, kann ich leider nicht sagen.

Kommentare ist ein gutes Stichwort. Schon damals ist mir dieses Thema nicht unwichtig gewesen. Externe Dienste wie Disqus 9 kommen nicht in Frage, bzw. lassen sich ggf. nicht in das eigene Design integrieren. Dazu habe ich eine Lösung, ein Plugin 10 für Jekyll gefunden. Mit diesem Plugin selbst wird ein pragmatischer Ansatz gewählt, denn das Kommentieren von Artikeln erfolgt per Mail. Vom Plugin selbst wird ein HTML-Formular per PHP eingesetzt, das die Formularinhalte per Mail an eine Mail-Adresse weiter gibt. Auch das war für mich zu dynamisch und bin den gleichen Weg von Tomas Carnecky gegangen, wie er auf der Plugin-Seite verlinkt ist. Hier wird quasi auf das PHP-Formular verzichtet, aber die gleiche Steuerung eingesetzt. Per mailto-Link wird das lokale Mail-Programm mit einem definierten Betreff und Textkörper geöffnet. Das ist bestimmt ein ungewohnter Schritt, ich bin gespannt, wie sich das hier verhält.

Die Mail selbst wird dann von mir manuell als Kommentar in das Jekyll-Universum gebracht und veröffentlicht. Wie genau dieser Schritt automatisiert werden kann, ist mir noch nicht ganz klar. Vielleicht hilft hier der Keyboardmaestro 11 für den Mac, der Macro-ähnlich Dinge erledigen kann. Aber das macht erst Sinn, wenn eine Flut von Kommentaren eintrifft, was bis dato nicht wirklich passiert ist.

Im uberspace.de Wiki 12 selbst stehen noch Möglichkeiten, wie mit Jekyll die Veröffentlichung von Blogeinträgen automatisiert werden kann. Denn bis jetzt sehe ich drei Varianten. Im ersten Fall wird Jekyll lokal auf dem eigenen Rechner dazu gebracht die statischen Seiten zu generieren. Die Seiten selbst werden dann per (S)FTP auf den Webspace kopiert. Weiter wird Jekyll gerne mit github zusammen eingesetzt. Oder auch ein frei gegebenes Dropbox-Verzeichnis dient als Auffangbehälter für Artikel. In allen Fällen kann Jekyll als laufender Dienst eine Änderung registrieren und hierdurch automatisch angetriggert die Seiten generieren. Dies ist besonders bei der Entwicklung der Site hilfreich. Der lokale Aufruf von Jekyll mit dieser Eigenschaft lautet:"jekyll serve -w".

Weiter interessant wird es, eine Suche zu implementieren. Hierbei habe ich mich an verschiedenen Beispielseiten orientiert, die Google einsetzen. Hierbei wird bei mir die Suchanfrage zusammen zur Site schreibdichte.de an Google weiter gegeben. Somit werden die Suchergebnisse ausschließlich (soweit wie möglich) auf die eigene Domäne eingegrenzt. Feeds müssen natürlich ebenfalls mit berücksichtigt werden. Hierbei habe ich mich an die Spezifikation zu RSS 13 und Atom 14 orientiert.

Ich denke, man erkennt schon, wenn man das Obere so gelesen hat, dass viel Handarbeit notwendig wird. Abhängig davon natürlich, wie umfangreich der Auftritt ist. Wichtige Aspekte, die ein CMS im Hintergrund abwickelt und zur Verfügung stellt, sind jetzt manuell zu erledigen (Stichwort: Einbinden eines Feeds). Eine Liste der Dinge (z.B. die aktuelle Linkstruktur) und Funktionen, die auf jeden Fall berücksichtigt werden müssen, hilft ungemein. So können im Vorfeld alle Informationen herangeschafft werden, um abzuwägen, ob dies für einen selbst oder jemand Anderen Sinn macht. Und überhaupt technisch möglich ist. Ich könnte ein Buch zu Jekyll schreiben, um im Detail die ganzen Gegebenheiten zu beschreiben. Das mache ich aber erst dann, wenn hier 1000 Hier-Rufe sind ;-)

Mir hat es auf jeden Fall Spaß gemacht.