Benutzer:Dbenzhuser/Monobook

aus Wikipedia, der freien Enzyklopädie
So könnte es aussehen

Diese Seite dient zur Vorstellung meiner Scripte für monobook.js, bzw. monobook.css und soll es auch Laien ermöglichen in den Genuss der schönen Funktionen zu kommen ;)

Falls nicht anders erwähnt, wurden die Scripte mit der aktuellen Version des Firefox getestet. Falls es bei anderen Browsern zu Problemen kommt freue ich mich immer über Hinweise oder Lösungsvorschläge.

Die einzelnen Scripte sind voneinander unabhängig. Durch einfaches Kopieren der Abschnitte in die eigenen monobook-Dateien sollte alles funktionieren. Ihr findet eure monobook-Dateien unter [[Benutzername/monobook.js]] für JavaScript und [[Benutzername/monobook.css]] für CSS-Angaben. Nach dem Abspeichern muss meist noch der Cache gelehrt werden. Auch brauchen die Server manchmal eine Zeit lang, bis neue Versionen ausgeliefert werden.

Bearbeiten-Links verschieben

Die Art wie die [Bearbeiten]-Links für einzelne Abschnitte in Artikeln dargestellt werden ist sehr unpraktisch:

Es kommt vor allem bei Artikeln mit vielen Bildern am rechten Rand oft zu Fehldarstellungen, bei denen die Links nach unten verrutschen und in den falschen Abschnitten erscheinen. Dass diese Links für den jeweils nächsten Abschnitt eigentlich am Ende des vorherigen stehen ist unlogisch und immer wieder gibt es Anfragen unerfahrener Benutzer, die sich nicht erklären können warum sie immer im falschen Abschnitt landen. Außerdem ist es bei breitem Browserfenster und Artikeln mit vielen auf einander folgenden Überschriften unpraktisch, dass die Links so weit am rechten Rand stehen.

Dieses Script verschiebt diese sogenannten „Editsection“-Buttons direkt neben die jeweiligen Überschrift. Kein Verrutschen mehr, logischere Dokumentenstruktur, keine Suche bei breitem Browserfenster.

Das Script ist in der deutschen und französischen Wikipedia inzwischen standardmäßig für alle Benutzer aktiviert.

monobook.js

/*
* moveEditsection
* Dieses Script verschiebt die [Bearbeiten]-Buttons vom rechten Fensterrand
* direkt rechts neben die jeweiligen Überschriften.
* This script moves the [edit]-buttons from the right border of the window
* directly right next to the corresponding headings.
*
* Zum Abschalten die folgende Zeile (ohne führendes Sternchen) in die eigene
* monobook.js (zu finden unter Benutzername/monobook.js) kopieren:
* var oldEditsectionLinks = true;
*
* dbenzhuser (de:Benutzer:Dbenzhuser)
*/
function moveEditsection() {
    if (typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false) {
        var spans = document.getElementsByTagName("span");
        for(var i = 0; i < spans.length; i++) {
            if(spans[i].className == "editsection") {
                spans[i].style.fontSize = "x-small";
                spans[i].style.fontWeight = "normal";
                spans[i].style.cssFloat = "none";
                spans[i].style.marginLeft = "0px";
                spans[i].parentNode.appendChild(document.createTextNode(" "));
                spans[i].parentNode.appendChild(spans[i]);
            }
        }
    }
}
addOnloadHook(moveEditsection);

Links in Artikel

Dieses Script dient dazu die Suche nach mehrfach vorkommenden Links in Artikeln zu vereinfachen.

Es baut links in der Werkzeugleiste einen neuen Abschnitt ein, in den eine alphabetisch sortierte Liste aller Wikilinks im Artikel eingeblendet werden kann. Direkt im Artikel werden dann alle mehrfach vorkommenden Links gekennzeichnet: Die Zahl in Klammern hinter dem Link gibt an um den wievielten Link auf das gleiche Ziel es sich handelt. Redirects werden jedoch nicht aufgelöst. Beim Überfahren einen Links in der Liste oder im Artikel werden alle anderen mit dem gleichen Ziel hervorgehoben.

Achtung: Auf Seiten mit sehr vielen Links (z.B. Wartungslisten) kann es durchaus ein paar Sekunden dauern, bis der Browser nach Anklicken des Aktivieren-Links wieder reagiert. Bisher nur mit Gecko erfolgreich getestet.

Wer sich dafür interessiert kann sich natürlich auch den Quelltext ansehen.

monobook.js

mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:Dbenzhuser/showRedundantLinks.js&action=raw&ctype=text/javascript');

Admin-Helfer: Automatischer NowCommons-Text

Noch sehr frisch, daher wenig getestet: Nach einem Klick auf den Löschen-Knopf bei einer Seite mit eingebauter NowCommons-Vorlage wird das Eingabefeld für den Löschgrund bereits mit einem Link auf den neuen Speicherort auf den Commons vorbelegt. Sehr gewissenhafte Admins, die Wert darauf legen, dass aus dem Lösch-Logbuch schon hervorgeht durch welches Bild das gelöschte ersetzt wurde, sparen sich die Zeit für ein Copy&Paste. Alle anderen müssen jetzt kein „NC“ mehr ins Feld hämmern.

Sieht im Lösch-Logbuch dann z.B. so aus:

monobook.js

 /*
 * NowCommonsAutoFill
 * Erstellt einen GET-Parameter, der ins Löschformular eingetragen wird.
 * Links mit vorangestelltem "Image:" werden korrigiert.
 */
 
 function NowCommonsAutoFill() {
     // Benötigt eingebaute NowCommons-Vorlage und Löschknopf
     if (document.getElementById("Vorlage_NowCommons") && document.getElementById("ca-delete")) {
         // Sammeln aller Links innerhalb der Vorlage
         var links = document.getElementById("Vorlage_NowCommons").getElementsByTagName("a");
         var url;
         var img;
         for (var i=0; i<links.length; ++i) {
             if (links[i].getAttribute("href").search(/Image\:Image\:/) != -1) {
                 links[i].setAttribute("href", links[i].getAttribute("href").replace(/Image\:Image\:/, "Image:"));
                 var span = document.createElement("span");
                 var spanText = document.createTextNode(" (korr.)");
                 links[i].appendChild(span);
                 span.appendChild(spanText);
                 span.style.color = "red";
             }
             url = links[i].getAttribute("href").split(":");
             if (url[1] == "//commons.wikimedia.org/wiki/Image") {
                 img = url[2];
             }
         }
         img = decodeURIComponent(img).replace(/_/g, " ");
         var deleteLink = document.getElementById("ca-delete").getElementsByTagName("a")[0];
         var newHref = deleteLink.getAttribute("href") + "&wpReason=" + encodeURIComponent("NowCommons: [[Commons:Image:" + img + "|" + img + "]]");
         deleteLink.setAttribute("href", newHref);
     }
 }
 // onload
 addOnloadHook(NowCommonsAutoFill);
 
 /* Ende createAutoFillLinks */