Benutzer:Jones/JavaScript
Eingeschränkt aktiv | Aktuell leider aus beruflichen Gründen nur eingeschränkt aktiv. Bei Rückfragen bitte auf der Diskussionsseite oder in Discord melden. |
---|
Im PokéWiki existieren eine ganze Menge kleiner, aber hilfreicher Scripte. Bisher waren diese leider vielfach in verschiedensten Versionen über mehrere Benutzerscripte verteilt. Dies stellt einen Versuch dar, das ganze zu zentrieren, um das ganze für jedermann verfügbar zu machen und Fehler nur einmalig beheben zu müssen. Die Einbindung erfolgt in drei recht simplen Schritten:
Laden der Scripte
Die Scripte werden zentral von Benutzer:Jones/scripts.js geladen. Damit diese zur Verfügung stehen, muss die entsprechende Datei geladen werden. Dies geschieht mittels des folgenden Codes in deiner common.js:
$(function() { $.ajaxSetup({ cache: true }); // Cache wieder aktivieren für getScript $.getScript("//pokewiki.de/index.php?title=Benutzer:Jones/scripts.js&action=raw&ctype=text/javascript&maxage=604800&*", function(data, textStatus, jqxhr) { scripts = new WikiScripts(); scripts.init(); }); });
Hierbei wird zunächst das Script nachgeladen und anschließend eine Instanz der Scripte erstellt, welche anschließend gestartet wird. Hierbei werden die Standardmodule geladen und ausgeführt.
Auswahl der Module
Anstelle der Standardmodule können auch andere Module aktiviert oder aber auch deaktiviert werden. Eine Liste aller verfügbaren Module findet sich hier, weshalb hier beispielhaft die Auswahl für die Module reloadRC
und hideUser
gezeigt wird. Die Auswahl kann über verschiedene Wege erreicht werden:
$(function() { $.ajaxSetup({ cache: true }); // Cache wieder aktivieren für getScript $.getScript("//pokewiki.de/index.php?title=Benutzer:Jones/scripts.js&action=raw&ctype=text/javascript&maxage=604800&*", function(data, textStatus, jqxhr) { scripts = new WikiScripts({ "reloadRC": true, // Aktivieren "hideUser": false // Deaktivieren }); scripts.enableModule("hideUser"); // Wieder aktivieren scripts.disableModule("reloadRC"); // Wieder deaktivieren scripts.disableAllModules(); // Alle Module deaktivieren scripts.enableAllModules(); // Alle Module aktivieren scripts.init(); }); });
Im ersten Fall werden die Moduleinstellungen direkt bei der Erstellung der Scripte übergeben. Hierbei werden nur die übergebenen Module aktiviert oder deaktiviert, alle weiteren Module behalten ihre Standardeinstellung. Ähnlich arbeiten die Varianten mittels enableModule
und disableModule
, mittels derer einzelne Module geschaltet werden. Die letzten beiden Beispiele hingegen schalten alle verfügbaren Module um. Die Methoden können beliebig kombiniert werden, beispielsweise führt der folgende Code dazu, dass einzig das Modul reloadRC
geladen wird:
$(function() { $.ajaxSetup({ cache: true }); // Cache wieder aktivieren für getScript $.getScript("//pokewiki.de/index.php?title=Benutzer:Jones/scripts.js&action=raw&ctype=text/javascript&maxage=604800&*", function(data, textStatus, jqxhr) { scripts = new WikiScripts(); scripts.disableAllModules(); scripts.enableModule("reloadRC"); scripts.init(); }); });
Wichtig dabei ist einzig, dass die Zuweisungszeile (scripts = new WikiScripts();
) als erstes steht (mit eventueller Modulauswahl) und der Aufruf von init (scripts.init();
) als letzter steht.
Beeinflussen des Modulverhaltens
Einige Module können auch mittels Optionen beeinflusst werden, beispielsweise kann bei reloadRC
augewählt werden, wie häufig die Letzten Änderungen aktualisiert werden sollen und ob die Aktualisierung auch durchgeführt werden soll, wenn das Suchfeld nicht leer ist. Die entsprechenden Parameter werden in der Liste der Module genauer erläutert. Alle Parameter haben einen Standardwert, sodass nur jene Parameter gesetzt werden müssen, die auch verändert werden müssen. Die Einstellung erfolgt beim Aufruf der init
-Funktion:
$(function() { $.ajaxSetup({ cache: true }); // Cache wieder aktivieren für getScript $.getScript("//pokewiki.de/index.php?title=Benutzer:Jones/scripts.js&action=raw&ctype=text/javascript&maxage=604800&*", function(data, textStatus, jqxhr) { scripts = new WikiScripts(); scripts.disableAllModules(); scripts.enableModule("reloadRC"); scripts.init({ "reloadRC": { "reloadTime": 300, // Lade alle 5 Minuten neu "reloadIfSearch": true // Lade auch bei gefülltem Suchfeld neu } }); }); });
Dabei wird zunächst der Name des Moduls angegeben und anschließend die Parameter mit ihren jeweiligen Werten. Dabei können auch Parameter für verschiedene Module gesetzt werden.
Module
Abkürzung der Namensräume in der Suche
Um nicht den vollen Namensraum in die Suche eingeben zu müssen kann dieses Modul genutzt werden. Die Ersetzung erfolgt, sobald hinter einer der folgenden Abkürzung ein Doppelpunkt angegeben wird. Groß- und Kleinschreibung werden ignoriert.
B
oderU
: BenutzerD
: DateiH
: HilfeK
: KategorieM
: MediaWikiP
: PokéWikiV
: Vorlage- Eine Kombination der obigen Kürzel mit
D
oderT
ergibt den zugehörigen Diskussionsnamensraum. Beispielsweise führtUT
zu Benutzer Diskussion S
: SpezialT
: Diskussion
Das Modul hat keine Parameter, läuft unter dem Namen searchShortcuts
und ist standardmäßig aktiviert.
Ersetzung mittels Regulärer Ausdrücke
Erlaubt die Nutzung von Regulären Ausdrücken in Artikeln. Dazu kann beim Bearbeiten von Artikel Strg + I gedrückt werden, woraufhin sich zwei Fenster öffnen: In das erste kann der Reguläre Ausdruck geschrieben werden, während in das zweite die Ersetzung geschrieben wird. Unterstützt werden dabei auch Variablen.
Das Modul hat keine Parameter, läuft unter dem Namen regexSearch
und ist standardmäßig deaktiviert.
Regelmäßiges Neuladen der Letzten Änderungen
Um die Letzten Änderungen nicht andauernd manuell neu laden zu müssen kann dieses Modul genutzt werden. Dabei werden eventuelle Parameter, beispielsweise wenn eigene Beiträge versteckt sind, übernommen.
Das Modul hat zwei Parameter, läuft unter dem Namen reloadRC
und ist standardmäßig deaktiviert. Die Parameter sind:
reloadTime
: Die Zeit, nach der die Letzten Änderungen erneut geladen werden, in Sekunden. Datentyp:int
, Standardwert:120
reloadIfSearch
: Ob die Änderungen auch neu geladen werden sollen, wenn aktuell das Suchfeld nicht leer ist. Datentyp:bool
, Standardwert:false
Ausblenden bestimmter Benutzer in den Letzten Änderungen
Sofern bestimmte Benutzer viele Bearbeitungen hintereinander machen, kann es sinnvoll sein, diese in den Letzten Änderungen auszublenden. Mit diesem Modul ist es möglich den Link um einen Parameter hideuser
zu erweitern. Dies geschieht abhängig davon, ob der Link bereits ein Fragezeichen enthält oder nicht: Sofern ein Fragezeichen vorhanden ist, wird der Parameter mittels &hideuser
gesetzt, ansonsten mittels ?hideuser
. Anschließend können mehrere Benutzernamen angegeben werden: hideuser=Moltres;Taisuke
würde beispielsweise Moltres und Taisuke ausblenden.
Das Modul hat einen Parameter, läuft unter dem Namen hideUser
und ist standardmäßig aktiviert. Der Parameter ist:
splitter
: Sofern anstelle des Semikolons ein anderes Zeichen als Trennzeichen genutzt werden soll, kann dieses hier gesetzt werden. Datentyp:string
, Standardwert:;
Hinzufügen eines Links zu Serebii
Während über die Sprachlinks bereits direkte Links zu anderen Quellen verfügbar sind, fehlt mit Serebii eine große Quelle. Dieses Modul stellt einen Versuch dar, zu so vielen Artikeln wie möglich direkte Links zur zugehörigen Seite auf Serebii zu erstellen. Dabei können einzelne Bereiche einzeln ein- oder ausgeschaltet werden, sowie der generierte Link unterschiedlich gehandhabt werden.
Hinweis: Das Modul befindet sich noch in der Entwicklung und unterstützt aktuell nur Orte-Artikel. Dabei werden stellenweise auch falsche Links generiert.
Das Modul hat zwei Parameter, läuft unter dem Namen serebii
und ist standardmäßig deaktiviert. Die Parameter sind:
parseLocations
: Aktivieren oder Deaktivieren der Generierung bei Orte-Artikeln. Datentyp:bool
, Standardwert:true
callback
: Über diesen Parameter kann eine Funktion übergeben werden, welche den Link als Parameter akzeptiert. Standardmäßig ist eine Funktion gesetzt, welche den Link, inklusive Icon, in der oberen Leiste neben die Filb und PokéWiki Links setzt. Datentyp:callback
Automatisches Bestätigen der Cache Leeren Seite
Im Normalfall muss das neu laden einer Seite ohne Cache bestätigt werden. Um dies zu vermeiden bestätigt dieses Modul den entsprechenden Button automatisch.
Das Modul hat keine Parameter, läuft unter dem Namen confirmPurge
und ist standardmäßig aktiviert.
Hinzufügen eines Links zum Testwiki
Für größere Tests wird häufig das Testwiki genutzt. Da stellenweise schnelle Wechsel zwischen den beiden Wikis notwendig sind, stellt dieses Modul einen einfachen Link in der Topbar zur Verfügung, welches den aktuellen Artikel im Testwiki öffnet. Sofern das Modul im Testwiki geladen wird, wird stattdessen der entsprechende Link ins Hauptwiki generiert.
Das Modul hat einen Parameter, läuft unter dem Namen testLink
und ist standardmäßig deaktiviert. Der Parameter ist:
callback
: Über diesen Parameter kann eine Funktion übergeben werden, welche den Link als Parameter akzeptiert. Standardmäßig ist eine Funktion gesetzt, welche den Link, inklusive Icon, in der oberen Leiste neben die Filb und PokéWiki Links setzt. Datentyp:callback
Speichern von Entwürfen
Um den Verlust größerer Bearbeitungen entgegenzuwirken speichert dieses Modul in festgelegten Zeitabständen Entwürfe dieser Bearbeitungen und bietet die Möglichkeit diese wiederherzustellen. Standardmäßig werden dabei nur Änderungen an ganzen Artikeln gespeichert, Änderung an einzelnen Abschnitten jedoch nicht um eventuelle Problematiken durch überschreiben und verschieben von Abschnitten zu vermeiden, über einen Parameter lässt sich dieses Verhalten jedoch auch modifizieren. Das Bestätigen der Form auch durch z.B. die Vorschau löscht die zugehörigen Entwürfe, welche durch ein erneutes Öffnen der Form (wie es bei der Vorschau automatisch geschieht) erst wieder gespeichert werden.
Das Modul hat zwei Parameter, läuft unter dem Namen draftSave
und ist standardmäßig aktiviert. Die Parameter sind:
saveInterval
: Das Interval, in welchem Entwürfe gespeichert werden, in Sekunden. Datentyp:int
, Standardwert:120
draftSection
: Ob Bearbeitungen an einzelnen Abschnitten ebenfalls gespeichert werden sollen, hierbei können – trotz einiger Überprüfungen – Probleme auftreten. Siehe Hinweise weiter oben. Datentyp:bool
, Standardwert:false