Ophelia


English version

Was ist Ophelia?

Ophelia ist ein Python-Paket, das XHTML-Seiten aus Templates zusammensetzt. Es wird auf einem Webserver eingesetzt und erstellt jede Seite in dem Moment, in dem sie angefordert wird.

Ophelia vermeidet wiederkehrenden Code.
Text und HTML-Strukturen, die allen Seiten in einem Verzeichnis gemein sind, werden in einem gemeinsam genutzten Template abgelegt. Aus welchen Templates eine Webseite besteht und wie sie zusammengefügt werden, ergibt sich direkt aus der URL. Dadurch muß nicht einmal für jede Seite erneut notiert werden, welche Templates sie benötigt.
Ophelia ist dynamisch.
Templates werden in TAL, der Template Attribute Language von Zope, geschrieben. TAL ist XHTML mit der Möglichkeit, den Inhalt von DOM-Elementen und Attributen aus Kontextvariablen zu holen. Der Kontext wird durch Python-Skripte bearbeitet. Ein Template teilt sich zwar der einfacheren Handhabung halber eine Datei mit dem zugehörigen Skript, dennoch besteht eine saubere Trennung von Python-Code und XHTML-Inhalt.
Ophelia arbeitet mit Dateien.
Alle Templates und Skripte liegen im Dateisystem des Servers. Dadurch kann man den Inhalt der Seiten einfacher als in einer relationalen oder Objektdatenbank mit den üblichen Textwerkzeugen bearbeiten und unter Versionskontrolle halten. Andererseits möchte man auf diese Weise sicher keine komplexen Anwendungen programmieren; für viel mehr als »SSI auf Drogen« ist Ophelia nicht zu empfehlen.

Ophelia wird unter anderem eingesetzt, um diese Website auszuliefern. Weitere Anwendungsbeispiele finden sich bei Powered sites.

Verwendung von Ophelia

Wie bringt man Ophelia dazu, Webseiten zu erzeugen, nachdem man es installiert und einige Templates geschrieben hat? Seit Version 0.4 ist Ophelia ausschließlich als WSGI-Anwendung implementiert, die u.a. auf folgende Weise benutzt werden kann:

Die Dokumentation von Ophelia enthält ein kleines Anwendungsbeispiel, das auf dieser Site installiert ist und erläutert wird.

Eine genauere Beschreibung findet sich in der (englischsprachigen) Dokumentation des Projekts.


07.02.2016