Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/replace

WikiSyntaxTextModBenutzung → Ersetzungen

Benutzerdefinierte Ersetzungen

Das automatisierte Skript nimmt bewusst für alle Benutzer nur solche Veränderungen vor, die keine oder kaum sichtbare Auswirkungen auf den dargestellten Artikel haben. Sie dienen zunächst einmal den Autoren.

Wer darüber hinaus Ersetzungen im Text wünscht, kann sich diese auf eigene Verantwortung zusammenstellen.

Diese benutzerdefinierten Ersetzungen wirken nicht auf geschützte Bereiche.

Bestimmte Ersetzungsregeln greifen jeweils nur bei bestimmten Syntaxelementen:


Allgemeines Bearbeiten

In der js-Datei des Benutzers sind die gewünschten Ersetzungsausdrücke vor dem mw.loader.load zu definieren in den Komponenten des Anwendungsobjekts

  1. mw.libs.WikiSyntaxTextMod.config.mod.comment = Kommentar-Ersetzungsliste;
  2. mw.libs.WikiSyntaxTextMod.config.mod.template = Vorlagen-Ersetzungsliste;
  3. Link-Ersetzungslisten
    • mw.libs.WikiSyntaxTextMod.config.mod.url
    • mw.libs.WikiSyntaxTextMod.config.mod.wikilink
  4. mw.libs.WikiSyntaxTextMod.config.mod.plain = Text-Ersetzungsliste;

Die Reihenfolge der Listen-Definitionen ist unwesentlich. Die Ersetzungen werden in der vorstehend nummerierten Reihenfolge ausgeführt; vorangegangene Ersetzungen werden dabei berücksichtigt.

Ausgangslage ist die vollständige Syntaxpolitur mit allen Normalisierungen der Zeichenkodierung und Formatierungen.

Formal gesprochen sind alle Ersetzungslisten Arrays. Die einzelnen Ersetzungen geschehen in Reihenfolge der Elemente; vorangegangene Ersetzungen wirken auf nachfolgende Aktivitäten. Jedes Element ist eine Transformation, bestehend aus einem Suchkriterium, einem Ersetzungsausdruck und möglichen Flags.

Bevor eine der genannten Komponenten zugewiesen kann, muss das Anwendungsobjekt definiert worden sein. Ein leeres Gerüst dafür wird einmalig wie folgt aufgebaut:

mw.libs.WikiSyntaxTextMod  =  { config:  { lang: { },
                                           load: { },
                                           mod:  { },
                                           page: { }
                                         }
                              };

Komplexe Ersetzungsregel Bearbeiten

Jede Ersetzungsregel ist ein Array mit zwei oder drei Elementen:

  1. Reguläre Ausdrücke (RegExp) sind notwendig, um die gesuchten Zeichenketten vorzugeben.
    • Reguläre Ausdrücke sind ausschließlich als Zeichenketten, nicht aber als sogenannte „Literale“ möglich.
  2. Ein Ersetzungsausdruck ist der zum gefundenen RegExp passende neue Text.
    Möglich ist die Ersetzung von Klammerausdrücken mit $1, $2, usw. für die erste, zweite Klammer.
    • Ein Sonderfall ist die Verwendung einer Funktion an Stelle eines statischen Ersetzungstextes.
  3. flag (optional)
    Steuerung der Suche
    • Mögliche Werte:
      "" – Einmaliges Auffinden, Groß-/Kleinschreibung beachten
      "g"Globale Suche, Groß- und Kleinschreibung beachten
      "i" – Einmaliges Auffinden, Groß-/Kleinschreibung ignorieren (i = ignore case)
      "gi" – Globale Suche, Groß-/Kleinschreibung ignorieren
    • Der Standardwert ist dem Anwendungsfall zu entnehmen.
      • "g" bei Operationen im gesamten Wikitext
      • "" bei Aktivitäten auf einem Bezeichner, wie Vorlagen-Name oder Vorlagen-Parameter-Name

Anwendungsbeispiele Bearbeiten

Bewährte Ersetzungsausdrücke
Problem Lösungsvorschlag
Abkürzung
– als Floskel
Typografie
Abkürzung
– als Linkziel
Abkürzungen
Apostroph Typografie
Aufzählungszeichen Syntax-Lesbarkeit
Bildbeschreibung ergänzen Allgemeiner Text
Bis-Strich Typografie
Englische Ordnungszahlwörter Typografie
Exponenten Syntax-Lesbarkeit
Fußnoten Typografie
Grad-Zahlen bei Temperaturangaben Typografie
Horizontale Ellipse Typografie
http ohne eckige Klammern Verlinkungen
ISSN als Vorlage Allgemeiner Text
Ligaturen Typografie
Linkfix Verlinkungen
Plenken Typografie
prettytable Allgemeiner Text
Punkt nach Punkt Typografie
Römische Zahlen Typografie
Schreibrichtung (Left-to-right/Right-to-left) Syntaxkorrektur
<small> Typografie
Überschrift endet mit Doppelpunkt Typografie
Weblink ohne Beschreibung Verlinkungen
Windows-Zeichen Allgemeiner Text
Worttrennung Typografie

Ein Beispiel für die kontextsensitive dynamische Verkettung wird bei Ligaturen gegeben.

Getestete Definitionen Bearbeiten

Standardmäßig werden die Definitionen sowie deren Elemente auf formale Zulässigkeit geprüft. Dies empfiehlt sich in einer ersten Testphase. Funktioniert dann alles wunschgemäß, kann die Überprüfung abgeschaltet werden (true), um die Prozedur nicht unnötig zu beschäftigen.

mw.libs.WikiSyntaxTextMod.config.mod.tested  =  true;

Bearbeitungskommentar Bearbeiten

Mittels der folgenden Benutzerkonfiguration wird ein Bearbeitungskommentar eingefügt, falls einer der Modifizierungs-Ausdrücke zu einer Ersetzung geführt hat:

mw.libs.WikiSyntaxTextMod.config.mod.summary  =  "linkfix/BKL";

Benutzerdefinierte Funktion Bearbeiten

Diese Funktion ermöglicht statt eines statischen Ersetzungs-Ausdrucks die dynamische Generierung einer Zeichenkette, die in ihrem Format dem statischen Ersetzungsausdruck entsprechen muss.

Aufruf …(about, assigned, apply, adjust)
Parameter Typ Bedeutung
about string Informativer Hinweis
".config.mod.plain"
"url"
"[wiki"
Hinweis auf WSTM.4
assigned number Nummer der Ersetzungsregel
apply number Art der Ersetzung
Standard: 0 – Text-Ersetzung, Linkziel
-1: Prolog; 1: Epilog
adjust string Vorgefundene Zeichenkette
Rückgabewert stringErsetzungs-Ausdruck

Der besondere Vorteil ist, dass auch von außen nicht bekannte Informationen über Kategorien und anderes einfließen können. So kann in der deutschsprachigen Wikipedia geprüft werden auf die beiden Komponenten

  • .l10n.proj.dewiki.got.at – österreichbezogen
  • .l10n.proj.dewiki.got.ch – schweizbezogen

Joker-Ersetzung Bearbeiten

Die Joker-Funktion ist eine benutzerdefinierte Funktion, mit der nach Abschluss aller kontrollierten, behüteten Ersetzungen auf den resultierenden Wikitext eine globale Zeichenketten-Ersetzung vorgenommen werden kann.

Aufruf …(adjust)
Parameter Typ Bedeutung
adjust string Resultierender Wikitext
Rückgabewert false – nichts zu tun
string – veränderter Wikitext

Wie beim Namensgeber reicht die Palette vom albernen Spaßvogel, der mit infantilen Streichen piesackt, bis zum gewalttätigen Psychopathen.