Home - ...and more - How was this website built?

After the Storm - Internet Technologies

Internet Technologies
For Managers
For Authors
For Developers
For the Confused
Technology Index
Alphabetically
By Type
By Application layer
In Development
Dossiers
Publications
Books
Articles
Software
Profile
Christian Treber
Projects
chronologically
by Subject
by Customers
References
Contact
...and more
Disclaimer
How was this website built?

Wie wurde diese Website gebaut?

Diese Website ist der statische Abzug einer AC.wiki-Anwendung.

Aha.

Was ist Wiki?

Wiki ist das hawai'ianische Wort für "schnell"[1]. Mit Wiki können Websites einfach, schnell und in Zusammenarbeit von mehreren Personen erstellt werden.

Wiki erreicht das durch

  • Simple Syntax anstatt komplexes und langatmiges HTML
  • Editieren von Seiten über das Web

Wie das? Die Seiten sind als einfacher ASCII-Text abgelegt, der mit einigen wenigen praktischen Konstrukten gespickt ist. "!!!" leitet eine Überschrift höchster Ordnung ein, "*" einen Aufzählungspunkt. Ein Wort in eckigen Klammern ist ein Link. So referenziert [Hilfe] die Wiki-Seite "Hilfe", und [Hilfe|HelpText] die Seite "HelpText". Im zweiten Fall ist der angezeigte Name des Links "Hilfe", wobei die Seite "HelpText" referenziert wird.

Existiert die referenzierte Seite nicht, wird neben dem Link ein Fragezeichen dargestellt (wie hier?). Ein Klick auf das Fragezeichen ruft das Edit-Formular auf, in das Text eingegeben bzw. in dem Text modifiziert werden kann. "Save" anklicken - voila, die Seite ist erstellt und im System, sogar mit Versionsverwaltung (z.B. mit CVS), falls konfiguriert. Das Ganze läßt sich über ein Passwort absichern, obwohl viele Wikis im Web ohne jegliche Absicherung auskommen. Erstaunlich, aber wahr.

Das Wiki-System wurde mindestens ein Dutzend mal auf verschiedenen Systemen in unterschiedlichen Programmiersprachen implementiert - hier kommt AC.Wiki zum Einsatz.

Was ist AC.wiki?

AC.wiki (geschrieben vom Autor dieser Website, Christian Treber) ist ein Zusatzmodul für und eine Adaption von JSPWiki, die folgende Funktionalität hinzufügt:

  • Mehrsprachigkeit
  • Hierarchische Organisation des Inhalts (XML-basiert)

Mehrsprachigkeit. Bei der dynamischen Version dieser Website enthält das Inhaltsverzeichnis auf der linken Seite Flaggen-Icons, über die sich die bevorzugte Sprache auswählen läßt. Ist eine Seite nicht im gewählten Idiom verfügbar, wird eine alternative Version angezeigt.

Der Clou dabei ist, dass (in der dynamischen Version) das URL immer gleich ist - AC.wiki wählt aus mehreren Sprachversionen die tatsächlich zurückgelieferte Seite anhand der gewählten Sprache dynamisch aus. Sind die Wiki-Seiten mit den Namen "foo_de" und "foo_en" vorhanden und hat der Anwender die englische Version gewählt, liefert ein Zugriff auf die Seite "foo" (die unter diesem Namen gar nicht existiert) die reale Seite "foo_en" zurück.

Wird die Sprache im Seitennamen explizit angegeben, wird auf jeden Fall unabhängig von der gewählten Sprache genau diese Version zurückgeliefert. "foo_fr" referenziert zum Beispiel - ohne wenn und aber - die französische Version.

Hierarchische Organisation des Inhalts. Eine XML-Datei beschreibt die Struktur der Website, und definiert die Namen der einzelnen Punkte in mehreren Sprachen. AC.wiki Plugins und JSP-Tags erzeugen daraus den Seitentitel, das Inhaltsverzeichnis auf der linken Seite, und den "Breadcrumb Trail" (Anzeige des Standorts in der Website) ganz oben.

Der Clou dabei: Die Seiten an sich haben keine Ordnung. Die Hierarchie wird ausschließlich über die XML-Datei definiert. Änderungen an der Struktur der Website erfolgen zentral an einer Stelle - alles andere, Inhaltsverzeichnis, Breadcrumb Trail etc., wird von Plugins automatisch, dynamisch und 100% konsistent erzeugt.

Es ist sogar möglich, mehr als eine Struktur-Datei zu verwenden: Auf diese Weise kann die Website aus mehreren Sichten, die völlig unterschiedlich strukturiert sein können, dargestellt werden.

Automatische Erzeugung von Links. Kommen in der Seite Wörter vor, für die es eine Definitions-Seite gibt (z.B. für technische Begriffe), wird automatisch ein Link auf die betreffende Seite eingefügt (z.B. sind sämtliche Links auf XML auf dieser Seite automatisch erzeugt).

Ist AC.wiki kommerziell verfügbar? Noch nicht... Schreiben sie uns bei Interesse.

Was ist JSPWiki?

JSPWiki ist eine von Janne Jalkanen geschriebene Java-Implementation von Wiki, die auf JSP basiert. Die Kürze dieser Auskunft täuscht: JSPWiki ist eine erstklassige Implementation von Wiki - der Code ist so unnatürlich klar und sauber geschrieben, dass die Erweiterung durch AC.wiki eine Freude war.

JSPWiki benutzt Java Server Pages (JSP), um HTML zu erzeugen. Das Wiki-System generiert aus dem rohen ASCII-Text mit den Wiki-Markierungen HTML-Code und fügt diesen in die JSP-Seiten ein. Wiki-Tags und -Plugins sorgen dafür, dass die JSP-Seiten übersichtlich bleiben und sehr flexibel gestaltet und erweitert werden können.

Durch Änderung der JSP-Seiten und der Style Sheets läßt sich das Erscheinungsbild einfach und nach belieben ändern, wovon diese Website reichlich Gebrauch macht.

Was bedeutet "statisch"?

Wiki ist ein dynamisches System - eine Anfrage an den Server wird vom Wiki-Programm entgegengenommen. Daraufhin wird die Ausgabeseite "live" produziert. Dies setzt einen Webserver voraus, auf dem Wiki aktiv läuft. Mein Provider unterstützt nur statische Seiten (also normale HTML-Dateien), so dass ich meine dynamische Wiki-Website in statische HTML-Dateien umwandeln muss.

Was bedeutet "statisch machen"?

Mit dem UNIX-Tool wget wird ein Abzug der kompletten Website erstellt. Dabei werden automatisch auch alle anderen Dateien wie Icons, Bilders, Style Sheets etc. mit heruntergeladen. wget ändert dabei die Links so, dass der Abzug in sich konsistent ist und mit einem Browser angezeigt werden kann.

Anschließend werden die heruntergeladenen HTML-Dateien mit find und mmv umbenannt, und die Links mit sed modifiziert. Das hat seinen Grund darin, dass Links und Dateien wie "Wiki.jsp?page=foo.html", wie sie wget generiert, von Browsern nicht ohne weiteres verdaut werden, und außerdem nicht schön aussehen. Nach der Modifikation ist der Seitenname schlicht "foo.html".

Der ganze Prozeß läuft zwei mal durch, einmal für die deutsche und einmal für die englische Version. Dann werden sämtliche Dateien auf den Webserver geladen - fertig.


[#1] Es gibt in Hawai'i zahlreiche Firmen mit "Wiki" oder "Wikiwiki" ("sehr schnell") im Namen - Wikiwiki Pizza, Wikiwiki Reinigung...


© 1998-2005 Christian Treber, ct@ctreber.com. All rights reserved. The author takes no responsability for linked external pages, the content of which by no means reflect his own opinion, convictions etc.