Benutzer-Werkzeuge

Webseiten-Werkzeuge


project:parse_dokuwiki

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
project:parse_dokuwiki [2012-02-19 21:53]
109.192.98.64
project:parse_dokuwiki [2012-05-16 14:56] (aktuell)
109.192.98.64
Zeile 8: Zeile 8:
 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 20:
 ====  1. s/// ==== ====  1. s/// ====
  
-<code>+Ersetze %%'​%%''​%%//​%%'''​ durch %%'​%%''​<it>'''​ bzw. jedes 2. %%'​%%''​%%//​%%'''​ eben durch %%'​%%''</​it>'''​.
  
-Ersetze '//'​ durch '<​it>'​ bzw. jedes 2. '//'​ eben durch '</​it>'​. +Failt bei der ersten URL: %%'​%%''​%%http://​www...%%''' ​-> %%'​%%''​%%http:<​it>​www...%%'''​
- +
-Failt bei der ersten URL: http://​www... -> http:<​it>​www...+
  
 </​code>​ </​code>​
Zeile 27: Zeile 32:
 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.: 
  <​code>​  <​code>​
Zeile 41: Zeile 46:
  (\n|.) ​  (\n|.) ​
  </​code>​  </​code>​
- * 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:
  <​code>​  <​code>​
  $lexer->​skip(''​);​  $lexer->​skip(''​);​
  </​code>​  </​code>​
  
 +=== next steps ===
 +
 +Die Vorrangregeln sind undurchsichtig. Diese muessen als naechste erfasst werden.
 +
 +  * Ueberschriften (====== .. = zwischen \n) haben Vorrang vor Tags (%%<​code>,<​file>,<​del>​%%)
 +  * Tags (%%<​code>,<​file>,<​del>​%%) haben Vorrang vor Fontangaben (%% ** // __ %%) 
 +  * Bei verzahnten (a b a b ) Tags (%%<​code>,<​file>,<​del>​%%) hat das erstgenannte Vorrang
 +  * Bei verschachtelten Tags (a b a b) Tags (%%<​code>,<​file>,<​del>​%%) hat das aeussere Vorrang
 +  * "​Block"​-Tags (%%<​code>,<​file>​%%) haben Vorrang vor "​Dekorations"​-Tags (%%<​sub>​ <sup> <​del>​%%)
 +  * ...
 +  * Images
 +  * Links koennen Images enthalten, rangieren also nach nach diesen
 +  * ...
 +  * Zeilenorientierte Auszeichnung ( ' ​ *' , \n ) rangiert weit hinten
  
project/parse_dokuwiki.1329684791.txt.gz · Zuletzt geändert: 2012-02-19 21:53 von 109.192.98.64