Open Source im professionellen Einsatz

Der Template-Prozessor Empy beim Eigenbau einer Wikiwiki-Software

Sparsamer Wikinger

Python-Fans finden in Empy einen wohl durchdachten Template-Prozessor für Template-basierte Webentwicklungen. Seine schlanke Syntax ermöglicht eine Wiki-Software mit nur 4 KByte Code.

In der Welt der Open-Source-Software scheinen manche Dinge einfach in der Luft zu liegen. Wie sonst ließe sich erklären, dass man nichts ahnend am Rechner sitzt, die neueste Version einer Software herunterlädt und plötzlich eine weitere Variante eines Allerweltswerkzeugs gebastelt hat - noch bevor sich die Frage "Was fange ich damit am besten an?" wirklich stellte. So geschehen mit einem Wikiwiki-Programm, das plötzlich da war, und zwar bei der Suche nach brauchbaren Anwendung für den Template-Prozessor Empy.

Aber braucht die Welt ein weiteres Wikiwiki-Programm oder einen weiteren Template-Prozessor? Sollte man nicht lieber gegen Dummheit und Hunger auf Erden kämpfen? Man ahnt schon, Wikiwikis sind einfacher zu haben, aber eins, dessen Code weniger als 4 KByte groß ist, macht nachdenklich. Es bietet zwar nur die Kernfunktionen, aber immerhin besteht dann die Chance zu verstehen, wie etwas funktioniert. Anders als bei den meisten bereits existierenden Wikis, etwa Wikipedia[1], von Dummheit und Hunger ganz zu schweigen.

Wickie kann alles

Jedenfalls ist das hier vorgestellte und nach einem freundlichen Alt-Skandinavier benannte Programm »HeyHeyWickie«[2] in einem Punkt recht bemerkenswert: Durch seine Eigenschaft, beliebigen Quellcode auszuführen, zeigt es eine ungeahnte Flexibilität. Was natürlich auch seine Problemchen hat, aber dazu später mehr.

Grundlage dieser Flexibilität ist der darunter liegende Template-Prozessor. Solche Prozessoren gibt es heute wie Sand am Meer. Gemeinsam ist ihnen, dass sie eine Textdatei als Eingabe nehmen, die darin enthaltenen speziell markierten Vorlagen (Templates) erkennen und durch einen anderen Inhalt ersetzen, bevor die neu entstandene, meist größere Datei ausgegeben wird. Diese Ersetzungen bestehen meist aus der Expansion einzelner Strings oder der Iteration über irgendwelche Daten, die im Template beschrieben werden.

Babylonische Zuständ

Die Prozessoren haben nicht nur unterschiedliche APIs, sondern definieren oft auch noch eine Art eigener Minisprache für ihre Templates; als ob nicht schon heute fast mehr künstliche als natürliche Sprachen existierten. So manche dieser Template-Prozessoren sind auch so eng verbandelt mit der eigentlichen (meist Web-)Anwendung, für die sie ursprünglich entwickelt wurden, dass sie isoliert oft gar nicht verwendbar sind.

Empy[3] hingegen bedient sich einer existierenden universellen Programmiersprache, nämlich derselben, in der es selbst implementiert ist: Python[4]. Der Prozessor entstand unabhängig von einer konkreten Anwendung und zeichnet sich durch seine Vollständigkeit und universelle Verwendbarkeit aus. Er führt beliebigen Quellcode in irgendwelchen Text- und sogar Binärdateien aus. Neben jenen Tags, die den nackten Code markieren, verfügt Empy auch über Tags, die gezielt einzelne Sprachkonstrukte wie Iterationen oder Ausnahmebehandlungen nachbilden, und geht allein mit Letzterem schon weiter als die meisten anderen Templating-Systeme.

Empy ist hervorragend dokumentiert und sehr leicht zu installieren, was es unnötig macht, Installation und Features an dieser Stelle in epischer Breite abzuhandeln. (Eine Präsentation dazu, natürlich auch mit Empy erstellt, gab es auf der European Python and Zope Conference, EPC2003, sie ist online verfügbar[5].) Stattdessen ist das eingangs erwähnte Wiki gut geeignet, Empy zu verstehen. Etwas Vorsicht ist jedoch angebracht: Das Projekt entwickelt sich allmählich weiter und nachfolgende Versionen werden auch zur Verfügung stehen, sind aber dann doch etwas umfangreicher als nur 4096 Byte.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook