ttlogo.jpg Freie TextTransformer Projekte
Start
Text2HTML
Wikipedia
Yacc2TT
Delphi-Parser
Java-Parser
C-Präprozessor
C-Parser
HTML4
Nützliches
MIME-Parser
Spamfilter
Weitere Beispiele
Freie Komponenten
  Minimal Website   Impressum

Wikipedia


Wikipedia http://www.wikipedia.org ist ein online Lexikon, dass aus zig tausenden von HTML-Seiten besteht. Das Besondere daran ist, dass jeder Benutzer auch ohne HTML-Kenntnisse die Seiten edieren und erweitern kann. Dazu benötigt er nur wenige sehr einfache Formatierungsregeln.


Anwendungsmöglichkeiten

Mit dem hier vorgestellten TextTransformer-Projekt können Web-Seiten mit den gleichen Regeln auch unabhängig von der Wikipedia erzeugt werden, sei es um Artikel für die Wikipedia offline vorzuformulieren oder um eine eigene Homepage zu bauen. Als Beispiel hierfür wird die englische Version dieser Homepage demnächst zur Verfügung stehen.

Einschränkungen

Obwohl die Wikipedia-Syntax im Grunde genommen sehr einfach ist, ist der große Umfang dieses Lexikons nicht zu bewältigen, ohne auch zusätzlich viele spezielle Anweisungenzur Verfügung zu stellen. So gibt es wechselseitige Verlinkungen von hunderten von Sprachen und Kategorien etc. Diese Möglichkeiten stehen außerhalb des hier vorgestellten Projekts. Zwar ist es Ziel, Wikipedia-Skripte möglichst vollständig parsen zu können, die Verarbeitung des geparsten Textes geht aber nicht über das hinaus, was für eine private Homepage erforderlich ist.

Ein weiteres Problem ist, dass die Wikipedia-Syntax zwar mit vielen Beispielen ausführlich beschrieben ist, aber dennoch nicht präzise definiertist - ein Nachteil, der dadurch entstanden ist, dass die Wikipedia-Crew keinen Parser-Generator verwendet hat. So ist es bisweilen nur durch Ausprobieren möglich, festzustellen, was geht, und was nicht. Das TextTransformer-Projekt bleibt daher ein "work in progres". Im aktuellen Stadium kann das Projekt die ( nicht mehr existente? ) umfangreiche Manual-Seite verarbeiten, auf der sämtliche Syntax-Element versammelt sein sollten.

HINWEISE ZUR IMPLEMENTATION

Es gibt vor allem zwei Typen von Wikipedia-Elementen:

1. Elemente, die mit einer Wiederholung eines Zeichen beginnen:

Beispiele:

  • '' kursive Schrift
  • [[ Link
  • {{ Variable
  • == Section

2. Elemente, die mit einem oder mehreren bestimmten Zeichen am Anfang einer Zeile beginnen.

Beispiele:

  • : Einrückung
  • * Listeneintrag
  • |- Tabellenzeile

Um den eigentliche Textinhalt zu erfassen, muss dieser durch Token erkannt werden, die die ausgezeichneten Elemente ausschließen. Das Token TEXT:

TEXT ::=
[h'"\[\]{}|!=<&*#;-] \// Zeichen, mit denen auch andere Token beginnen
|[^\r\nh'"\[\]{}|!=<&*#;-]+ // alle anderen Zeichen beliebig oft wiederholt

ist daher so aufgebaut, dass es nur jeweils ein einzelnes Zeichen erkennt, wenn mit diesem Zeichen auch ein Wikipedia-Syntaxelement beginnen kann. Token dieser Elemente werden daher aufgrund ihrer Länge stets vorrangig erkannt. Alle anderen Zeichen können in beliebiger Wiederholung vom TEXT-Token erkannt werden. Dadurch wird der Text wesentlich schneller analysiert, als wenn man sämtliche Text-Zeichen einzeln extrahieren würde.

Zeilenumbrüche werden von TEXT nicht erkannt. Sie haben auch in der Wikipedia keinen Einfluss auf die Gestaltung des Textes, es sei denn, als Leerzeile zur Trennung zweier Absätze.

Die Token der Elemente, die am Zeilenanfang stehen müssen, werden dadurch definiert, dass ihnen

(\r?\n)?\r?\n

vorangestellt wird. Sie werden damit mit Vorrang gegenüber einzelnen Zeilenumbrüchen oder Leerzeilen erkannt.


Startregeln

  • Mit der Startregel Wikipediawerden Wikipedia-Skripte einfachen HTML-Seiten transformiert.
  • Mit der Startregel Homepagewird der HTML-Code in das HTML-Template "Homepage.tmpl" eingebunden, so dass er in einem Rahmen für eine komplette Website erscheint.

Links

Das Projekt kann hier herunter geladen werden: Wikipedia.ttp
Die Textvorlage für diese HTML-Seite ist: Wikipedia.txt
Ein Beispiel, das mit dem Projekt konvertiert werden kann: How_to_edit_a_page.txt.
Hinweis: Wenn Sie den Zieltext mit dem Extender ".html" abspeichern und dann einen Doppelklick auf die Datei ausführen, wird sie im Browser angezeigt.
So sieht das konvertierte Dokument dann im Browser aus: How_to_edit_a_page.html

Das Projekt wird noch verbessert.


Letztes Update: 14.06.06

 to the top