Wikiup:WikiProjekt Straßen/WikisyntaxTextMod

aus Wikipedia, der freien Enzyklopädie

Diese Seite beschäftigt sich mit Möglichkeiten, veraltete Vorlagen automatisiert umzustellen und die Syntax in den Artikeln auf den aktuellen Stand zu bringen.

Allgemeine Fragen zur Funktionsweise dieses Skripts bitte auf der dazugehörigen Diskussionsseite stellen. Spezielle Angelegenheiten zur Umsetzung bestimmter Ersetzungsdefinitionen werden auf dieser Diskussionsseite besprochen.

Zweck

Insgesamt geht es um mehrere Tausend Artikel, die derartige „Straßenschilder“ enthalten. Bei einer längeren Straße wie der Bundesautobahn 7 sind leicht 600 dieser Vorlagen-Einbindungen vorhanden.

Sie werden nicht per Bot-Einsatz umgestellt, sondern manuell einzeln auf Aktualität, Plausibilität und inhaltliche Vollständigkeit geprüft. Die Schlüsseldaten von Hand aus dem alten in das neue Vorlagen-Format zu übertragen würde aber zwangsläufig eine Vielzahl an Fehlern generieren.

Auszug aus der Startseite von WikiSyntaxTextMod

Dieses Skript nimmt bei Beginn einer Bearbeitung erforderliche Ersetzungen automatisch vor und zeigt standardmäßig die Änderungen.

Es eignet sich dazu, nach und nach die Artikel syntaxmäßig auf aktuellen Stand zu bringen. Neben automatischer Syntaxkorrektur können eigene Ideen zur Typografie umgesetzt werden.

Für einige Dutzend Änderungen, für die sich der Einsatz eines bots nicht lohnt, lassen sich beispielsweise

  • Linkfix (BKL usw.)
  • Vorlagenkorrekturen

umsetzen.

Standardmäßig wird nur der Artikel-Namensraum bearbeitet. Andere Namensräume lassen sich zuschalten. Diskussionsseiten werden grundsätzlich nicht verändert.

Die Benutzung ist hier erläutert.

Einbindung in die eigene common.js

In die eigene common.js die folgenden Programmzeilen einfügen:

// [[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod]]
if (mw.config.get("wgNamespaceNumber") === 0) {
   mw.loader.load("//de.wikipedia.org/w/index.php?title=Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/WPST.js&action=raw&ctype=text/javascript",
                  "text/javascript");
}

(Aktualisierung gegenüber 2011 für MW 1.19, WSTM 4, neuere Browser und sonstige Zukunftsaspekte)

Dann passiert beim Bearbeiten eines Artikels automatisch Folgendes:

  • Anweisungen der eigenen common.js werden ausgeführt.
  • WPST.js wird in aktuellster Form aufgerufen und
    • prüft, ob die gemeinsamen /defs von Unbekannten verändert wurden oder unerlaubte Anweisungen enthält
    • ruft dann intern WikiSyntaxTextMod auf; dieses
    • führt die gemeinsamen Ersetzungen und anschließend auch eigene Test-Definitionen aus.

Jeder angemeldete Wikipedia-Benutzer kann das benutzen.

Gemeinsame Ersetzungsdefinitionen

Die Umstellungen basieren auf gemeinsamen Ersetzungsdefinitionen.

Für sie gilt:

  • Prinzipiell können sie von allen Projektmitarbeitern editiert werden (was bei Benutzer-JS nicht möglich ist).
  • Alle kommen in den Genuss der aktuellen Definitionen und müssen nicht abgleichen und kopieren.
  • Die gemeinsamen Ersetzungsdefinitionen enthalten nur die drei ...WPST.modWikilink=[......];...WPST.modURL=[......]; für Ersetzungen, die mit Links zu tun haben bzw. ...WPST.modText=[......]; für reine Text-Ersetzungen.
  • Hinter der allerletzten Definition steht kein Komma. Um damit nicht durcheinander zu kommen, empfiehlt es sich, neue Definitionen weiter oben einzusortieren.

Sicherheitsaspekte

Jeder Benutzer kann die angegebene Methode einsetzen. Damit kein Unsinn pasiert, sind jedoch zwei Sicherheitsmechanismen eingebaut:

  1. Eine wirksame Veränderung der Definitionen ist nur durch namentlich bekannte Projektmitarbeiter möglich. Werden die gemeinsamen Ersetzungsdefinitionen von jemand anders geändert, macht das Skript eine Vollbremsung und führt keine weiteren Aktivitäten mehr aus. Zurzeit können ändern:
    • AleXXw
    • Daniel749
    • Gast32
    • Labant
    • Thomas021071
  2. Die gemeinsame Seite kann nur die beiden genannten Ersetzungsdefinitionen in dem dafür vorgesehenen Format enthalten. Auch bei jeder Abweichung kommt das Stoppschild und es wird kein Code mehr ausgeführt. Dies soll vermeiden, dass nach einer unbemerkten bösartigen Veränderung unerwünschte Anweisungen übersehen wurden.

Ein Nebeneffekt ist, dass bei Änderungen der Definitionen kein Leeren des Browser-Cache mehr erforderlich ist, weil sie bei jeder Benutzung frisch abgerufen und geprüft werden.

Sandkasten für eigene Experimente

Die jetzt gemeinschaftlich nutzbaren Ersetzungen sollten einigermaßen getestet sein, um die Kollegen nicht plötzlich unvermutet Wirrnis anrichten zu lassen. Um neue Regeln erstmal selbst auszuprobieren und gleichzeitig den Pool nutzen zu können, kann man Folgendes in der eigenen common.js verwenden:

var Modif_Text = [
   /*
    Platz für Neues mit Texten
    Dran denken: Hinter der letzten Definition kein Komma mehr!
   */
                   ];
var Modif_Wikilink = [
   /*
    Platz für Experimente mit Wikilinks.
    Dran denken: Hinter der letzten Definition kein Komma mehr!
   */
                   ];
var Modif_URL = [
   /*
    Platz für Experimente mit Weblinks.
    Dran denken: Hinter der letzten Definition kein Komma mehr!
   */
                   ];

// [[Benutzer:PerfektesChaos/js/WikiSyntaxTextMod]]
if (mw.config.get("wgNamespaceNumber") === 0) {
   mw.loader.load("//de.wikipedia.org/w/index.php?title=Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/WPST.js&action=raw&ctype=text/javascript",
                  "text/javascript");
}

Wirkung: Im geeigneten Moment werden die eigenen Definitionen hinten an die gemeinschaftlichen drangehängt. Hat man grad keine am Start, passiert nix Besonderes damit. Erst hinterher wird das normale Skript gestartet.

Hat sich die Neuentwicklung als tauglich erwiesen, kann sie in den Pool eingespeist werden. Aufpassen: Die Definitionen sind voneinander durch Kommata getrennt. Fügt man alle seine eigenen in den Pool ein, muss noch ein Komma ergänzt werden; kopiert man eine aus dem Pool in den eigenen Sandkasten, ist hinten ein Komma zu viel.

Um bei Syntaxfehlern Meldungen sehen zu können, empfiehlt es sich, eine entsprechende Konsole einzuschalten.