Auf dieser Seite stelle ich verschiedene Tipps für die Erstellung von JavaScript-Anpassungen der Wikipedia zusammen. Eventuell gegebene Empfehlungen spiegeln dabei grundsätzlich nur meine persönliche Meinung wieder.

Wikipedia bietet bekanntlich verschiedene Skins. Standardmäßig ist das Monobook-Skin eingestellt. Persönliche Anpassungen gehen normalerweise über die Seite Benutzer:Benutzername/skinname.ext (bzw. Special:Mypage/skinname.ext), wobei skinname der englische Name des Skins , und .ext für JavaScrips .js und für CSS .css ist.

Tipp: Eigenes JavaScript und CSS beim Klassik-Skin

Bearbeiten

Da der Klassik-Skin früher der defaultmäßig eingestellte Skin war, hieß er früher einfach Default-Skin. Bei der Umbenennung wurden die entsprechenden Dateinamen für benutzerdefiniertes JavaScript und CSS nicht umbenannt. Deshalb wird der Klassik-Skin über die Seiten Special:Mypage/standard.js und Special:Mypage/standard.css angepasst.

Tipp: Feststellen des eingestellten Skins im JavaScript

Bearbeiten

Der Seitenaufbau bei verschiedenen Skins unterscheidet sich z.T. deutlich. Zudem sind bestimmte Scripte nur für bestimmte Skins sinnvoll. Für JavaScript, das auch anderen Benutzern zur Verfügung gestellt werden soll, kann es daher evtll. sinnvoll sein, innerhalb von JavaScript den eingestellten Skin abzufragen. Der eingestellte Skin befindet sich als String in der Variablen skin, die bei jeder Wikipedia-Seite ganz zu Anfang gesetzt wird. Beim Klassik-Skin hat diese Variable den Wert "standard" (nicht "klassik").

Persönliche Empfehlung: Soweit möglich, sollte skinunabhängiger Code verwendet werden.

Namensräume

Bearbeiten

Wikipedia enthält bekanntlich verschiedene Namensräume. Manchmal ist es sinnvoll, bestimmte Funktionen nur für bestimmte Namensräume zu implementieren (ein Beispiel aus der Wikipedia ist die Funktion "Kommentar hinzufügen" (im Monobook-Skin der Tab mit dem "+"), die nicht auf Artikelseiten verwendet werden kann.

Tipp: Aktuellen Namensraum im JavaScript feststellen

Bearbeiten

Zu den Variablen, die von der MediaWiki-Software auf jeder Seite erzeugt werden, zählt auch die Variable wgCanonicalNamespace. Im Artikel-Namensraum ist sie auf den leeren String gesetzt, amsonsten enthält sie den englischen Namen des entsprechenden Namensraums (z.B. "User" für den Namensraum Benutzer). Soll bestimmter Code also nur auf Benutzerseiten ausgeführt werden, dann kann dies folgendermaßen passieren:

if (wgCanonicalNamespace == "User")
  doSomething();

Persönliche Empfehlung: Die im Monobook-Skin verwendeten Klassen für den body-Tag ("ns-0 ltr" etc.) sind skinabhängig. Daher sollten sie nach Möglichkeit nicht verwendet werden. Die Variable wgCanonicalNamespace hingegen ist skinunabhängig.