Vor einiger Zeit waren static site generators der letzte Schrei. Tools wie Octopress, Jekyll (beide in Ruby), Hyde (Python) oder Hakyll (Haskell) - um nur einige zu nennen - kompilieren lokal statische HTML-Seiten. Die Quelldateien dürfen meistens als LESS, SASS, Markdown o.ä. vorliegen. Die Generatoren bringen oft auch Tools fürs Deployment mit.
Meine Anforderung
Anfang des Jahres hatte ich hektisch eine neue Subdomain auf meinem Server angelegt, um dort meine (mit reveal.js erstellten) Slides zu Talks bei User Groups oder Barcamps online zu stellen. Eine Übersichtsseite mit einer Liste dieser Talks und Slides fehlte aber bisher. Im Prinzip hätte dafür eine simple HTML-Seite genügt, aber weil ich neugierig war, wollte ich einen static site generator ausprobieren.
Ursprünglich spielte ich mit dem Gedanken Octopress zu verwenden, weil es eine der ausgefeiltesten Lösungen darstellt; auch auf ein Experiment mit Hakyll hätte ich mich eingelassen. Aber andererseits musste es doch auch einen Generator geben, der in PHP geschrieben ist. Eine kurze Suche später hatte ich zwei Tools auf der Liste: PieCrust und Phrozn. Ersteres bietet auf den ersten Blick mehr Features und eine ausführliche Dokumentation, Phrozn kommt etwas simpler daher - vielleicht habe ich mich genau deshalb dafür entschieden. Ich wollte keine langen Einarbeitungszeiten, sondern schnell zu meinem Ziel gelangen.
"Phrozn - Static Site Generator in PHP" vollständig lesen
Wie in den Jahren zuvor habe ich die FrOSCon auch diesmal nur an einem Tag, dem Samstag, besucht. Dennoch hat sich die Anreise wieder ausdrücklich gelohnt. Die Konferenz hat nicht nur mit interessanten Speakern und einem exzellenten PHP-Track aufgewartet, sondern hat es auch einfach gemacht, sich mit anderen Open Source-Enthusiasten und -Projekten auszutauschen. Der Rahmen stimmt einfach.
Im folgenden möchte ich ganz kurz über die Sessions berichten, die ich besucht habe. Ich war fast durchgängig im PHP-Raum zu Gast, habe aber auch einen Blick über den Tellerrand gewagt und zwischen den Talks ausreichend Zeit gefunden, um mich bei Kaffee oder Mate mit netten Leuten auszutauschen.
"Mein FrOSCon Samstag 2013" vollständig lesen
Gestern Abend habe ich im Rahmen des Treffens der PHP User Group Rheinhessen einige Tools, Helferlein und ausgewachsene Frameworks vorgestellt, die Entwickler beim Schreiben von Tests unterstützen können. In den vergangenen Monaten sind nämlich einige in meiner Bookmark-Liste gelandet. Viele dieser Tools sind opinionated, also eigensinnig, was durchaus kontroverse Meinungen in unserer Runde herausforderte.
Wir tauschten uns auch über Best Practices im Bereich Testing aus: Wie wichtig ist eine hohe Code Coverage? Sollten Test Cases im selben Namespace liegen wie die zu testenden Objekte? Wie gehen wir mit Testdaten in Datenbanken um? Sollte unter verschiedenen PHP-Versionen getestet werden (z.B. bei TravisCI)? Ich glaube, jeder konnte etwas vom gestrigen Abend für sich mit nach Hause bzw. mit ins Projekt nehmen.
Weil ich meine Slides relativ kurzfristig zusammengestellt habe, möchte ich sie hier (noch) nicht veröffentlichen. Die von mir gesammelten Tools will ich aber niemandem vorenthalten:
"Tester's Little Helpers" vollständig lesen
Ich bin seit einiger Zeit der Console-Komponente von Symfony2 verfallen und habe bereits in mehreren Projekten sehr schnell Kommandos in PHP programmieren können, die auf der Shell ausgeführt werden können. Wir nutzen diese zur Administration von Applikationen, zum Generieren von Inhalten oder für regelmäßige Aufgaben von Cron-Jobs.
Im Bereich der Open Source Software sind mittlerweile auch diverse CLI-Tools entstanden, etwa das von Christian Münch initiierte n98-magerun für Magento, WP-CLI für Wordpress oder Drush für Drupal. Warum also nicht auch ein solches Tool für die alternative Blogsoftware Serendipity schreiben?
Gesagt, getan.
Metatron ist jetzt veröffentlicht, befindet sich aber noch im Alpha-Status und sollte keinesfalls produktiv eingesetzt werden. Der Funktionsumfang hält sich noch in Grenzen, aber wir planen, kontinuierlich neue Kommandos hinzuzufügen. Welche das sein werden, können die Serendipity-Nutzer mitentscheiden. Am besten äußert ihr Feature-Wünsche im Serendipity-Forum oder als Issue auf GitHub (mit dem Tag "enhancement").
"Metatron - Ein CLI-Tool für Serendipity" vollständig lesen