WikiSyntaxTextModSyntaxpolitur → Syntaxkorrektur

Syntaxkorrektur

Nur wenige Fehler sind so sicher zu erkennen, dass sie risikolos automatisch korrigiert werden können.

Zusätzlich erfolgt eine Analyse auf solche Fehler, die nicht stillschweigend berichtigt werden können. Darauf werden Benutzer abschließend hingewiesen. Ebenfalls ein Hinweis erfolgt bei zuverlässig automatischer Fehlerkorrektur, bei denen aber die Möglichkeit einer seltenen Fehlinterpretation bleibt.

Zurzeit implementiertes Vorgehen

Sortierschlüssel

Betrifft: ((SORTIERUNG:…… und [[Kategorie:*|……]]

Autoren denken zwar an die Umstellung „Nachname, Vorname“ – vergessen jedoch gelegentlich Umlaute usw., insbesondere wenn mehrere auftreten.

Non-ASCII-Zeichen werden gemäß Hilfe:Sortierung berichtigt. Mit Aktivierung des Unicode Collation Algorithm im Projekt wäre dies anders zu konfigurieren.

ASCII-Sonderzeichen (Leerzeichen, Klammern, Komma, #,!, auch Sortierung mehrstelliger Zahlen) usw. werden von der Automatik nicht berücksichtigt, lediglich aufeinander folgende Leerzeichen werden auf genau eines reduziert.

Das erste Zeichen des Sortierschlüssels wird ggf. in Großschreibung umgewandelt. Das ist Tradition, aber inzwischen nicht mehr notwendig.

Wenn ein Globaler Sortierschlüssel (SORTIERUNG:/DEFAULTSORT:) vorhanden ist, werden gleichlautende Schlüssel aus den Einzelkategorien entfernt; ansonsten solche, die identisch mit dem Seitennamen sind.

Sortierschlüssel sind anschließend geschützt gegen Veränderungen durch dieses Skript.

ISBN

checkwiki #69 checkwiki #70

ISBN werden als „magic“ in ein Link umgewandelt. Damit dies möglich ist, müssen von der Formatierung Bedingungen erfüllt sein, die richtiggestellt werden, wenn die Absicht zweifelsfrei interpretiert werden kann (Anzahl der folgenden Ziffern exakt zulässig):

Sowohl als Magic Word wie auch bei einem identifizierbaren Vorlagenparameter:

Im Anschluss wäre in einer ungegliederten ISBN nur noch die Gliederung zwischen Verlag und Titel zu ergänzen. Für praktisch alle Sprachen erfolgt auch dies durch das Skript.

Eine fehlerhafte Prüfzifffer wird natürlich nicht „berichtigt“. Vielmehr werden keine Striche eingefügt oder sonstige Formatierungen vorgenommen, wenn eine fehlerhafte Prüfzifffer festgestellt wird, weil nicht bekannt ist, welche der Ziffern fehlerhaft ist. Hingegen wird eine Warnung angezeigt.

PMID

Wie ISBN werden PMID als „magic“ in ein Link umgewandelt. Damit dies möglich ist, müssen von der Formatierung Bedingungen erfüllt sein, die richtiggestellt werden, wenn die Absicht zweifelsfrei interpretiert werden kann (hinreichende Anzahl der folgenden Ziffern):

Werkzeugleisten-Fehlklicks

Relikte von Fehlklicks auf die Werkzeugleiste wie

werden auf Sonderwunsch entfernt; es hat sie aber offenbar schon jemand systematisch im gesamten Artikelbestand gesucht und bereinigt. Frische Einfügungen werden deshalb nur noch selten angetroffen werden.[1]

Für die deutschsprachige Wikipedia ist nach vorheriger Definition des Anwendungsobjekts die Bereinigung möglich:

mw.libs.WikiSyntaxTextMod.config.Werkzeugleiste  =  true;

Früher wurde das mittels der globalen Variablen WikisyntaxDeutschVieles ausgelöst. Diese entstammte der Frühzeit der Entwicklung (Ende 2009, 2010) und wird 2014 nicht mehr unterstützt werden. Sie sollte ursprünglich Ausführungszeit beim Durchsuchen nach vielen Zeichenketten sparen; durch geänderte Methodik ist das nun obsolet.

Fettdruck in Überschrift und Definitionsterm

In einem Definitionsterm (Zeile beginnt mit ;) kann Fettdruck nicht wahrgenommen werden und wird entfernt.

Automatisch nicht korrigierbare Syntaxfehler

Warnhinweis, falls sich nicht alle Fehler automatisch beheben lassen

Das Grundprinzip des Skriptes ist, dass zweifelsfrei interpretierbare Syntax-Elemente, die etwas unglücklich formatiert und weniger gut für den Menschen zu lesen sind, unauffällig und ohne Benutzereingriff verbessert werden.

Wenn die vorgefundene Syntax nicht eindeutig ist, so ist dem Skript keine Berichtigung möglich. – Beispiel:
== 2 links, rechts 3 ===
Anzahl der Gleichheitszeichen nicht ausgewogen
Eine Korrektur ist nur manuell möglich und muss aus dem Kontext erschlossen werden.

Fehlermeldungen

Mit einem interaktiven Benutzer kommuniziert das Skript wie folgt:

Bei Skriptbenutzung kann die Fehlerliste im Anwendungsobjekt abgefragt werden.

Gestaltung der Mitteilungsbox

Das Aussehen der Mitteilungsbox kann individuell beeinflusst werden. Sie leitet sich von der class=error ab.

Für Routiniers, zum Einfügen in die eigene common.css:

   .error-detail {
      font-size: 90%;
      font-weight: normal;
   }
   .error-explanation {
      display: none;
   }

Mittels Anwendungsobjekt lässt sich die maximale Anzahl der interaktiv angezeigten Fehler definieren (mit integrierter Definition des Anwendungsobjekts):

   mw.libs.WikiSyntaxTextMod  =  { config:  { errorlimit: 25 }  };

Diese Anzahl kann auch auf Null gesetzt werden; dann erfolgt keine Benachrichtigung. Die Sammlung in .errors.collection wird davon nicht beeinflusst.

Beispiele für benutzerdefinierte Ersetzungen

Zu Einzelheiten siehe benutzerdefinierte Ersetzungen.

Überschrift keine eigene Zeile

checkwiki #8

Überschriften müssen auf einer eigenen Zeile stehen. Der nachstehende Ausdruck gewährleistet das:

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
       ["\n(==+) *([^ =\n][^=\n]*[^ =\n]) *\\1 *([^ =\n])",
        "\n$1 $2 $1\n$3"]
                                             ];

Theoretisch denkbar ist, dass es sich um den Code einer Programmiersprache oder um ASCII-Art handeln soll, der nicht durch <code> oder <syntaxhighlight> geschützt wurde.

<br> am Ende eines Absatzes oder eines Listenpunkts oder vor einem Listenpunkt

checkwiki #54

Es ist wirkungslos, wenn am Ende oder vor einem Listenpunkt (genauer: einem Block-Element) ein Zeilenumbruch <br> steht; Gleiches gilt vor einem Absatz-Ende (doppelte Leerzeile).

mw.libs.WikiSyntaxTextMod.config.mod.plain = [
       ["<br /> *(\n+[*#:;])",
        "$1"],
       ["(\n[*#:;].+) *<br /> *\n",
        "$1\n"],
       [" *<br /> *\n *\n",
        "\n\n"]
                                             ];

Ausblick: künftige Möglichkeiten

Mehrfache Spezial-Links

Mehrfache identische Kategorie im Kategorien-Block und mehrfaches identisches Interlanguage im interwiki-Block kann gesucht und die Wiederholung entfernt werden.

Sortierung

Es werden vorläufig keine zusätzlichen automatischen Berichtigungen vorgenommen.

Da der Sortierschlüssel bei Ausführung dieses Skriptes gegen Veränderungen geschützt ist, wäre ein zusätzlicher Steuerparameter erforderlich.

Das selten auftretende Konstrukt [[Kategorie:Mann|Mann]] kann im Einzelfall notwendig und sinnvoll sein; es wäre nur manuell zu berichtigen.

Anmerkungen

  1. Siehe dazu auch Spezial:Missbrauchsfilter/6