Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

project:parse_dokuwiki

Dies ist eine alte Version des Dokuments!


Parser fuer Dokuwiki-Markup

Plan

Einen Parser fuer Dokuwiki-Markupup nach XML.

Fernziel ist ein Toolkit, um Wikimarkups ueber ein Zwischenformat ineinander ueberfuehren zu koennen, so wie netpbm das fuer Pixelformate kann.

Ansaetze

1. s///

Ersetze '//' durch '<it>' bzw. jedes 2. '' eben durch '</it>'. Failt bei der ersten URL: http://wwwhttp:<it>www… </code> ==== 2. Lex & Yacc ==== Hier in der Variante der Perlmodule Parse::Lex und Parse::Yacc. Besondere Schmankerl: * Wikicode ist natuerlich keine Programmiersprache: * zwischen relevanten Tags fliegt viel Zeug rum, das fuer die Auszeichnung irrelvant, aber tatsaechlich wichtig ist: der Inhalt. ;-) * die Auszeichnungstoken genuegen keiner einheitlichen Syntax z.B.: <code> <code> | project </code> * innerhalb bestimmter Tags verhalten sich Auszeichnungstoken nochmal anders (s.o.) * manche Token gelten nur am Zeilenanfang: <code> ' *' ' 1' </code> * newline ( 0x0a ) ist kein any-char sondern braucht ne Extra-Aufforderung: <code> (\n|.) </code> * whitespace ( 0x20 ) ist auch kein any-char. die ueblichen RE-Tricks ziehen nicht. Man muss es im Lexer einstellen: <code> $lexer→skip(''); </code>

project/parse_dokuwiki.1329811217.txt.gz · Zuletzt geändert: 2012-02-21 09:00 von 109.192.98.64