Aide:Monobook

Le Monobook est une page dont dispose chaque utilisateur enregistré permettant de personnaliser l'apparence des pages de GWiki, et d'ajouter des outils pour faciliter l'interaction avec le wiki. Il s'agit en fait de deux pages :

Le nom de la sous-page ne prend pas de majuscule. Il faut écrire non pas Monobook.js mais bien monobook.js.

À qui s'adresse le monobook ?

Le monobook s'adresse aux utilisateurs voulant naviguer plus facilement au sein des pages, optimiser la recherche de contenu, ou encore effectuant des tâches particulières et répétitives. C'est notamment le cas des administrateurs et modérateurs qui passent du temps à faire la maintenance des articles.

À quoi sert le monobook ?

Le fait de créer un compte vous donne accès à de nouvelles fonctionnalités prévues par le logiciel MediaWiki et à un monobook que vous pouvez personnaliser, qui sera chargé à chaque page.

Le monobook personnel permet d'offrir certaines fonctionnalités avancées et personnalisées. Grâce à lui, vous pouvez par exemple ajouter les codes wiki ou HTML pré-écrits que vous avez choisis. Si vous utilisez souvent des formules mathématiques complexes, vous pouvez ainsi les ajouter sans avoir à les taper à chaque fois. Bref, il vous simplifie la wikivie avec les scripts ainsi que rendre les couleurs du site plus à votre goût (par exemple).

Il existe un monobook par défaut qui régit l'ensemble du site et qui est chargé à chaque page. Il s'agit de MediaWiki:Monobook.css et de MediaWiki:Common.css pour l'apparence, ainsi que de MediaWiki:Monobook.js et de MediaWiki:Common.js pour les scripts. (actuellement désactivés sur GWiki)

Personnaliser l'apparence avec les CSS

Créez d'abord une sous-page de la forme Special:Mypage/monobook.css. Attention : le nom de la sous-page ne prend pas de majuscule : il faut écrire non pas Monobook.css mais monobook.css. Ensuite, pour personnaliser l'apparence, il vous faut connaître les rudiments des feuilles de style en cascade (CSS) et/ou prendre exemple sur MediaWiki:Monobook.css, MediaWiki:Common.css ou les monobooks personnalisés des autres utilisateurs.

Voici quelques exemples :

/* '''Changer la couleur de fond des articles''' */
.ns-0 * #content, .ns-0 * #p-cactions li, .ns-0 * #p-cactions li a {
   background:#FFEEEE; /* couleur rose comme cette page */
}
/* '''Afficher les liens déjà visités en vert''' */
a:visited {
   color:green;
}
/* '''Retirer (la plupart) des bandeaux [[Modèle:Ébauche|{{ébauche}}]]''' */
.stub { display:none; }

Vous pouvez prévisualiser (c'est d'ailleurs conseillé) l'apparence ainsi définie. Une fois satisfait, vous enregistrez, et devez recharger le cache (Mozilla / Konqueror / Firefox : Shift-Ctrl-R, IE / Opera : Ctrl-F5, Safari : Cmd-R) pour que les changement deviennent effectifs.

Personnaliser les scripts avec Javascript

De même que pour les CSS, il vous faut d'abord créer une sous-page de la forme Special:Mypage/monobook.js. Attention : le nom de la sous-page ne prend pas de majuscule : il faut écrire non pas Monobook.js mais monobook.js.

Vous pouvez prévisualiser (c'est d'ailleurs conseillé) le résultat des scripts et ainsi voir s'il fonctionnent bien sur votre ordinateur. Quand vous avez fini, vous enregistrez, et devez recharger le cache (Mozilla / Konqueror / Firefox : Shift-Ctrl-R, IE / Opera : Ctrl-F5, Safari : Cmd-R) pour que les changement deviennent effectifs.

Quelques opérations simples

Voici une liste de fonctions de base qui peuvent servir à élaborer des fonctions plus complexes

Ajouter un onglet en haut

Que dois-je ajouter dans ma page Special:Mypage/monobook.js pour me retrouver avec un onglet de plus (tel que un lien vers mon bac à sable) ?

Réponse :

addOnloadHook(function() {
    addPortletLink('p-cactions', '/wiki/Utilisateur:Yug/Bac à sable', 'Ma Zone Test');
;}

C'est aussi valable pour les boîtes à gauche ou la barre de boutons. Il faut remplacer 'p-cactions' par :

  • 'p-personal' : barre utilisateur en haut à droite
  • 'p-navigation' : pour la boite Navigation
  • 'p-Contribuer' : pour la boîte Contribuer
  • 'p-search' : pour la boîte Rechercher
  • 'p-tb' : pour la Boîte à outils

Ajouter une boîte de liens à gauche

Que dois-je ajouter dans ma page monobook pour me retrouver avec un lien spécifique ?

Réponse :

function nouvelleBoite() {
    var l = document.getElementById('column-one');
    if (!l) return;
    l.innerHTML = l.innerHTML
     + '<div class="portlet" id="p-nbx">'
     + ' <h5>Boîte perso</h5>'
     + ' <div class="pBody">'
     + '   <ul>'
     + '     <li><a href="http://fr.wikipedia.org/wiki/Special:Mypage/monobook.js">Mon monobook.js</a></li>'
     + '   </ul>'
     + ' </div>'
     + '</div> ';
}
addOnloadHook(nouvelleBoite);

Importer un monobook d'un autre Wiki

Travaillant sur plusieurs wikis, vous pouvez unifier et synchroniser vos personnalisations et n'avoir à mettre à jour que la page monobook.js de votre compte « principal ». En admettant que GWiki soit le lieu où vous agissez en priorité et où votre monobook.js est déjà personnalisé, copiez/collez dans votre monobook.js de l'autre wiki :

document.write('<'+'script type="text/javascript" src="http://fr.wikipedia.org/w/index.php?title=Utilisateur:Bidule/monobook.js&action=raw&ctype=text/javascript&dontcountme=s" />');

Pour importer votre monobook.css, coller cette ligne dans le monobook.css de l'autre wiki :

@import "http://gwiki.fr/w/index.php?title=Utilisateur:Bidule/monobook.css&action=raw&ctype=text/css";

« Bidule » étant à remplacer par votre nom d'utilisateur de l'autre wiki. En n'oubliant pas, le cas échéant, de transformer les caractères accentués et en remplaçant les espaces de votre nom d'utilisateur par _ (souligné).

Attention
Les règles @import doivent précéder toutes autres règles dans la feuille de style.

Voir aussi

Monobook généraux

Exemples de codes pour le monobook

CSS

Le fichier à modifier est monobook.css.

Classes

Les pages liste de suivi et modifications récentes utilisent deux classes : autocomment and new, liens cassés (voir le source HTML de ces pages). Cela permet de spécifier des polices et des couleurs séparées pour chaque classe.

La page historique utilise les classes : autocomment, user and minor (pour les modifications mineures du code).

Dès lors la police spécifiée pour user s'appliquera à la page historique mais pas à liste de suivi et modifications récentes.

Échantillons

/* pour mettre autre chose à la place du fond monobook */
body { background: Purple; }

/* supprimer l'icône à côté du nom d'utilisateur */
li#pt-userpage { background: none }

/* Rendre plus discret le lien "modifier" */
.editsection {font-size: 0.8em; color: gray}
.editsection a {color: gray; margin: 0.5em}

/* utiliser la configuration du navigateur comme préférences pour la taille du texte et la police */
body, #globalWrapper { font: inherit !important; }

/* toujours souligner les liens */
a { text-decoration: underline; }

/* interdire le soulignement des liens au survol de la souris */
a:hover {text-decoration: none;}

/* changer la couleur des onglets non sélectionnés */
#p-cactions ul li a { background: #C7FDC7; }

/* changer la couleur des onglets sélectionnés */
#p-cactions ul li.selected a { background: white; }

/* changer la couleur de bordure des onglets sélectionnés */
#p-cactions li.selected { border-color: #aaaaaa; }

/* styliser la boite de recherche et ses boutons */
input.searchButton {
    background-color: #efefef !important;
    border: 1px outset !important;  
}
#searchInput { border: 1px inset !important; }

/* désactiver les petits caractères de la balise <small> AJOUTÉS dans les pages */
small {font-size: 1em}

Arrondir les coins

Ceci ne fonctionne que pour les navigateurs utilisant Gecko (Mozilla / Mozilla Firefox).

/* Fenêtres arrondies (pour les navigateurs moz/firefox/gecko) */

.pBody {
   padding: 0.3em 0.3em;
   -moz-border-radius-topright: 0.5em;
}

.portlet h5 {
   -moz-border-radius-topright: 0.5em;
}

#p-cactions ul li, #p-cactions ul li a {  
  -moz-border-radius-topright: 0.5em;
  -moz-border-radius-topleft: 0.5em;
}

Numéroter automatiquement les titres et sous-titres des articles

Note : Fonction dispo dans "Préférences" / "préférences diverses" / "Afficher la numérotation des titres".

.ns-0 #toc {
    counter-reset: chapter -1;
}
.ns-0 H1 {
    counter-reset: chapter;
}
.ns-0 H2:before {
    content: counter(chapter) " · ";
    counter-increment: chapter;
}
.ns-0 H2 {
    counter-reset: section;
}
.ns-0 H3:before {
    content: counter(chapter) "." counter(section) " · ";
    counter-increment: section;
}
.ns-0 H3 {
    counter-reset: sousection;
}
.ns-0 H4:before {
    content: counter(chapter) "." counter(section) "." counter(sousection) " · ";
    counter-increment: sousection;
}

Déplacer les liens de catégorie

Déplace les liens de catégorie dans le coin supérieur droit du cadre de contenu avec un fond gris

/******************************************************************/
/* moving catlinks to the right                                   */
/******************************************************************/

/* déplace la boite du lien de catégorie */
#catlinks {  
  position:absolute;
  z-index:1;
/*  border: 1px solid #aaaaaa; 
  background: #fafaff; */
  right:1em; 
  top:-0.25em;
  width:10.5em;
  float:right;
  margin: 0.2em;
  padding:0.2em;
}

/* format le lien de catégorie lui-même */
p.catlinks {
  color: #aaaaaa;
  font-family: Verdana,sans-serif;
  font-size:67%;
  line-height: 1.5em;
  text-align:left;
  text-indent:0;
  text-transform: none;
  white-space:normal;
  margin: 0.2em;
}

/* format du lien */
p.catlinks a {
  color:#888888;
}

Arrière-plan des pages spéciales

/* Classes à modifier, pour qui ne veut pas de couleur pour les pages spéciales... */
/* .ns-6, .ns-10 et .ns-14 actuellement non modifiées dans /wiki/MediaWiki:Monobook.css */

/* Articles puis pages de discussion des articles */
.ns-0 * #content, .ns-0 * #p-cactions li, .ns-0 * #p-cactions li a {background: #ffffff}
.ns-1 * #content, .ns-1 * #p-cactions li, .ns-1 * #p-cactions li a {background: #ffffff}

/* Pages Utilisateur, puis pages de discussion Utilisateur */
.ns-2 * #content, .ns-2 * #p-cactions li, .ns-2 * #p-cactions li a {background: #ffffff}
.ns-3 * #content, .ns-3 * #p-cactions li, .ns-3 * #p-cactions li a {background: #ffffff}

/* Pages Wikipédia, puis pages de discussion Wikipédia */
.ns-4 * #content, .ns-4 * #p-cactions li, .ns-4 * #p-cactions li a {background: #ffffff}
.ns-5 * #content, .ns-5 * #p-cactions li, .ns-5 * #p-cactions li a {background: #ffffff}

/* Pages Image, puis pages de discussion Image */
.ns-6 * #content, .ns-6 * #p-cactions li, .ns-6 * #p-cactions li a {background: #ffffff}
.ns-7 * #content, .ns-7 * #p-cactions li, .ns-7 * #p-cactions li a {background: #ffffff}

/* Pages GWiki, puis pages de discussion MediaWiki */
.ns-8 * #content, .ns-8 * #p-cactions li, .ns-8 * #p-cactions li a {background: #ffffff}
.ns-9 * #content, .ns-9 * #p-cactions li, .ns-9 * #p-cactions li a {background: #ffffff}

/* Pages Modèle, puis pages de discussion Modèle */
.ns-10 * #content, .ns-10 * #p-cactions li, .ns-10 * #p-cactions li a {background: #ffffff}
.ns-11 * #content, .ns-11 * #p-cactions li, .ns-11 * #p-cactions li a {background: #ffffff}

/* Pages Aide, puis pages de discussion Aide */
.ns-12 * #content, .ns-12 * #p-cactions li, .ns-12 * #p-cactions li a {background: #ffffff}
.ns-13 * #content, .ns-13 * #p-cactions li, .ns-13 * #p-cactions li a {background: #ffffff}

/* Pages Catégorie, puis pages de discussion Catégorie */
.ns-14 * #content, .ns-14 * #p-cactions li, .ns-14 * #p-cactions li a {background: #ffffff}
.ns-15 * #content, .ns-15 * #p-cactions li, .ns-15 * #p-cactions li a {background: #ffffff}

Remplacer les boutons gris

Le code suivant permet de pouvoir configurer les boutons « Consulter », « Rechercher », « Sauvegarder » et « Prévisualisation » (afin de récupérer, par exemple, les boutons blancs à bord bleu apparus avec MediaWiki 1.4 et disparus quelques mois plus tard), mais aussi les boîtes de saisie « recherche » et « résumé de modification », moyennant divers réglages sur les classes ou identificateurs qui leurs correspondent.

/* hide this from ie/mac and konq2.2 */
@media All {

   head:first-child+body input {
       visibility: visible;
       border: 1px solid #2f6fab;  
       color: #000000 ;
       background-color: white;
       vertical-align: middle;
       padding: 0.2em;
   }

}

Indentations sur fond jaune des pages de discussion

Le code suivant permet de faire disparaître, sur les pages de discussion le fond jaune des discussions indentées, ainsi que les lignes de bordure qui les accompagnent.

/* pour désactiver fond jaune et bordure des discussions indentées dans les pages de discussion */
.ns-1 dl, .ns-3 dl, .ns-5 dl, .ns-7 dl, .ns-9 dl, .ns-11 dl, .ns-13 dl, .ns-15 dl
{ border: none}

.ns-1 dl, .ns-3 dl, .ns-5 dl, .ns-7 dl, .ns-9 dl, .ns-11 dl, .ns-13 dl, .ns-15 dl 
{ background-color: transparent }

.ns-1 dl dl, .ns-3 dl dl, .ns-5 dl dl, .ns-7 dl dl, .ns-9 dl dl, .ns-11 dl dl, .ns-13 dl dl, .ns-15 dl dl
{ background-color: transparent }

.ns-1 dl dl dl, .ns-3 dl dl dl, .ns-5 dl dl dl, .ns-7 dl dl dl, .ns-9 dl dl dl, .ns-11 dl dl dl, .ns-13 dl dl dl, .ns-15 dl dl dl 
{ background-color: transparent }

.ns-1 dl dl dl dl, .ns-3 dl dl dl dl, .ns-5 dl dl dl dl, .ns-7 dl dl dl dl, .ns-9 dl dl dl dl, .ns-11 dl dl dl dl, .ns-13 dl dl dl dl, .ns-15 dl dl dl dl
{ background-color: transparent }

.ns-1 dl dl dl dl dl, .ns-3 dl dl dl dl dl, .ns-5 dl dl dl dl dl, .ns-7 dl dl dl dl dl, .ns-9 dl dl dl dl dl, .ns-11 dl dl dl dl dl, .ns-13 dl dl dl dl dl, .ns-15 dl dl dl dl dl
{ background-color: transparent }

.ns-1 dl dl dl dl dl dl, .ns-3 dl dl dl dl dl dl, .ns-5 dl dl dl dl dl dl, .ns-7 dl dl dl dl dl dl, .ns-9 dl dl dl dl dl dl, .ns-11 dl dl dl dl dl dl, .ns-13 dl dl dl dl dl dl, .ns-15 dl dl dl dl dl dl
{ background-color: transparent }

.ns-1 dl dl dl dl dl dl dl, .ns-3 dl dl dl dl dl dl dl, .ns-5 dl dl dl dl dl dl dl, .ns-7 dl dl dl dl dl dl dl, .ns-9 dl dl dl dl dl dl dl, 
.ns-11 dl dl dl dl dl dl dl, .ns-13 dl dl dl dl dl dl dl, .ns-15 dl dl dl dl dl dl dl
{ background-color: transparent }

.ns-1 dl dl dl dl dl dl dl dl, .ns-3 dl dl dl dl dl dl dl dl, .ns-5 dl dl dl dl dl dl dl dl, .ns-7 dl dl dl dl dl dl dl dl, .ns-9 dl dl dl dl dl dl dl dl, .ns-11 dl dl dl dl dl dl dl dl, .ns-13 dl dl dl dl dl dl dl dl, .ns-15 dl dl dl dl dl dl dl dl
{ background-color: transparent }

.ns-1 dl dl dl dl dl dl dl dl dl, .ns-3 dl dl dl dl dl dl dl dl dl, .ns-5 dl dl dl dl dl dl dl dl dl, .ns-7 dl dl dl dl dl dl dl dl dl, .ns-9 dl dl dl dl dl dl dl dl dl, .ns-11 dl dl dl dl dl dl dl dl dl, .ns-13 dl dl dl dl dl dl dl dl dl, .ns-15 dl dl dl dl dl dl dl dl dl 
{ background-color: transparent }

.ns-1 dl dl dl dl dl dl dl dl dl dl, .ns-3 dl dl dl dl dl dl dl dl dl dl, .ns-5 dl dl dl dl dl dl dl dl dl dl, .ns-7 dl dl dl dl dl dl dl dl dl dl, .ns-9 dl dl dl dl dl dl dl dl dl dl, .ns-11 dl dl dl dl dl dl dl dl dl dl, .ns-13 dl dl dl dl dl dl dl dl dl dl, .ns-15 dl dl dl dl dl dl dl dl dl dl
{ background-color: transparent }
/* fin du listing de désactivation */

Centrer et changer la police des catégories

Code pour changer l'alignement (center ou right) et la police des catégories. Ici, l'alignenement est centré et la police est Arial.

p.catlinks {
  font-family:Arial;
  font-size:100 %;
  line-height: 1.5em;
  text-align:center;
  text-indent:0;
  text-transform: none;
  white-space:normal;
  margin: 0.2em;
}

Modifier la police...

Remplacer Comic sans Ms par la police voulue.

...des titres des articles...
h1 {
 font-family: Comic Sans MS;
}
...des boutons rechercher et consulter
input.searchButton {
    font-family: Comic Sans MS;
}
#searchInput { border: 1px inset !important; }

Pas de sommaire

#toc {display:none}


Javascript

Dans ce cas, la page à modifier est monobook.js.

Personnaliser les caractères spéciaux

function customSpecialChars()
{
        var elmtP = document.getElementById("specialchars")
        if (elmtP == undefined)
                return  // not editing mode
        if (elmtP.parentElement)
                elmtP = elmtP.parentElement.getElementsByTagName("P")[0]
        else if (elmtP.parentNode)
                elmtP = elmtP.parentNode.getElementsByTagName("P")[0]
        else
                return

        //pour ajouter au lieu de remplacer, inverser les commentaires :
        //var str = ""
        var str = "Caractères spéciaux: "
        
        // ajoutez vos liens ici ; Note pour débutants : accesskey = shortcut (ALT+accesskey) -- pensez que certaines touches de raccourcis sont déjà actives : e -> edit ; a -> article ; etc.
        str += "<a href=\"javascript:insertTags('Á','','')\" accesskey=\"1\" >Á</a> "
        str += "<a href=\"javascript:insertTags('á','','')\" accesskey=\"2\" >á</a> "

        //pour ajouter au lieu de remplacer, inverser les commentaires :
        //elmtP.innerHTML += str
        elmtP.innerHTML = str
}

addLoadEvent(customSpecialChars)

Ajouter un lien au menu utilisateur (en haut à droite)

Copier/coller le code dans monobook.js puis modifier:

  • nom de la page par l'adresse de la page souhaitée
  • Titre du lien par le titre souhaité
      function addLoadEvent(func) 
      {
         if (window.addEventListener) 
             window.addEventListener("load", func, false);
         else if (window.attachEvent) 
             window.attachEvent("onload", func);
      }

      function nouveauLien() 
      {
        var a = document.getElementById("p-personal");
        if (a) 
        {
          b = a.getElementsByTagName("ul");
          if(b.length > 0)
          {
            b[0].innerHTML = b[0].innerHTML
            + '<li id="ca-nstab-user">'
            + '<a href="/wiki/nom de la page">'
            + 'Titre du lien</a></li>';
          }
        }
      }
      
      addLoadEvent(nouveauLien);