project:parse_dokuwiki
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| project:parse_dokuwiki [2012-02-19 21:53] – 109.192.98.64 | project:parse_dokuwiki [2022-04-20 10:42] (aktuell) – chris | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Parser fuer Dokuwiki-Markup | ====== Parser fuer Dokuwiki-Markup | ||
| + | {{tag> | ||
| + | {{process: | ||
| ===== Plan ===== | ===== Plan ===== | ||
| Zeile 8: | Zeile 10: | ||
| ineinander ueberfuehren zu koennen, so wie netpbm das fuer Pixelformate | ineinander ueberfuehren zu koennen, so wie netpbm das fuer Pixelformate | ||
| kann. | kann. | ||
| + | |||
| + | ===== Status ===== | ||
| + | |||
| + | Killed. | ||
| + | |||
| + | Es war einfacher, die passenden Plugins fuer Dokuwiki zu suchen und einzurichten, | ||
| + | als den Parser nachzuprogrammieren. | ||
| ===== Ansaetze ===== | ===== Ansaetze ===== | ||
| Zeile 13: | Zeile 22: | ||
| ==== 1. s/// ==== | ==== 1. s/// ==== | ||
| - | <code> | + | Ersetze %%' |
| - | Ersetze '//' | + | Failt bei der ersten URL: %%' |
| - | + | ||
| - | Failt bei der ersten URL: http:// | + | |
| </ | </ | ||
| Zeile 27: | Zeile 34: | ||
| 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 41: | Zeile 48: | ||
| (\n|.) | (\n|.) | ||
| </ | </ | ||
| - | * whitespace ( 0x32 ) ist auch kein any-char. die ueblichen RE-Tricks ziehen nicht. Man muss es im Lexer einstellen: | + | * whitespace ( 0x20 ) ist auch kein any-char. die ueblichen RE-Tricks ziehen nicht. Man muss es im Lexer einstellen: |
| < | < | ||
| $lexer-> | $lexer-> | ||
| </ | </ | ||
| + | === next steps === | ||
| + | |||
| + | Die Vorrangregeln sind undurchsichtig. Diese muessen als naechste erfasst werden. | ||
| + | |||
| + | * Ueberschriften (====== .. = zwischen \n) haben Vorrang vor Tags (%%< | ||
| + | * 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.1329684791.txt.gz · Zuletzt geändert: von 109.192.98.64
