IServ-Wiki:Konvertierungsscript: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K |
K |
||
Zeile 3: | Zeile 3: | ||
Aktueller Stand des Scripts: | Aktueller Stand des Scripts: | ||
<pre> | <pre> | ||
− | + | #!/bin/sed -f | |
+ | |||
+ | # Ueberschriften | ||
+ | s/======/=/g;t headersdone | ||
+ | s/=====/==/g;t headersdone | ||
+ | s/====/===/g;t headersdone | ||
+ | s/===/====/g;t headersdone | ||
+ | s/==/=====/g;t headersdone | ||
+ | :headersdone | ||
+ | |||
+ | ############################## | ||
+ | ### Tabellen ################# | ||
+ | ############################## | ||
+ | |||
+ | # Im MediaWiki werden Tabellen durch {| eingeleitet, im DokuWiki werden | ||
+ | # Tabellen gar nicht eingeleitet. Wir suchen daher einfach alle DokuWiki- | ||
+ | # Tabellenheader heraus, und stellen ihnen die MediaWiki-Einleitung voran. | ||
+ | /^\^/ i\ | ||
+ | {| class="wikitable" | ||
+ | |||
+ | # Das DokuWiki beendet eine TH-Zeile mit einem ^, eine TD-Zeile mit einem |. | ||
+ | # Das MediaWiki beendet Zeilen nur mit dem Zeilenumbruch, daher muessen wir | ||
+ | # die ueberstehenden Zeichen entfernen. | ||
+ | /^\^/ s/\(.*\)\^/\1/ | ||
+ | /^|/ s/\(.*\)|/\1/ | ||
+ | |||
+ | # Das erste ^ ersetzen wir nun durch ein "! ", das erste | wird nur um ein | ||
+ | # Leerzeichen ergaenzt. | ||
+ | /^\^/ s/^\^/! / | ||
+ | /^|/ s/^|/| / | ||
+ | |||
+ | # Alle weiteren ^ ersetzen wir durch " !! ". | ||
+ | /^!/ s/\^/ !! /g | ||
+ | # Alle weiteren | ersetzen wir durch " || ". | ||
+ | # Zu dem Zweck muessen wir das erste | temporaer entfernen, es wird nachher | ||
+ | # wiederhergestellt. Sonst wuerde das erste auch ersetzt werden :-/ | ||
+ | /^|/ s/|// | ||
+ | /|/ s/|/ || /g | ||
+ | /|/ s/.*/|&/ | ||
</pre> | </pre> | ||
Version vom 3. August 2006, 18:52 Uhr
Ich arbeite zur Zeit an einem sed-Script, dass die Konvertierung von DokuWiki-Artikeln in das MediaWiki-Format erleichern soll. Viele der kleinen Seiten können problemlos per Hand übersetzt werden, bei der Kommandozeilenreferenz ist das allerdings nicht so gut machbar...
Aktueller Stand des Scripts:
#!/bin/sed -f # Ueberschriften s/======/=/g;t headersdone s/=====/==/g;t headersdone s/====/===/g;t headersdone s/===/====/g;t headersdone s/==/=====/g;t headersdone :headersdone ############################## ### Tabellen ################# ############################## # Im MediaWiki werden Tabellen durch {| eingeleitet, im DokuWiki werden # Tabellen gar nicht eingeleitet. Wir suchen daher einfach alle DokuWiki- # Tabellenheader heraus, und stellen ihnen die MediaWiki-Einleitung voran. /^\^/ i\ {| class="wikitable" # Das DokuWiki beendet eine TH-Zeile mit einem ^, eine TD-Zeile mit einem |. # Das MediaWiki beendet Zeilen nur mit dem Zeilenumbruch, daher muessen wir # die ueberstehenden Zeichen entfernen. /^\^/ s/\(.*\)\^/\1/ /^|/ s/\(.*\)|/\1/ # Das erste ^ ersetzen wir nun durch ein "! ", das erste | wird nur um ein # Leerzeichen ergaenzt. /^\^/ s/^\^/! / /^|/ s/^|/| / # Alle weiteren ^ ersetzen wir durch " !! ". /^!/ s/\^/ !! /g # Alle weiteren | ersetzen wir durch " || ". # Zu dem Zweck muessen wir das erste | temporaer entfernen, es wird nachher # wiederhergestellt. Sonst wuerde das erste auch ersetzt werden :-/ /^|/ s/|// /|/ s/|/ || /g /|/ s/.*/|&/
Testdatei mit DokuWiki-Sytnax:
dito