Wikipedia:Technik/Text/Reader/WikiTaxi/Skripte

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

WikiTaxi/Skripte


Der Offline-Reader WikiTaxi hatte früher leider kleine Probleme mit einigen lokalisierten Schlüsselwörtern, bestimmten Erweiterungen und Ähnlichem. Aus diesem Grund hatte ich einige Skripte geschrieben, mit denen man die Datenbank vor dem Import geeignet anpassen konnte. Inzwischen funktioniert WikiTaxi wieder so gut, dass die Skripte eigentlich überflüssig sind, in ein paar Fällen (vor allem bei Kategorien) sind sie jedoch noch nützlich.

Die Skripte sind in erster Linie für Linux geschrieben, da sed aber auch für Windows verfügbar ist, müssten sie ohne Anpassung auch unter Windows funktionieren.

Die Skripte bewirken keine Wunder, können aber ein Offline-Arbeiten angenehmer gestalten. Besonders lohnend sind sie in meinen Augen für Wikisource.

Linux[Quelltext bearbeiten]

Speichere alle Skripte unter dem angegebenen Namen in einem Verzeichnis, das sich im Pfad befindet (~/bin/ ist ein guter Ort), und mache sie ausführbar (chmod +x wiki.*). Sollte sich sed nicht unter /usr/bin/sed befinden, muss jeweils die erste Zeile angepasst werden. Lade die aktuelle Datenbank herunter. Zum Konvertieren verwendest du den folgenden Befehl (in einer Zeile): wiki.tags0 , wobei du für dewiki-xxx-pages-articles.xml.bz2 den Dateinamen der heruntergeladenen Datenbank (inklusive Pfad) angibst und die Ausgabedatei de.xml.bz2 natürlich auch anders heißen darf. Diese Konvertierung dauert je nach Rechner mehr oder weniger lang, bei mir sind es ca. 2 Stunden pro Gigabyte, also etwa 3½ Stunden für die deutsche Wikipedia. Anschließend startest du wie gewöhnlich den WikiTaxi-Importer und importierst die erzeugte Ausgabedatei. Wenn alles funktioniert, kannst du beide xml.bz2-Dateien löschen.

Windows[Quelltext bearbeiten]

Eine genaue Anleitung für Windows kann ich leider nicht geben, nur einige Hinweise: Installiere sed für Windows. Außerdem brauchst du ein Programm zum Komprimieren und Dekomprimieren von bzip2-Dateien, in der Liste von Datenkompressionsprogrammen wirst du sicher fündig. Anschließend gehst du wie unter Linux vor. Wenn sich das Kompressionsprogramm auch auf der Kommandozeile bedienen lässt, ersetzt du im Befehlsaufruf bzcat dewiki-xxx-pages-articles.xml.bz2 durch den Befehl, mit dem die Datei auf die Standardausgabe dekomprimiert wird und bzip2 > de.xml.bz2 durch den Befehl, mit dem von der Standardeingabe in die Datei komprimiert wird. Ferner sind alle wiki.xyz durch sed -f wiki.xyz bzw. sed -nf wiki.xyz (jeweils wie in der ersten Zeile des Skripts angegeben). Alternativ kannst du die Skripte auch unter wiki.xyz.sed speichern und die Endung .sed mit sed verknüpfen. Für den Fall, dass das Kompressionsprogramm nicht von der Kommandozeile aus bedient werden kann, dekomprimerst du die Datei vorher. Der Aufruf der Skripte lautet dann wiki.nowiki0 . Zum Schluss komprimierst du die Ausgabedatei. Wenn alles funktioniert hat, darfst du auch gerne diese Anleitung ausführlicher gestalten.

wiki.tags0[Quelltext bearbeiten]

Bei meinen ersten Versuchen habe ich festgestellt, dass es sehr viel angenehmer ist, wenn alle Befehle in spitzen Klammern in eigenen Zeilen stehen. Daher fügt das erste Skript an solchen Stellen Zeilenumbrüche ein. Um diese am Ende wieder entfernen zu können, werden die entstehenden Zeilen mit einem Anführungszeichen gekennzeichnet.

#!/usr/bin/sed -f

# bei < und > aufspalten
s/&lt;/\n"\n\&lt;/g
s/&gt;/\&gt;\n"\n/g

# unnötige Aufspaltungen entfernen
s/^\n"\n//
s/\n"\n$//
s/\n"\n\n"\n/\n"\n/g

wiki.nowiki0[Quelltext bearbeiten]

Innerhalb von <nowiki>…</nowiki> soll nichts verändert werden, daher werden potentiell „gefährliche“ Zeichen mit zwei Kleiner-Zeichen entschärft. Eigentlich müssten auch source- und ähnliche Umgebungen analog behandelt werden, allerdings halte ich die Fehler, die durch diese Missachtung entstehen für verschmerzbar.

#!/usr/bin/sed -f

# von <nowiki> bis </nowiki> oder Artikelende
/&lt;nowiki&gt;/,/&lt;\/nowiki&gt;\|<\/text>\|<\/comment>/ {
# jedes potentiell "gefährliche" Zeichen mit << ukenntlich machen
s/{/{<</g
s/\[/\[<</g
s/&lt;/\&lt;<</g
# s/__/__<</g
s/#\(weiterleitung\)/#<<\1/gi
}

wiki.de[Quelltext bearbeiten]

Hier wird geändert, was speziell die deutsche Wikipedia betrifft: Zunächst werden störende Lokalisierungen rückgängig gemacht, dann einige wichtigen Variablen und Namensraum-Aliase ersetzt.

#!/usr/bin/sed -f

# Lokalisierungen

s/#WEITERLEITUNG/#REDIRECT/i
s/\[\[Image:/\[\[Datei:/gi
s/\[\[File:/\[\[Datei:/gi
s/\[\[Bild:/\[\[Datei:/gi
s/{{SEITENTITEL:/{{DISPLAYTITLE:/
s/{{SORTIERUNG:/{{DEFAULTSORT:/
s/{{SEITENNAME}}/{{PAGENAME}}/g
s/{{ZAHLENFORMAT:/{{formatnum:/g

# Variablen

s/{{SERVER}}{{localurl:/{{canonicalurl:/g
s/{{SITENAME}}/Wikipedia/g
s/{{fullurl:/{{canonicalurl:de.wikipedia.org\/wiki\//gi
s/{{SUBJECTSPACE}}/{{NAMESPACE}}/g
s/{{SUBJECTPAGENAME}}/{{NAMESPACE}}:{{PAGENAME}}/g
s/{{SUBJECTPAGENAMEE}}/{{NAMESPACEE}}:{{PAGENAMEE}}/g
s/{{NUMBEROFARTICLES}}/1.000.000/g

# Namensraum-Aliase

s/\[\[WP:/\[\[Wikipedia:/g
s/\[\[P:/\[\[Portal:/g

wiki.sonstiges[Quelltext bearbeiten]

Die Einbindung von Unterseiten wie auf der Hauptseite funktioniert in WikiTaxi nicht, dieses Problem wird behoben. Schließlich werden Bilder, die mit einer Größe von unter 40 Pixeln eingebunden sind durch [*] ersetzt. Ein <onlyinclude> direkt vor <includeonly> oder einer Tabelle macht Probleme, die durch einen Leerkommentar in den meisten Fällen behoben werden.

#!/usr/bin/sed -f

s/{{\//{{{{NAMESPACE}}:{{PAGENAME}}\//g
s/\(\[\[Datei:[^]]\+|[123][0-9]px[^]]*\]\]\)/\&amp;#x5B;*\&amp;#x5D;\&lt;!--\1--\&gt;/g
s/&lt;onlyinclude&gt;/\&lt;onlyinclude\&gt;\&lt;!-- --\&gt;/
s/{{PLURAL:/{{#ifexpr: 1 = /gi

wiki.extensions[Quelltext bearbeiten]

WikiTaxi ersetzt Inputboxen und Imagemaps durch Platzhalter, das folgende Skript tut dies auch mit Gallerien, Zeitleisten und Kategorienbäumen.

#!/usr/bin/sed -f

s/&lt; *timeline.*&gt;/\&amp;#x5B;Timeline\&amp;#x5D;\&lt;!--&/
s/&lt; *\/timeline *&gt;/&--\&gt;/

s/&lt; *gallery.*&gt;/\&amp;#x5B;Gallery\&amp;#x5D;\&lt;!--&/
s/&lt; *\/gallery *&gt;/&--\&gt;/

s/&lt; *categorytree.*&gt;/\&amp;#x5B;Categorytree\&amp;#x5D;\&lt;!--&/
s/&lt; *\/categorytree *&gt;/&--\&gt;/

wiki.interwiki[Quelltext bearbeiten]

Einige neue Sprachen sind seit der letzten WikiTaxi-Version dazugekommen, Interwikilinks zu diesen bleiben in WikiTaxi am Ende stehen. Das folgende Skript kommentiert sie daher aus. Sämtliche Sprachen stehen hier.

#!/usr/bin/sed -f

s/\(\[\[ace:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[bxr:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[ckb:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[closed-zh-tw:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[cz:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[epo:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[jp:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[kaa:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[lbe:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[mhr:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[mwl:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[nomcom:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[pcd:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[pnt:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[pnb:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[srn:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/
s/\(\[\[tp:[^]]\+\]\]\)/\&lt;!--\1--\&gt;/

wiki.source[Quelltext bearbeiten]

Im Zusammenhang mit source und pre verhält sich WikiTaxi nicht genau so wie Mediawiki. Dies betrifft insbesondere HTML-Kommentare und Vorlageneinbindungen. Durch das Skript bleibt der Wiki-Quelltext leider nicht mehr lesbar, dafür aber die Anzeige in WikiTaxi.

#!/usr/bin/sed -f

# von <pre> bis </pre> oder Artikelende
/&lt; *pre.*&gt;/,/&lt; *\/ *pre *&gt;\|<\/text>\|<\/comment>/ {
# <! maskieren
s/&lt;!/\&amp;lt;!/g
# {{ maskieren
s/{{/\&amp;#123;\&amp;#123;/g
# <nowiki> ignorieren
s/&lt;<<\/\?nowiki&gt;/\&lt;!--&--\&gt;/
}

# gleiches für source
/&lt; *source.*&gt;/,/&lt; *\/ *source *&gt;\|<\/text>\|<\/comment>/ {
s/&amp;/\&amp;amp;/g
s/&lt;!/\&amp;lt;!/g
s/{{/\&amp;#123;\&amp;#123;/g
}

wiki.poem[Quelltext bearbeiten]

Gedichte kommen in Wikipedia nur selten vor, in Wikisource ist es dagegen sehr störend, wenn kein Zeilenumbruch erfolgt.

#!/usr/bin/sed -f

# von <poem> bis </poem> oder Artikelende
/&lt; *poem.*&gt;/,/&lt; *\/poem *&gt;\|<\/text>\|<\/comment>/ {
# erste und letzte Zeile auskommentieren
/&lt; *\/\?poem/ {
s/&lt; *\/\?poem.*&gt;/\&lt;!--&--\&gt;/
b
}
# " ignorieren, vor nächste Zeile keinen Doppelpunkt
/^"$/ {
h
b
}
# : voranstellen
x
/^"$/ {
s/"//
x
b
}
x
s/^.\+$/:&/
# leere Zeilen zu <br />
s/^$/\&lt;br \/\&gt;/
}

wiki.nowiki1[Quelltext bearbeiten]

Die Kleiner-Zeichen, die am Anfang eingefügt wurden, werden wieder entfernt.

#!/usr/bin/sed -f
s/<<//g

wiki.tags1[Quelltext bearbeiten]

Die Zeilenumbrüche, die am Anfang eingefügt wurden, werden wieder entfernt.

#!/usr/bin/sed -nf

# erste Zeile speichern
1 {
h
b
}

# bei zu entfernenden Zeilen
/^"$/ {
# nächste Zeile lesen
n
# und ohne Zeilenumbruch anhängen
H
g
s/\n//
h
b
}

# gespeicherte Zeile ausgeben
x
p

# letzte Zeile
$ {
x
p
}

Auf die gleiche Art kann man natürlich auch andere Probleme beseitigen.

Kategorien[Quelltext bearbeiten]

Es ist möglich, die Kategorien mit den entsprechenden Seiten zu füllen. Allerdings dauert alles wesentlich länger, die Datenbank wird größer, Kategorisierung durch Vorlagen wird nicht funktionieren. Wem das egal ist, kann die folgenden Skripte verwenden. wiki.kategorien0 ist ein sed-Skript, das vor wiki.nowiki1 in die Befehlskette eingefügt werden muss. Dadurch entstehen im aktuellen Verzeichnis zwei Dateien mit allen Informationen zu den Kategorien. Anschließend führt man im selben Verzeichnis das Shell-Skript wiki.kategorien1 aus. Mit etwas Aufwand ließe sich dieses Skript auch für Windows nachprogrammieren. Dieses fügt die beiden Dateien zusammen. Zum Schluss fügt man die gefüllten Kategorien in die Datenbank ein: wiki.kategorien2 Diese letzte Datei wird nun importiert. Die erste Datei de.xml.bz2 und die Datei kategorien.ausgabe können anschließend beide gelöscht werden.

wiki.kategorien0[Quelltext bearbeiten]

#!/usr/bin/sed -nf
p

# Kategorieninhalt speichern, verfluchte leere Kategoriebeschreibungsseiten!!!
/<title>Kategorie:/,/<\/text>\|<text xml:space="preserve" \/>/ w kategorien.beschreibung

# Titel speichern
/<title>/ {
s/^.*<title>\([^<]*\)<\/title>.*$/\1/
h
b
}

# nichts zwischen includeonly und in Kommentaren
/&lt;includeonly&gt;/,/&lt;\/includeonly&gt;\|<\/text>/ b
/&lt;!--.*--&gt;/ b
/&lt;!--/,/--&gt;\|<\/text>/ b
/<comment>/ b

# Sortierung speichern
/{{DEFAULTSORT:/ {
s/^[^{]*{{DEFAULTSORT:\([^}]*\)}.*$/\1/
H
x
s/^\(.*\)\n\(.*\)$/\2\n\1/
x
}

# Kategorie speichern
/\[\[Kategorie:/ {
s/^.*\[\[Kategorie:\([^]]*\)\].*$/\1/
# Unterstriche zu Leerzeichen, %-Darstellung bei wichtigen Zeichen korrigieren
y/_/ /
s/%c3%84/Ä/gi
s/%c3%96/Ö/gi
s/%c3%9c/Ü/gi
s/%c3%9f/ß/gi
s/%c3%a4/ä/gi
s/%c3%b6/ö/gi
s/%c3%bc/ü/gi
y/|/\n/
G
# Inhalt Patternspace: Kat.\nSort.\nSort.\nTitel oder Kat.\nSort.\nTitel oder Kat.\nTitel
s/^\(.*\n.*\)\n.*\(\n.*\)$/\1\2/
s/^[^\n]*\n\([^\n]*\)$/&\n\1/
t x
: x
y/\n/>/
# Inhalt Patternspace: Kat.>Sort.>Titel
s/^\(.*\)\(>.*>\)\(Kategorie:.*\)$/\1>k\2:\3/
t weiter
s/^\(.*\)\(>.*>.*\)$/\1>t\2/
:weiter
s/^\(.*>.>.*\)>\(.*\)$/\1"* [[\2]]/
w kategorien.inhalt
}

wiki.kategorien1[Quelltext bearbeiten]

#! /bin/sh
nl -nrz -s'"' -ba -w8 kategorien.beschreibung | sed '
/<title>/ {
h
s/^.*<title>Kategorie:\([^<]*\)<.*$/\1>/
x
}
G
s/<text xml:space="preserve" \/>/<text xml:space="preserve">/
s/^\(.*\)\n\(.*\)/\2\1/' > kategorien.beschreibung1

rm -f kategorien.beschreibung

LANG=C
# Inhalte nicht vorhandener Kategorien werden in andere Kategorien gesteckt

sort kategorien.beschreibung1 kategorien.inhalt | uniq | sed '
s/^[^"]*"\(.*\)$/\1/
s/<\/text>//
0,/<title>/ {
/<title>/ i <page>
b
}
/<title>/ {
i\
</text>\
</revision>\
</page>\
<page>
b
}
$ {
a\
</text>\
</revision>\
</page>
}' > kategorien.ausgabe

rm -f kategorien.beschreibung1
rm -f kategorien.inhalt

wiki.kategorien2[Quelltext bearbeiten]

#!/usr/bin/sed -nf
/<\/siteinfo>/ r kategorien.ausgabe
/<page>/ b
/<title>Kategorie:/,/<\/page>/ b
/<title>/ i <page>
p

Mathematik[Quelltext bearbeiten]

Während der Bearbeitung der Datenbank können auch einfache Formeln in HTML umgewandelt und damit von WikiTaxi angezeigt werden. Dazu benötigst du ein Programm, das LaTeX in HTML übersetzt. Meine Lösung baut auf texvc auf, das bei Wikipedia verwendet wird. Besorge dir also den Quelltext von texvc und einen Ocaml-Compiler. Das Ganze dauert dadurch allerdings etwas länger.

In der Datei html.ml sind alle Zeilenumbrüche \n zu entfernen, die Datei texvc.ml ersetzt du durch folgenden Code:

exception LexerException of string
let lexer_token_safe lexbuf =
    try Lexer.token lexbuf
    with Failure s -> raise (LexerException s)

let render tree =
    begin
	let html = Html.render tree
	in print_string (match (html,!Html.conservativeness) with
	    None,_ -> ""
	  | Some h,Html.CONSERVATIVE -> h
	  | Some h,Html.MODERATE -> h
	  | Some h,Html.LIBERAL -> h
	);
    end
let _ =
    try render (Parser.tex_expr lexer_token_safe (Lexing.from_string Sys.argv.(1)))
    with Parsing.Parse_error -> print_string "<span style='color:red;'>Syntaxfehler</span>"
       | LexerException _ -> print_string "<span style='color:red;'>Lexingfehler</span>"
       | Texutil.Illegal_tex_function s -> print_string ("<span style='color:red;'>Fehler</span> Unbekannte Funktion:" ^ s) (* oder print_string (""), falls eine ältere Version verwendet wird *)
       | Invalid_argument _ -> print_string "<span style='color:red;'>Fehler</span>"
       | Failure _ -> print_string "<span style='color:red;'>Fehler</span>"
       | _ -> print_string "<span style='color:red;'>Fehler</span>"

Dann kompilierst du das Programm und kopierst es unter dem Namen texvc_ zu den Skripten.

Um während der Bearbeitung die Formeln zu übersetzen, fügst du in den Befehlsaufruf noch das folgende Skript wiki.math ein.

wiki.math[Quelltext bearbeiten]

#!/usr/bin/sed -nf

# von <math> bis </math> oder Artikelende
/&lt;math&gt;/,/&lt;\/math&gt;\|<\/text>\|<\/comment>/I {
# erste Zeile speichern
/&lt;math&gt;/ {
h
b
}
# speichern
H
# bei letzter Zeile auswerten
/<\/text>\|<\/comment>/ {
g
p
}
/&lt;\/math&gt;/I {
g
# Zeug entfernen
s/\n"\n//g
s/&lt;\/\?math&gt;//g
y/\n/ /
# HTML
s/&lt;/</g
s/&gt;/>/g
# ' escapen
s/'/'"'"'/g
# Programm aufrufen
s/.*/texvc_ '&'/
e
/./ {
# doppelte kursiv weg
s/<\/i><i>//g
s/''/<nowiki>''<\/nowiki>/g
s/{{/<nowiki>{{<\/nowiki>/g
s/\[/<nowiki>[<\/nowiki>/g
s/|/\&#124;/g
s/!!/<nowiki>!!<\/nowiki>/g
# HTML maskieren
s/&/\&amp;/g
s/"/\&quot;/g
s/</\&lt;/g
s/>/\&gt;/g
x
s/^/\&lt;!--/
s/$/--\&gt;/
H
g
s/\n//
p
b
}
g
p
}
b
}
p

Andere Sprachen und Schwesterprojekte[Quelltext bearbeiten]

Für andere Sprachen und Projekte muss vor allem das Skript wiki.de angepasst werden. Die Namensraum-Aliase findet man im Zweifelsfall hier. Ferner sind in allen Skripten mit deutschem Namen irgendwelche Lokalisierungen vorhanden, die angepasst werden müssen. Skripte für nicht installierte oder nicht verwendete Erweiterungen können entfallen.

Wikisource[Quelltext bearbeiten]

In Wikisource wird die Labeled Section Transclusion-Erweiterung verwendet. Diese mit den Mitteln nachzuprogrammieren, die WikiTaxi kennt, ist unmöglich. Zum Glück wird aber nur ein Teil der Funktionalität benutzt, dieser kann mit ein paar {{#if-s nachgebildet werden. Der Befehlsaufruf lautet wiki.tags0 .

wiki.desource[Quelltext bearbeiten]

#!/usr/bin/sed -f

# Lokalisierungen

s/#WEITERLEITUNG/#REDIRECT/i
s/\[\[Image:/\[\[Datei:/gi
s/\[\[File:/\[\[Datei:/gi
s/\[\[Bild:/\[\[Datei:/gi
s/{{SEITENTITEL:/{{DISPLAYTITLE:/
s/{{SORTIERUNG:/{{DEFAULTSORT:/
s/&lt;abschnitt anfang/\&lt;section begin/ig
s/&lt;abschnitt ende/\&lt;section end/ig

# Variablen
s/{{SERVER}}{{localurl:/{{canonicalurl:/g
s/{{SITENAME}}/Wikisource/g
s/{{SERVER}}/https:\/\/de.wikisource.org/g
s/{{fullurl:/{{canonicalurl:de.wikisource.org\/wiki\//gi
s/{{localurl:\([^|}]*\)[^}]*}}/\/wiki\/\1/gi
s/{{SUBJECTPAGENAMEE}}/{{NAMESPACEE}}:{{PAGENAMEE}}/g
s/{{REVISIONID}}/0/g
s/{{REVISIONDAY}}/0/g
s/{{REVISIONMONTH}}/0/g
s/{{REVISIONYEAR}}/0/g
s/&lt;pagequality [^\/]*\/&gt;/\&lt;!--&--\&gt;/
s/|action=edit&amp;image=\([^ ]*\) /|action=edit\&amp;image={{urlencode:\1}} /

# Namensraum-Aliase
s/\[\[WS:/\[\[Wikisource:/g

wiki.lst[Quelltext bearbeiten]

#!/usr/bin/sed -f

# senkrechte Striche escapen
/&lt;section *begin=/,/&lt;section *end\|<\/text>\|<\/comment>/ {
/"/ b
s/|/"/g
s/{{\([^"}]*\)"\([^"}]*\)/{{\1|\2/g
s/{{\([^"}]*\)"\([^"}]*\)"\([^"}]*\)/{{\1|\2|\3/g
s/{{\([^"}]*\)"\([^"}]*\)"\([^"}]*\)"\([^"}]*\)/{{\1|\2|\3|\4/g
s/"/{{!}}/g
}
# Anfang durch ein #ifeq ersetzen, nur wenn der übergebene Parameter
# (default: text, egal ob groß oder klein) stimmt oder die Seite direkt betrachtet wird anzeigen
s/&lt;section *begin=\(&quot;\)\?\([^ &]*\)\(&quot;\)\? *\/ *&gt;/\&lt;includeonly\&gt;{{#ifeq:{{{1|text}}}|\2|\&lt;\/includeonly\&gt;/g
s/{{#ifeq:{{{1|text}}}|Text|/{{#ifeq:{{{1|Text}}}|Text|/
s/&lt;section *begin *\/ *&gt;//g
# Ende schließen
s/&lt;section *end[^\/]*\/ *&gt;/\&lt;includeonly\&gt;|}}\&lt;\/includeonly\&gt;/ig
# lst ist damit überflüssig
s/{{#lst:/{{:/g

Wikibooks[Quelltext bearbeiten]

Wikibooks hat beim Testen den ungeheuren Vorteil, dass die Datenbank sehr klein ist, und damit alles ziemlich schnell geht. Statt wiki.de verwendet man wiki.debooks:

wiki.debooks[Quelltext bearbeiten]

#!/usr/bin/sed -f

# Lokalisierungen

s/#WEITERLEITUNG/#REDIRECT/i
s/\[\[Image:/\[\[Datei:/gi
s/\[\[File:/\[\[Datei:/gi
s/\[\[Bild:/\[\[Datei:/gi
s/{{SEITENTITEL:/{{DISPLAYTITLE:/
s/{{SORTIERUNG:/{{DEFAULTSORT:/

# Variablen

s/{{SERVER}}{{localurl:/{{canonicalurl:/g
s/{{SITENAME}}/Wikibooks/g
s/{{fullurl:/{{canonicalurl:de.wikibooks.org\/wiki\//gi
s/{{SUBJECTSPACE}}/{{NAMESPACE}}/g
s/{{SUBJECTPAGENAME}}/{{PAGENAME}}/g

# Namensraum-Aliase

#s/\[\[WB:/\[\[Wikibooks:/g

Fehler können immer auftreten. Erfolgreich getestet habe ich die obigen Skripte – einschließlich Kategorien und Mathematik – mit der deutschen Wikipedia (20100307). Alte Versionen der Skripte habe ich auch erfolgreich auf Wikibooks (20090607) und Wikisource (20091218) angewandt. Zumindest größere Fehler sollten daher nicht mehr auftreten.

Falls dir ein Fehler auffällt, und sei er auch noch so klein, dann melde ihn doch bitte auf der Diskussionsseite.