JavaScript Gadget – um fortgeschrittene Bearbeitungswerkzeuge (Editoren) situationsabhängig zu benutzen.
mw.loader.load("//en.wikipedia.org/w/index.php?title=User:PerfektesChaos/js/editorContent/r.js&action=raw&maxage=604800&ctype=text/javascript",
"text/javascript");
Das Gadget wählt unter verschiedenen Werkzeugen genau das aus, das für die aktuelle Situation („Content Model“) wünschenswert ist, und sorgt dafür, dass es nicht zum Konflikt mit einem anderen Werkzeug kommt. Momentan kommen in Betracht:
Ein weiterer Vorteil ist dabei, dass der bald 600 kB große Code von wikEd nicht bei jeder Seite geladen wird; nur, damit dieser feststellt, dass auf dieser Seite nicht editiert wird. Oder zurzeit ein dafür ungeeigneter Browser benutzt würde. Entsprechendes würde auch für künftige andere Werkzeuge gelten.
Die Vorgaben auf einen Blick:
{ CodeEditor: { css: "\\.css$",
javascript: "\\.js$",
lua: [ "/Spielwiese[^/]*/Modul:", 2 ]
},
VisualEditor: false,
WikEd: true
}
Eine „Regel“ ist entweder
true
(jeweilige Vorgabe)false
(explizit abschalten; unabhängig von der Vorgabe)Vorbedingung über die Nummer des Namensraums:
Wenn die Vorbedingung nicht erfüllt ist, greift keine weitere Regel.
Für jeden einzelnen mode
(Programmiersprache) kann und muss ein Schlüsselwort mit einer Regel vereinbart werden.
Die folgenden mode
sind zurzeit Basisausstattung des CodeEditor:
true
.css
(Kleinbuchstaben)true
.js
(Kleinbuchstaben)true
[ "/Spielwiese[^/]*/Modul:", 2 ]
Jedes andere Schlüsselwort bewirkt automatisch, dass das Modul mit zusätzlicher mode
-Unterstützung noch hinzugeladen wird. Beispiel (nach Benutzerkonfiguration des opt
-Objekts):
mw.libs.editorContent.opt.CodeEditor = { c_cpp: "\\.cpp$" };
Genauso wird verfahren, wenn die Konfigurationsvariable wgCodeEditorCurrentLanguage
vorgefunden wird; unabhängig von den Regeln wird dann der CodeEditor geeignet geladen.
Sollten mehrere Regeln für den Seitennamen greifen, ist nicht vorherzusagen, welcher mode
resultiert.
Die pauschale Angabe .opt.CodeEditor = false;
schließt den CodeEditor grundsätzlich aus (ausgenommen im Modul-Namensraum 828
).
Wenn der VisualEditor vom Benutzer aktiviert wurde und eine Seite mit einem anderen Code als Wikitext bearbeitet wird, wird trotzdem ein irritierendes Link auf „Edit“ angezeigt, das den ungeeigneten VisualEditor startet.
Grundsätzlich wird dieses Link entfernt, wenn
.css
oder .js
endet oderwgPageContentModel
nicht den Inhalt wikitext
hat.Vorbedingung über den Browser-Typ:
wikEd darf nicht über Einstellungen von vornherein für jede betrachtete Seite geladen werden.
true
lädt wikEd, sofern nicht der CodeEditor automatisch oder auf Nicht-Dokumentationsseiten im Modul-Namensraum 828
benutzt wird (Seitenname endet weder auf /doc
noch auf /Doku
).false
schaltet die Benutzung von wikEd ab.Keine Maßnahmen an dieser Stelle möglich.
Die individuelle Anpassung ist möglich: In die common.js etc. die folgenden Zeilen einfügen (möglichst vor mw.loader.load, so vorhanden):
if ( typeof mw.libs.editorContent !== "object" ) {
mw.libs.editorContent = {};
}
mw.libs.editorContent.opt = { editor1: rule1,
editor2: rule2
};
Format wie bei den Standard-Vorgaben.
Die Stammseite ist en:User:PerfektesChaos/js/editorContent mit:
Quellcode |
|
ResourceLoader |
|
Namensräume | ≥ 0 |
mw.libs
|
editorContent
|