Benutzer:Schnark/js/wikieditor/Teil 1

Dieser Teil der Dokumentation erklärt, wie du grundlegende Schaltflächen und Auswahllisten zur Werkzeugleiste hinzufügen kannst. Außerdem erfährst du, wie du ganze Gruppen mit solchen Dingen einfügen kannst. Aufbauend auf dieser Grundlage werden dann weitere Konfigurationsmöglichkeiten in den anderen Teilen erklärt.

Grundgerüst

Wenn du der Anleitung gefolgt bist, hast du bereits irgendwo eine Funktion definiert, in die du die Konfigurationsanweisungen schreiben sollst.

Hinzufügen von Schaltflächen und Auswahllisten

Die Funktionen, die zum Hinzufügen von Schaltflächen und Auswahllisten zuständig sind, verlangen zwei Parameter: Die Stelle, an der das entsprechende Element eingefügt werden soll, und ein Code für das Element selbst.

Für den Ort gibt es zunächst zwei Möglichkeiten (in Teil 2 wirst du weitere Varianten erfahren): Die Hauptleiste, für die die Bezeichnung einfach '' (zwei einfache Anführungszeichen) lautet, und die erweiterte Leiste mit dem Namen 'advanced'.

Die möglichen Codes für Schaltflächen stimmen mit denen des Gadgets Extra-Editbuttons überein, wobei ich noch nicht alle übernommen habe. Außerdem gibt es in vielen Fällen eine alternative Bezeichnung, die vorzuziehen ist. Auch der Code wird in (einfache) Anführungszeichen gesetzt.

Als weitere Codes sind die internen Namen bereits vorhandener Schaltflächen möglich, siehe dazu den Teil 3.

CodeSymbolFunktionAnmerkung
sort{{SORTIERUNG:}}
DO{{Erl.}}
ER{{Erledigt}}
FS{{Unsigned}}
HVersteckter Kommentar
IGedankenstrich
K, katKategorie
L, indenteingerückt
MBlockquote
Ngeschütztes Leerzeichen
PD{{Personendaten}}Cursor steht bei NAME, nicht wie bisher bei ALTERNATIVNAMEN
QDefinitionsliste
Q1Anführungszeichen
R1benannter Einzelnachweis
R2wiederholter Einzelnachweis
R3, ref<references />
Sdurchgestrichen
T{{}}
TLLink auf Vorlage
TTFont Schreibmaschinefügt <code></code> ein, da <tt></tt> veraltet ist
Uunterstrichen
ZI{{Zitat}}
math<math></math>
sig--~~~~Unterschrift immer vorhanden (eigentlich soll die Standardschaltfläche im ANR nicht angezeigt werden, was derzeit aber nicht funktioniert), beachtet eine evt. vorhandene Variable usersignature, Standard-Knopf wird entfernt
10waagerechte Linie
willk{{Willkommen}}nur auf Benutzerdiskussionen

Bei den Auswahllisten gibt es folgende Codes (auch diese werden in Anführungszeichen gesetzt):

CodeFunktionAnmerkung
BKLverschiedene Vorlagen für Begriffsklärungen
CODEverschiedene Formatierungen für Quelltexte u. ä.
EKverschiedene Vorlagen für die Eingangskontrolleunterscheidet zwischen Benutzerdiskussions- und anderen Seiten
KALPBewertungsvorlagen für WP:KALPwird nur dort angezeigt
KEBBewertungsvorlagen für WP:KEBwird nur dort angezeigt
MHverschiedene Vorlagen für Mängelhinweise
ND{{Normdaten}}
PCNVorlagen für Pro, Contra und Neutral
SPLinkvorlagen zu Schwesterprojekten

Um eine Schaltfläche hinzuzufügen, verwendest du die Funktion wikieditor.addButton('Ort', 'Code');, für Auswahllisten wikieditor.addSelect('Ort', 'Code');, wobei du jeweils den entsprechenden Ort und den Code angibst. Für mehrere Schaltflächen/Auswahllisten musst du die Funktionen entsprechend mehrmals mit den verschiedenen Codes aufrufen.

Die neue Schaltfläche für die Signatur und einige Auswahllisten mit Unterschriften können durch eine Variable usersignature gesteuert werden. Dazu schreibst du außerhalb der geschweiften Klammern (am besten ganz an den Anfang deiner common.js) die Zeile var usersignature = '...';, wobei du zwischen die Anführungszeichen die gewünschte Signatur einträgst, also etwa

//<nowiki>
var usersignature = '~~~~';
//</nowiki>

falls du keine zwei Striche vor deiner Signatur haben möchtest. Damit die Tilden nicht sofort durch deine Unterschrift ersetzt werden, müssen sie innerhalb eines nowiki-Bereiches stehen. Die Angabe einer eigenen Signatur ist aber optional, alle Unterschriften funktionieren auch ohne sie.

Hinzfügen von Gruppen

Einige Schaltflächen werden meist gemeinsam benötigt, sodass du sie gleich als ganze Gruppe einfügen kannst. Der Befehl hierzu lautet wikieditor.addGroup('Ort', 'Code');. Für den Ort gibt es die selben Möglichkeiten wie oben (also '' und 'advanced'). Für den Code gibt es die folgenden Möglichkeiten:

CodeFunktion
PDSchaltflächen für {{SORTIERUNG:}}, Kategorien und Personendaten

Wenn dir der angezeigte Gruppenname nicht gefällt, kannst du einen eigenen Namen angeben: wikieditor.addGroup('Ort', 'Code', 'Name');

Beispiele

Die Beispiele verwenden für die Einbindung immer die Methode, bei der die Konfigurationsfunktion in einem eigenen Skript definiert ist. Das Wesentliche aber ist nur der Inhalt dieser Konfigurationsfunktion und gilt für alle Konfigurationsmöglichkeiten.

Beispiel 1

mw.libs.wikieditor = { //<nowiki>
 config: function (wikieditor) {
  wikieditor.addButton('advanced', 'math');
  wikieditor.addSelect('', 'KALP');
  wikieditor.addSelect('', 'KEB');
  if ((mw.config.get('wgPageName') !== 'Wikipedia:Kandidaturen_von_Artikeln,_Listen_und_Portalen') &&
      (mw.config.get('wgPageName') !== 'Wikipedia:Kandidaten_für_exzellente_Bilder')) {
        wikieditor.addSelect('advanced', 'PCN');
  }
 }
}; //</nowiki>

Dieses Beispiel fügt in die erweiterte Leiste eine Schaltfläche für mathematische Formeln und in die Hauptleiste Auswahllisten für Bewertungen auf WP:KALP und WP:KEB ein, wobei letztere nur dort angezeigt werden, wo man sie braucht. In allen anderen Fällen wird in der erweiterten Leiste die Auswahlliste für Pro, Contra und Neutral eingefügt.

Beispiel 2

//<nowiki>
var usersignature = '~~~~';
mw.libs.wikieditor = {
 config: function (wikieditor) {
  wikieditor.addButton('', 'sig');
  wikieditor.addButton('', 'sort');
  wikieditor.addButton('', 'kat');
  wikieditor.addButton('', 'PD');
  wikieditor.addSelect('advanced', 'ND');
 }
}; //</nowiki>

In diesem Beispiel wird die Standard-Signatur ersetzt durch eine ohne die beiden Bindestriche. Außerdem werden in der Hauptleiste Schaltflächen für Sortierschlüssel, Kategorien und Personendaten eingefügt. In der erweiterten Leiste wird eine Auswahlliste für Normdaten eingefügt.

Beispiel 3

mw.libs.wikieditor = { //<nowiki>
 config: function (wikieditor) {
  wikieditor.addGroup('', 'PD');
 }
}; //</nowiki>

Dieses Beispiel fügt eine Gruppe für Personendaten und Ähnliches in die Hauptleiste ein.


Dokumentation: EinleitungTeil 1Teil 2Teil 3Teil 4Teil 5

Skripte: wikieditor.jswikieditor.js/basic.jswikieditor.js/de.jsBenutzer:Schnark/js/wikieditor.js/global.jsListe von Beispielanwendungen

Alternativen: Beschreibung der Toolbar-API (englisch) • ähnliches, wesentlich kompakteres Skript von Benutzer:Krinkle (englisch) • alte Version des Skripts