project:parse_dokuwiki
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
project:parse_dokuwiki [2012-02-19 20:35] – 109.192.98.64 | project:parse_dokuwiki [2012-02-27 09:43] – 109.192.98.64 | ||
---|---|---|---|
Zeile 13: | Zeile 13: | ||
==== 1. s/// ==== | ==== 1. s/// ==== | ||
- | <code> | + | Ersetze %%' |
- | Ersetze '//' | + | Failt bei der ersten URL: %%' |
- | + | ||
- | Failt bei der ersten URL: http:// | + | |
</ | </ | ||
- | ==== 2. ==== | + | ==== 2. Lex & Yacc ==== |
- | Lex & Yacc, hier in der Variante der Perlmodule Parse::Lex und Parse:: | + | Hier in der Variante der Perlmodule Parse::Lex und Parse:: |
Besondere Schmankerl: | Besondere Schmankerl: | ||
* Wikicode ist natuerlich keine Programmiersprache: | * Wikicode ist natuerlich keine Programmiersprache: | ||
- | * zwischen relevanten Tags fliegt viel Zeug rum, das fuer die Auszeichnung irrelvant, aber tatsaechlich wichtig ist: der Inhalt. ;-) | + | * 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.: | * die Auszeichnungstoken genuegen keiner einheitlichen Syntax z.B.: | ||
< | < | ||
Zeile 37: | Zeile 35: | ||
' | ' | ||
</ | </ | ||
+ | * newline ( 0x0a ) ist kein any-char sondern braucht ne Extra-Aufforderung: | ||
+ | < | ||
+ | (\n|.) | ||
+ | </ | ||
+ | * whitespace ( 0x20 ) ist auch kein any-char. die ueblichen RE-Tricks ziehen nicht. Man muss es im Lexer einstellen: | ||
+ | < | ||
+ | $lexer-> | ||
+ | </ | ||
+ | |||
+ | === next steps === | ||
+ | |||
+ | Die Vorrangregeln sind undurchsichtig. Diese muessen als naechste erfasst werden. | ||
+ | |||
+ | * Tags (%%< | ||
+ | * Bei verzahnten (a b a b ) Tags (%%< | ||
+ | * Bei verschachtelten Tags (a b a b) Tags (%%< | ||
+ | * " | ||
+ | * ... | ||
+ | * Images | ||
+ | * Links koennen Images enthalten, rangieren also nach nach diesen | ||
+ | * ... | ||
+ | * Zeilenorientierte Auszeichnung ( ' | ||
project/parse_dokuwiki.txt · Zuletzt geändert: 2022-04-20 10:42 von chris