Der Homepage "unter die Haube geschaut"...

Hinweis: Diese Seite wird im Augenblick nicht mehr aktualisiert, bleibt aber zu Archivzwecken bestehen. Informationen zu meinen aktuellen Arbeiten enthält meine Seite bei der Uni Bonn.

Note: I do not update these pages currently but will keep them as an archive. If you're interested in my current work please visit my website at the University of Bonn.

Der Weg, wie ich diese Homepage erstellt habe, ist recht unkonventionell: Ich habe keinerlei proprietäre Software wie Dreamweaver, Frontpage o.ä. eingesetzt. Außerdem ist der verwendete Webspace "primitiv", d.h. es steht dort keinerlei Datenbank oder Skriptsprache zur Verfügung.

XML für die Inhalte

Der gesamte "Inhalt" der Webseite liegt in XML-Dateien, und zwar jeweils eine pro resultierender HTML-Seite. In diesen Dateien steht tatsächlich nur das, was sich von Seite zu Seite unterscheidet: Inhalt, Überschrift, welche Navigations-Verweise sind aktiv und welche Bilder werden angezeigt. Dazu habe ich eine eigene DTD definiert, die beschreibt, welche Elemente die XML-Dateien haben dürfen: Interne/externe Verweise, Absätze, Überschriften, Listen usw. Außerdem ist dort beschrieben, in welchen Reihenfolgen und Zusammenhängen die Elemente erlaubt werden - die Struktur.

XSLT und CSS für's Layout

Darüber hinaus muß nun noch irgendwo beschrieben werden, wie die Inhalte denn später dargestellt werden sollen. Dies geschieht in einem XSLT-Stylesheet, das grob gesagt beschreibt, wie man aus den Elementen der XML-Dateien eine HTML-Datei zusammenbauen kann. Hier ist also zentral das eigentlich Layout der Seite enthalten. Der Feinschliff geschieht weiter in einem CSS-Stylesheet, auf das jede später entstehende HTML-Datei verweist. Hier werden nochmal Angaben zu den Farben, Schriftgrössen und Abständen zentral abgelegt.

Saxon generiert HTML

Gut und schön, nun haben wir also viele XML-Dateien erstellt, ein XSLT- und CSS-Sheet sowie die (recht einfache) DTD. Wie kommt man jetzt zu den Inhalten im Web? Das erledigt einer der kostenlosen erhältlichen XSLT-Parser, in meinem Fall ist das der Java-Parser Saxon. Er bekommt als Eingabe je eine XML Datei mit der zugehörigen DTD und XSLT-Datei und liefert als Ergebnis eine fertige HTML-Datei.

Make verwaltet alles

Nun wäre es noch immer sehr aufwendig, jede einzelne HTML-Datei durch einen Saxon-Aufruf zu erstellen. Sowas kann eine Makefile übernehmen, in der steht, welche Ziele aus welchen Quellen wie zusammengebaut werden. Ruft man sie auf, erstellt sie (sofern man einmal hineingeschrieben hat, wie!) automatisch alle zu aktualisierenden Ziele neu. Dazu gehören - neben den zu erstellenden HTML-Dateien - auch neue Bilder und ähnliches. Nebenbei protokolliert die Makefile alle Aktualisierungen in ein ftp-Skript, welches dann aufgerufen werden kann um die geänderten Dateien auf die Webseite hochzuladen.

BINS liefert die Bilderalben

Ungelöst ist noch das Problem der Bilderalben - es würde keinen Sinn machen, für jedes Bild eine xml-Datei zu schreiben und diese einzeln zu numerieren und zu verlinken. Es gibt freie Software, die aus einem Verzeichnis mit (kommentierten) Bildern HTML-Alben baut. BINS nimmt einfache HTML-Dateien mit Platzhalterbegriffen als Vorlagen , um das zu erledigen. Deshalb gibt es für jedes Bilderbuch eine XML-Datei, die von Saxon zu einer BINS-HTML-Vorlage in meinem Homepage-Layout umgewandelt wird. Die Makefile übernimmt den weiteren Vorgang, indem sie anschliessend BINS mit der frischen HTML-Vorlage zusammen mit dem Bilderverzeichnis aufruft und die HTML-Alben an die richtige Stelle kopiert. Auch hier werden die Dateien mit ins ftp-Skript geschrieben.

Das Ergebnis: Einfache Pflege der Seite

Möchte ich einen neue Seite hinzufügen, schreibe ich nur eine XML-Datei neu, füge in einigen anderen XML-Dateien noch ein paar Verweise ein und rufe die Makefile auf - fertig. Für ein Bilderalbum kopiere ich die gewünschten Bilder in ein Verzeichnis, erstelle eine XML-Datei mit gleichem Namen und den gewünschten Angaben, wo das Album in der Webseite auftauchen soll, und die Makefile erledigt den Rest. Wenn ich das gesamte Layout ändern möchte, ändere ich nur das XSLT- und ggf. das CSS-Sheet - make - und heraus kommt das gesamte neue Paket an geänderten HTML-Seiten.

aktualisiert am 18.01.2008 um 21:02 Uhr
© Timo Dickscheid
Stichwortsuche
  • Bei der Suche nach einem Stichwort auf dickscheid.net hilft google.
  • Google
Links zum Thema
dickscheid.net

vim - der EditorBenutzt GNU!

Valid XHTML 1.0!
Valid CSS!