MediaWiki:JSScripts/Titres
Apparence
/*
Améliore la présentation des titres en plaçant chaque partie séparées d'un slash sur une ligne à part. Chaque ligne, exceptée la dernière, est un lien vers le niveau correspondant.
Voici un exemple d'affichage pour Le système d'exploitation Linux/Redirection des entrées/sorties :
Utilisation
Ajoutez la ligne suivante dans votre monobook.js :
obtenir("Titres");
Source
*/
removeOnloadHook( setupTitle ); // Désactive le script par défaut
var slash_exceptions = [ // à compléter ...
// -------------------------------------
[ /\bentrée$/i , /^sortie\b/i ] ,
[ /\bentrées$/i , /^sorties\b/i ] ,
[ /\bsortie$/i , /^entrée\b/i ] ,
[ /\bsorties$/i , /^entrées\b/i ] ,
[ /\bGNU$/i , /^Linux\b/i ] ,
[ /\bTCP$/i , /^IP\b/i ] ,
[ /\bUDP$/i , /^IP\b/i ] ,
[ /\bPL$/i , /^SQL\b/i ] ,
[ /\bPS$/i , /^2\b/i ] ,
[ /\bCP$/i , /^M\b/i ] ,
[ /\bet$/i , /^ou\b/i ] ,
[ /\bou$/i , /^et\b/i ] ,
[ /\bI$/i , /^O\b/i ] ,
[ /\bE$/i , /^S\b/i ] ,
[ /\bP$/i , /^Invoke\b/i ] ,
// -------------------------------------
[ /\s$/ , /^/ ] ,
[ /$/ , /^\s/ ] ];
function findSlashException(word)
{
for(var i=0;i<slash_exceptions.length;i++)
if (word.match(slash_exceptions[i][0])) return i;
return -1;
}
function slashExceptionCollapse(words, titlewords)
{
var new_words=[];
var new_titles=[];
new_words.push(words[0]);
new_titles.push(titlewords[0]);
var k=0;
for(var j=1;j<words.length;j++)
{
var index = findSlashException(new_words[k]);
if ((index>=0)&&(words[j].match(slash_exceptions[index][1])))
{
new_words[k] += "/"+words[j];
new_titles[k] += "/"+titlewords[j];
}
else { new_words.push(words[j]); new_titles.push(titlewords[j]); k++; }
}
return [new_words, new_titles];
}
function newlink(text, urlwiki)
{
var l=document.createElement("a");
l.setAttribute("href", wgArticlePath.replace("$1", urlwiki.replace("?", "%3F")));
l.setAttribute("title", urlwiki);
l.appendChild( document.createTextNode( text ) );
return l;
}
//
// Modifie la présentation du titre de la page
//
function u_setuptitle()
{
hh = document.getElementsByTagName("h1");
for(var el=0;el<hh.length;el++)
{
var n = hh.item(el);
var a = n.attributes.getNamedItem("class");
if ( a&& (a.value=="firstHeading"))
{
var tn=n.childNodes[0];
if (tn.nodeType==3)
{
var dtitlew = n.removeChild(tn).value.split(/\//g), ttitlew;
if (wgPageName) ttitlew=wgPageName.split(/\//g);
else ttitlew = dtitlew;
var tt=slashExceptionCollapse( dtitlew, ttitlew );
var p="";
var tindex = tt[0].length-1;
for ( var i=0 ; i<tindex ; i++)
{
p+=tt[1][i];
n.appendChild( newlink( tt[0][i], p ) );
p+="/";
n.appendChild( document.createElement("br") );
}
n.appendChild( document.createTextNode( tt[0][tindex] ) );
return;
}
}
}
}
// IconesDeTitre après u_setuptitle :
removeOnloadHook(IconesDeTitre);
addOnloadHook(u_setuptitle);
addOnloadHook(IconesDeTitre);
/*
*/