TWiki - digitaler Ameisenhaufen
|
Das Konzept hinter Wikis entspricht sehr dem der OpenSource-Bewegung. Jeder darf mithelfen, es gibt keine Hierarchie und jeder sollte das beitragen, was er am besten kann. |
Umso erstaunlicher, daß das Prinzip "Wiki" sich erst langsam durchgesetzt hat, liegt die Geburtsstunde dieser Technologie doch bereits im Jahre 1995.
Was ist ein Wiki?
Für alle, die bisher noch nicht wissen, was ein Wiki ist, hier ein kleiner
Erklärungsversuch.
Ein Wiki gehört zur Gruppe der CMS (= Content Management Systeme), es ist also ein
Programm, welches einem erlaubt Web-Inhalte zu erstellen, und zu verwalten.
Der Grundgedanke des Wikis besteht darin, die Mitarbeit an der Web-Seite jedem
Benutzer so einfach wie möglich zu gestalten. Man kann direkt im Web-Browser neue
Seiten erstellen oder bestehende Seiten verändern. Je nach Art der Konfiguration
des Wikis kann dieser Eingriff passwortgeschützt geschehen, oder jedem Besucher
frei stehen.
Damit verwischt die ansonsten strenge Trennung zwischen Besucher und Web-Seiten
Betreiber. Jeder Besucher kann (und sollte) Änderungen an einer Seite vornehmen,
wenn er z.B. einen Fehler entdeckt, einen ungültigen Link findet oder weitere
Informationen der Seite hinzufügen möchte.
Bekommt man dieses Konzept zum ersten mal erklärt, stellt sich normalerweise
dann sofort die Frage, ob dies auch wirklich funktioniert.
Überraschenderweise ja!
Natürlich kann es vorkommen, daß Besucher die Offenheit des Systems
ausnutzen und versuchen das Wiki mit unpassenden Inhalten zu verschmutzen.
Wikis benutzen aber intern eine Versionkontrolle (später mehr), die eine
derart verschmutzte Seite mit minimalem Aufwand wieder auf ihren ursprünglichen,
vor dem Eingriff bestehenden Zustand zurückstellen können.
Ein Angreifer hat somit wesentlich mehr Aufwand zu tätigen, als ein Besucher, der
diese Änderungen Rückgängig macht.
Und solange sie nicht versuchen eine Seite www.w3-4re-h4Xors.de als Wiki zu betreiben, kann man sich sicher sein, daß es wesentlich mehr "gute" als "böse" Besucher auf der Seite gibt.
Daß das Prinzip wirklich funktioniert, zeigen Seiten wie www.wikipedia.org, einer Online-Enzyklopädie oder www.linuxwiki.de, welche Informationen rund um Linux sammelt.
Einsatzgebiete
Für wen eignet sich nun der Einsatz eines Wikis?
Dies ist schwer zu beantworten. Die Einsatzmöglichkeiten sind sehr
weit gefächert.
Außerdem gibt es bereits einen große Anzahl an öffentlichen Wikis zu
verschiedensten Themenbereichen, und es macht wenig Sinn, wenn mehrere
Wikis zum selben Thema existieren.
Stattdessen sollte man seine Arbeit dann besser in das bereits existierende
Wiki investieren, als weitere Konkurrenz zu schaffen, und somit den Leser
und Mitarbeiter-Stamm der Wikis künstlich zu halbieren.
Als besonders praktisch hat sich der Einsatz von Wikis in Firmen-Intranets erwiesen, wo Mitarbeiter auf unkomplizierte Weise interne Dokumentation online erstellen und verwalten können.
Oder in der Forschung, wo nach dem Weggang eines Mitarbeiters häufig
auch dessen Wissen über die Bedienung von gruppeneigenen Gerätschaften
verloren geht.
Dank Wiki können auch größere Arbeitsgruppen auf einfache Weise bereits im
Vorwege Dokumentationen erstellen.
Wiki-Software Überblick
Die Auswahl an verschiedenen Wiki-Lösungen ist mittlerweile unüberschaubar
groß, und wie so oft läßt sich auch hier keine ideale Lösung benennen.
Diese ist wie immer abhängig vom Einsatzgebiet.
Datenbank
Viele Wikis speichern ihre Seiten in MySQL Datenbanken, andere im
FlatFile-Format. Die Datenbank hat den Vorteil, daß der Zugriff auf die
Seiten besonders bei hohen Besucherzahlen und großem Umfang des Wikis schneller
funktioniert als beim FlatFile-Format.
Jedoch ist der Installationsaufwand größer, und nicht jeder Web-Hoster bietet
die Möglichkeit eine MySQL-Datenbank zu benutzen, oder verlangt dafür einen
Aufpreis.
Programmiersprache
Nicht zu unterschätzen die die Programmiersprache, in der das Wiki geschrieben
wurde. Die Auswahl reicht von Perl, C, PHP, ReXX über Java, Python und vielen
anderen.
Möchte man einen professionellen Web-Auftritt in einem Wiki realisieren,
kommt schnell der Punkt, wo man eigene Änderungen an der Wiki-Engine vornehmen
möchte (oder muss). Dann ist es sinvoll, wenn man sich für eine Programmiersprache
entschieden hat, die man auch selber beherrscht.
Syntax
Wikis benutzen zum Schreiben der Web-Seiten kein HTML, sondern eine eigene,
vereinfachte Syntax. Dies soll die Hemmschwelle beim editieren der Web-Seiten
senken. Normalerweise schreibt man in reinem ASCII mit einigen Spezialbefehlen.
Diese Syntax ist (leider) von Wiki zu Wiki verschieden.
Anfangs wurde häufig die CamelCase schreibweise eingesetzt, bei der
zusammengesetze Worte mit mindestens einem Großbuchstaben in der Mitte
automatisch zur zugehörigen thematisch zugeordneten Seite verlinkt wurden.
Diese Schreibweise hat sich aber besonders bei größeren Wikis als uneffektiv
herausgestellt, und behinderte dort zunehmend den Lesefluss.
Mittlerweile benutzen immer weniger Wikis CamelCase, oder lassen diese Funktion
optional ausschalten.
Extras
Die Wiki-Technologie alleine ist nicht für alle Einsatzzwecke ausreichend.
News-Seiten auf Basis eines Wikis sind ungeeignet, aber auch Link-Sammlungen
oder Web-Logs lassen sich anderweitig besser realisieren.
Daher gibt es mittlerweile auch Komplettlösungen, die neben einem Wiki auch
spezielle Tools wie Blogs, Bilder-Gallerie, Webmail, Chat und anderes anbieten.
Eine besonders ausgereifte Variante dieser Alleskönner ist Tiki: www.tikiwiki.org
Jedoch erhöht sich mit derartigen Komplettlösungen
auch der Installationsaufwand.
Modularität
Einige Wikis lassen sich mittels Plugins in ihrem Funtkionsumfang erweitern,
oder bestehende Funktionen werden verändert.
Derartige Plugins können z.B. anhand von eingegeben Daten automatisch ein
Bild des zugehörigen Graphen erstellen, oder das Wiki um einen Kommentarbereich
erweitern.
Installation
Im folgenden soll die Installation des Perl-basierenden Wikis TWiki beschrieben
werden. Daß ich mich für diese Version entschieden habe, liegt hauptsächlich
an der gewählten Programmiersprache (da das Betriebssystem auf dem das Wiki
liegt häufiger wechselt, mußte es dringend eine Skript-Sprache sein), der
einfachen Syntax und der guten Modularität.
Die Software erhält man unter http://twiki.org/download.html oder man besorgt sich die neueste CVS-Version von Sourceforge:
>> cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/twiki login (Enter bei der Passwortabfrage drücken) >> cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/twiki co twikiJedoch sind in der CVS-Version die beiden Verzeichnisse data/ und pub/ nicht enthalten und müssen aus der Beta-Release oder der Production-Release entnommen werden.
Die Verzeichnisse bin, templates und lib müssen in das
cgi-bin-Verzeichnis des Web-Servers verschoben werden, während
data und pub in das htdocs-Verzeichnis des
Web-Servers kommen (bei einigen Distributionen heißt dieses Vereichnis
httpd).
Wie genau Ihre Verzeichnisstruktur des Web-Server aussieht hängt davon ab,
welche Distribution Sie einsetzen. Natürlich ist der Einsatz von TWiki nicht
auf Linux beschränkt, sondern funktioniert auf jeder Plattform, die
Perl-Skripte ausführen kann.
Damit Besucher die Web-Seiten ändern können, benötigen die Verzeichnisse data und pub noch die Rechte drwxrwxr-x (775)
>> chmod 755 -R data >> chmod 755 -R pubund sollten dem Benutzer nobody gehören:
>> chown nobody data >> chown nobody pubAusführliche Informationen über die Installation des Wikis erhält man (auf englisch) unter http://twiki.org/cgi-bin/view/TWiki/TWikiDocumentation#TWiki_Installation_Guide.
Konfiguration
Die Konfiguration beschränkt sich zunächst auf die Datei lib/TWiki.cfg, in der die wichtigsten vorzunehmenden Einstellungen folgende sind:
| Datei lib/TWiki.cfg |
# Die URL der TWiki-Seiten : (z.B. "http://meinrechner.de:123") $defaultUrlHost = "http://your.domain.com"; # %SCRIPTURLPATH% : cgi-bin URL des bin-Verzeichnisses: $scriptUrlPath = "/cgi-bin/bin"; # %PUBURLPATH% : URL Pfad des pub-Verzeichnisses : $pubUrlPath = "/pub"; # Kompletter lokaler Pfad zum data Verzeichnis, $pubDir = "/usr/local/httpd/htdocs/pub"; # Template Verzeichnis : $templateDir = "/usr/local/httpd/htdocs/templates"; # Data Verzeichnis: $dataDir = "/usr/local/httpd/htdocs/data"; |
Sollten alle Einstellungen korrekt vorgenommen worden sein, kann man das
Wiki sogleich benutzen.
Wurden die CGI-Programme in ein anderes Unterverzeichnis kopiert als
/cgi-bin, ist es wahrscheinlich nötig dies in der Apache-Konfiguration
anzugeben, und den Server neu zu starten.
Authentifizierung
TWiki kann man in vier verschiedenen Authentifizierungs-Modi betreiben.
- Sofort nach der Installation läuft das Wiki in einem Zustand ohne jegliche
Benutzerauthentifizierung. Jeder Besucher der Web-Seite kann ohne Registierung
oder Anmeldung sofort Seiten ändern, so wie es einmal die Ur-Idee des Wikis war.
Jedwede Änderung findet unter dem Benutzeraccount "TWikiGuest" statt.
Dies bedeutet aber auch, daß Änderungen an den Seiten nachträglich nicht mehr einer Person zuzuordnen sind. - Besucher können jede Seite weiterhin ohne Registrierung ansehen, aber zum
Ändern von Seiten ist eine (freie) Registrierung des Benutzers nötig.
Jede Seitenänderung läßt sich nun einem Benutzer zuordnen.
- Die dritte Stufe ist restriktiver. Zum Ändern von Seiten ist weiterhin eine
Registrierung nötig, zusätzlich kann man aber auch Bereiche im Wiki einrichten,
die von nun an nur registrierten Benutzer einsehbar sind.
Diese Sicherheitsstufe ist mittels TWiki-Plugins erreichbar. - Natürlich kann man den Zugang zum Wiki auch komplett mit einem Passwort
sichern. Zum Beispiel kann man den gesamten Server mittels SSL und reinem
Passwort-Zugang ausstatten. Diese Konfiguration erfolgt aber gänzlich
serverseitig und ist unabhängig vom Wiki.
Normalerweise wird wohl der zweite Modus benutzt.
Dafür muß die in bin befindliche .htaccess-Bespieldatei
umkopiert werden:
>> mv bin/.htaccess.txt bin/.htaccessZusätzlich sollten in der Datei noch mindestens folgende Abschnitte angepasst werden:
| bin/.htaccess |
# Password file for TWiki users # # The path here must be a system file pathname, not a URL - first part should # match the $dataDir setting in TWiki.cfg AuthUserFile /usr/local/httpd/htdocs/data/.htpasswd [...] # File to return on access control error (e.g. wrong password) # The path here must be a URL path, not a file pathname - first part should # match the $scriptUrlPath in TWiki.cfg ErrorDocument 401 /usr/local/httpd/htdocs/bin/oops/TWiki/TWikiRegistration?template=oopsauth [...] |
Die Passwörter und Benutzernamen werden in der unter AuthUserFile eingestellten
Datei abgelegt. Diese Datei existiert bereits, und beinhaltet standardmäßig die
Usernamen und Passwörter der TWiki Autoren.
Sollten sie nicht wollen, daß diese Personen Zugang zu Ihrem Wiki haben, sollten
Sie dringend deren Einträge löschen.
Damit oben beschriebene User-Authentifizierung funktioniert, muß vom Apache
Web-Server die Datei .htaccess ausgewertet werden. Abhängig von der benutzten
Distribution muß Ihr Web-Server unter Umständen noch neu konfiguriert werden.
Näheres findet man in der Dokumentation des Web-Servers, oder z.T. auch in der TWiki
Installationsanleitung.
Wiki anpassen
Hat man alle nötigen Schritte vorgenommen, damit das Wiki auf dem Server läuft,
geht es an die eigentliche Arbeit: das Wiki anzupassen.
Das ursprüngliche Erscheinungsbild des Wikis ist, vorsichtig ausgedrückt,
sehr unansprechend.
Abhilfe ist aber schnell erreicht. Das Erscheinungbild des Wikis wird über
Templates eingestellt.
Unter htdocs/templates befindet sich eine Fülle an Dateien, die
das Erscheinungsbild der verschiedenen Wiki-Seiten vorgeben.
Die Darstellung der "Standardseiten" (also der Seiten zum Anschauen der Wiki-Texte)
wird in den Dateien htdocs/templates/twiki.tmpl und
htdocs/templates/view.tmpl geregelt.
Der Struktur dieser Dateien ist etwas unübersichtlich, aber im Trial&Error
Verfahren kann man schnell erkennen, wie sich Änderungen im Design der
Seite auswirken.
Zusätzlich werden viele Dinge wie Farben und die Texte der Menüleisten
über Wiki-Variablen gesteuert.
Derartige Variablen werden im Wiki selbst eingestellt und zwar mit
der Syntax
* Set VARIABLENMAE = (wert)
Wobei es wichtig ist sechs Leerzeichen vor dem Stern zu setzen.
Unter http://www.meinrechner.de/cgi-bin/bin/view/TWiki/TWikiPreferences werden die Globalen Variablen gesetzt. Hier eingestellte Werte sind für alle sog. Webs (Thematisch zusammengefasste Unterrubriken des Wikis) gültig, können aber durch Neudefinition der Variablen im jeweiligen Web überschrieben werden: http://www.meinrechner.de/cgi-bin/bin/view/Main/WebPreferences.
Versionskontrolle
Um Änderungen an den Seiten Schritt für Schritt verfolgen zu können, und
eventuell auch rückgängig zu machen, ist eine Versionskontrolle notwendig.
TWiki benutzt intern RCS (Revision Control System), welches einigen vielleicht
als der Vorfahre von CVS bekannt ist.
Folglich muß RCS auf dem Web-Server auch installiert sein. Ohne RCS ist zwar
das Editieren und Hinzufügen von Wiki-Seiten möglich, nur kann man sich nicht
explizit anzeigen lassen, welche Änderungen von welchem Benutzer vorgenommen
wurden.
Sind die RCS-Tools nicht installiert, sollte man dies nachholen.
Bei den meisten Distributionen befinden sie sich im selben RPM-Paket wie
die CVS Programme.
Standardinstallationpfad ist /usr/bin. Sollten die Programme
woanders hinkopiert sein, kann man dies einfach in der lib/Twiki.cfg
einstellen:
| lib/TWiki.cfg |
[...] # RCS directory (find out by 'which rcs') : $rcsDir = '/usr/bin'; # Unix, Linux and Cygwin |
Nicht auf jedem Server kann man aber Software nachinstallieren, und speziell
unter Solaris wird RCS offiziell nicht mehr angeboten.
Daher haben sich die Autoren von TWiki hingesetzt, und die von RCS benötigten
Funktionen in Perl zu implementieren. Das ganze nennt sich dann RcsLite.
RcsLite ist bisher noch in der Testphase, funktioniert aber bereits sehr gut.
Möchte man statt RCS den Perl-Ersatz benutzen, muß auch dies in der
lib/Twiki.cfg eingestellt werden:
| lib/TWiki.cfg |
[...] # RcsLite - use a 100% Perl simplified implementation of Perl (NOT yet ready for production use) #$storeTopicImpl = "RcsWrap"; $storeTopicImpl = "RcsLite"; |
Man kann auch während das Wiki bereits läuft und Einträge vorgenommen wurden zwischen beiden Varianten hin- und her-wechseln.
Die TWiki-Syntax
Die von TWiki benutzte Syntax ist ausgesprochen einfach gehalten.
Im folgenden soll eine kurze Übersicht gegeben werden
| Wiki-Syntax | Ergebnis | Erklärung | |||||||||||||||||||
| ---++ Sushi | Sushi | Kapitelüberschriften werden mittels "---" und einem bis 6 + eingeleitet. Je mehr + Zeichen, desto kleiner die Überschrift. | |||||||||||||||||||
| *Bold* | Bold | Fettgedruckte Wörter werden mit * eingeschlossen | |||||||||||||||||||
| -------- | | eine horizontale Linie als optischer Trenner | |||||||||||||||||||
| * bullet item |
| Aufzählungen in Listen werden durch 3 Leerzeichen und einem * eingeleitet | |||||||||||||||||||
|
| *L* | *C* | *R* | | A2 | 2 | 2 | | A3 | 3 | 3 | | multi span ||| | A4-6 | four | four | |^| five | five | |^| six | six | |
| Tabellen lassen sich sehr einfach erstellen und können sogar per Link automatisch nach Zeilen sortiert werden. | |||||||||||||||||||
| [[http://gnu.org][GNU]] | GNU | URLs werden automatisch erkannt und verlinkt. Möchte man einen alternativen Text anzeigen muß man [[URL][Text]] benutzen | |||||||||||||||||||
Arbeitstipps
Dieser Artikel soll nur einen kleinen Einblick in die Möglichkeiten von TWiki geben.
Wer sich auf der TWiki-Hompage umschaut, wird schnell feststellen, daß der
Funktionsumfang der Software sehr vielfältig ist, so daß hier vieles ausgelassen werden
mußte.
Trotzdem sollten am Ende noch einige Kleinigkeiten erwähnt werden, die das Arbeiten mit TWiki erleichtern.
- Der Include-Befehl
Um Web-Seiten dynamischer zu gestalten, kann man im Wiki problemlos externe Quellen einbinden. Mittels%INCLUDE{"http://www.irgendo.de/webseite.html"}%wird der Inhalt der angegebenen externen Web-Seite in die Wiki-Seite integriert.
Natürlich kann diese Datei auch von einem CGI-Skript erstellt worden sein.
Zusätzlich läßt sich die einzubindende Seite noch durch RegularExpressions vor dem Einbinden bearbeiten.
Es ist auch möglich, andere Wiki-Seiten einzubinden:%INCLUDE{"%TWIKIWEB%.WebSiteTools"}%Sollten also verschiedene Seiten den selben Inhalt anzeigen und müssen nur an einer Stelle editiert werden.
Mittels%STOPINCLUDE%
können Abschnitte beim Einbinden in fremden Seiten vom Anzeigen ausgeschlossen werden. - Navigationsleiste als Wiki-Seite
Beinahe jede Web-Seite hat eine Navigationsleiste. Anstatt dies Leiste nun fest in die Template-Dateien einzubauen, und jedesmal per Hand ändern zu müssen, kann man diese Navigationsleiste einfach als Wiki-Seite implementieren.
In die Template-Datei (view.tmpl) fügt man den Eintrag%INCLUDE{"Main.Navigationsleiste"}%und kann die Navigationsleiste unter cgi-bin/bin/view/Main/Navigationsleiste editiert werden. - Schreibgeschützte Seiten
Unter Umständen gibt es Seiten, die nicht von fremden Personen geändert werden sollen. (z.B. die persönliche Homepage im Wiki).
In solchen Fällen genügt ein Eintrag* Set ALLOWTOPICCHANGE = MeinNameund schon kann die Seite nur von der Person mit dem Wiki-Namen "MeinName" geändert werden. - Mozilla Extension: mozex
Wer viele Texte im Wiki schreibt, wird schnell an die Grenzen des HTML-Elementes <textarea> stoßen.
Die Bearbeitung von längeren Texten ist in diesem Kästchen äußerst umständlich. SyntaxHighlighting und Rechtschreibkontrolle gibt es nicht, auch vermisst man schnell die vom Lieblingseditor bekannten Tastaturkürzel.Mozex schafft hier Abhilfe. Das Programm erlaubt einem den Inhalt einer Textarea in einem ASCII-Texteditor seiner Wahl (zusammen mit allen verbundenen Vorzügen) zu editieren.
Hompage: http://mozex.mozdev.org/
Links:
TWiki Hompage: http://twiki.org/
Tiki Hompage: http://tikiwiki.org/
Mozex Homepage: http://mozex.mozdev.org/
Linuxwiki: http://www.linuxwiki.de
Wikipedia: http://www.wikipedia.org
Anmerkungen zu diesem Artikel
Eigene Anmerkung eintragen