Benutzer:ⵓ/ARreplace
Wozu dient das Tool
Bearbeiten- Eine Minute ist schnell verflossen, und viel Zeit geht verloren zwischen dem Öffnen einer Seite und dem tatsächlichen Umsetzung eines Edits. Bei vielen gleichen oder ähnlichen Edits hilft dieses Werkzeug die Zeit des Rundherum eines Edit zu reduzieren.
Herkunft
ARreplace steht für Auto-Regexp-Replace und ist ein Fork von Autoformatter. Gegenüber dem Autoformatter fehlen die meisten Funktionen für Syntaxkorrekturen. Für benutzerdefinierte Ersetzungen ist es notwendig, eine Variable autoRegexpReplacements
entweder auf global.js oder in common.js anzulegen.
Installation
BearbeitenFolgende Zeilen entweder in die eigene common.js (zur lokalen Verwendung nur in der deutschsprachigen Wikipedia) oder die eigene global.js im Meta-Wiki (zur globalen Verwendung in allen Wikimedia-Wikis) kopieren:
// [[User:Boshomi/ARreplace.js]]
mw.loader.load( '//de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter/AReplace.js&action=raw&ctype=text/javascript' );
// zusätzlich notwendig für sofortige Anzeige des Diff:
mw.loader.load( '//de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter/autoDiff.js&action=raw&ctype=text/javascript' );
- Achtung: Das Skript benötigt die Einbindung von Autoformatter um funktionsfähig zu sein.
Autoformatter ist einbindbar über Fliegelflagel oder direkt über die Persönliche Benutzerscripte common.js(nur für das lokale Wiki) oder global.js (für alle Wikis)
Zusätzliche ist die Einbindung von Schnark-Diff notwendig, um sofort das Diff zu sehen. Schnark-Diff ist ebenfalls bequem mit Fliegelflagel einbindbar.
// [[User:TMg/autoFormatter.js]]
mw.loader.load( '//de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter.js&action=raw&ctype=text/javascript' );
Beispiel für eine Einbindung: Meta:User:Boshomi/global.js (Autoformatter ist über Fliegelflagel aktiviert)
Verwendung
BearbeitenDamit das ARreplace etwas macht, muss die Variabel autoRegexpReplacement
angelegt und mit zumindest einem Suchen/Ersetzen-Objekt befüllt sein. Die einzelnen Suchen/Ersetzen-Objekte werden in der Reihenfolge durchgeführt, wie sie im Array angeben sind.
- Die Syntax der Variabel
autoRegexpReplacement
Bei der Variablen autoRegexpReplacement
handelt es sich um ein JavaScript-Array (erkennbar an der öffnenden eckigen Klammer zu Beginn und der schließenden eckigen Klammer am Ende).
Dieses Javaskript-Array wird nun mit Objekten gefüllt, die jeweils drei Felder (find
, mend
und neat
) enthalten.
find
ist der Suchtext, dieser kann ein einfacher Text innerhalb von"Hochkommas"
, ein/Regexp/
-Objekt erkennbar an den Shlashes zu Beginn und am Ende oder eine JavaScript-Funktion sein. Einzelne Objekte werden durch einen Beistrich getrennt.mend
(Das Substantiv mend bedeutet sowohl den Flicken als auch den Reparaturvorgang an sich. Hier kommt der Text hin, mit dem die zuvor gefundene Stelle repariert werden sollte. Es können auch Funktionen eingesetzt werden.neat
Des Wort neat bedeutet (u.a.) einfach aber treffend und effizient. Hier wird der Text für die Zusammenfassungszeile angegeben.
- Beispiel für die Befüllung der Variable
autoRegexpReplacements
/* autoRegexpReplacements
Array of objects:
fields:
"find": Suchtext oder js-regexp-object
"mend": Ersetzung
"neat": Text für die Zusammenfassungszeile
*/
var autoRegexpReplacements = [
{"find" : /[<]!--\s*österreichbez\w+\s*--[>]/i,
"mend" : '{{österreichbezogen}}',
"neat" : 'html→template ' /* Regexp zum Ersetzen des html-Kommentars durch die Vorlage */
}
, {"find" : /\{\{Vorlage:/gi ,
"mend" : '{{',
"neat" : '{{Vorlage →{{ ' /* Regexp zum Entfernen des Präfix "Vorlage:" bei Vorlageneinbindungen */
}
, {"find" : /\(\+\s*(1\d{3})\)(?!\.[jgps])/g ,
"mend" : '(† $1)',
"neat" : '+ nach †' /* Regexp zum Ersetzen von (+ 1234) nach († 1234) */
}
, {"find" : 'Österrreich',
"mend" : 'Österreich',
"neat" : 'Rechtschreibung ' /* Schlichte Textersetzung, ein Typo wird gefixt */
}
, {"find" : /(\{\{SORTIERUNG:|\[\[Kategorie:[^\n[\]|]*\|)(?:#:+)?0*(\d+(?:\.\d{3})*)(?!\d)/g,
"mend" : function($0, $1, $2) {
return $1 + '#' + $2.replace(/\d\D*/g, ':') + $2.replace(/\D+/g, '');
}
"neat" : '[[Hilfe:Kategorien #8. Regel: Ziffern am Lemma-Anfang]]' /* Beispiel Ersatz mit Hilfe einer Funktion (Autoformatter Beispiel) */
}
];