Webseiten erstellen mit DocBook

Die Website-DTD

Um mit DocBook auh Webseiten zu erstellen, hat Norman Walsh eine Erweiterung von Simplified DocBook erstellt. Diese fügt den normalen DocBook-Elementen einige HTML-spezifische Elemente hinzu sowie ein XML-Format, um die Navigationsstruktur der Seite zu kontrollieren.

Die DTD und die XSL-Stylesheets, die man braucht, um Webseiten zu schreiben und in HTML umzuwandeln gibt es beim DocBook Open Repository. Die Stylesheets importieren die normalen DocBook-XSL-Stylesheets, daher bietet es sich an, die Website-Stylesheets zu entpacken und die Datei xsl/website-common.xsl so zu bearbeiten, dass das erste xsl:import-Element nicht auf die Version im Netz, sondern auf die lokale Version verweist, damit nicht bei jedem Umwandeln die Stylesheets komplett aus dem WWW heruntergeladen werden müssen.

Es gibt zwei Möglichkeiten, HTML zu erstellen. Die erste nutzt GNU Make, welches nicht auf allen Systemen verfügbar ist, weshalb ich hier nicht darauf eingehen werde. Möglichkeit Zwei erfordert es, Erweiterungen für den XSLT-Prozessor zu installieren. Die Erweiterungen liegen im Verzeichnis extensions und das Vorgehen ist analog zur Installation der Erweiterungen für die XSL-Stylesheets. Siehe Beispiel Installation der Docbook-Extensions für Saxon.

Definition der Navigationsstruktur

Im ersten Schritt wird die Navigationsstruktur der Website definiert. Dazu wird eine separate XML-Datei angelegt. Diese Layout-Datei muss den Anforderungen den in layout.dtd angegebenen Regeln Genüge tun. Das Wurzel-Element ist layout, welches als style und script mit den Attributen src und type bzw. language analog zur Funktion in HTML enthalten kann, um global JavaScript oder CSS einzubinden. Weiterhin kann layout Informationen zum copyright enthalten. Zwingend erforderlich ist mindestens ein toc, also Table of Contents.

Das Element toc beschreibt eine Seite auf der höchsten Gliederunsebene. Mit dem Attribut page wird auf die XML-Datei verwiesen, in der die Inhalte dieser Seite stehen. Im Normalfall wird aus der XML-Datei eine bis auf die Dateiendung gleichlautende HTML-Datei erzeugt, aber wenn man eine andere HTML-Datei erzeugen möchte, so kann man die Attribute filename und dir verwenden und gewünschten Dateinamen und Verzeichnis anzugeben.

In toc wiederum können beliebig tief geschachtelt tocentry-Elemente enthalten sein. Diese beziehen sich auf ein Dokument in tiefer geordneter Gliederungsebene und verwendet im Wesentlichen ebenfalls die Attribute page, filename und dir, wenn es sich um lokale Dateien handelt oder href für extene Verweise. Zur weiteren Beschreibung kann tocentry Elemente für den Titel (title) oder eine Zusammenfassung (summary) enthalten.

Beispiel 4.2. Ein Website-Layout

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE layout SYSTEM "layout.dtd">
<layout>
<toc page="website.xml" filename="index.html">
<tocentry page="build.xml" filename="build.html"/>
<tocentry page="links.xml" filename="links.html"/>
</toc>
</layout>