MediaWiki:Gadget-LiensAncresDansCategories.js
Remarque: après avoir sauvegardé, vous devez vider le cache de votre navigateur pour que les changements prennent effet. Mozilla, cliquez sur Actualiser (ou ctrl-r). Internet Explorer / Opera: ctrl-f5. Safari: cmd-r. Konqueror ctrl-r.
/*
* Cet outil ajoute une ancre aux liens des pages dans les catégories,
* vers la section de langue ad hoc
*/
if (mw.config.get('wgNamespaceNumber') === 14) {
jQuery(function () {
// Nom de la catégorie, en ignorant "Catégorie:" ou "Catégorie:Wiktionnaire:" au début
var cat_name = mw.config.get('wgPageName').split(':').reverse()[0],
lang, ancre;
/** On récupère le nom de langue à partir du nom de la catégorie **/
// Pour un lexique
if (cat_name.split('_', 1)[0] == 'Lexique') {
lang = cat_name.replace(/.+_en_(.+)_(?:de_la_|du_|de_l’).+/, '$1');
} // Pour une catégorie d'origine étymologique
else if (/Mots_en_.+_(?:issus|préfixés|suffixés)_.+/.test(cat_name)) {
lang = cat_name.replace(/Mots_en_(.+)_(?:issus|préfixés|suffixés)_.+/, '$1');
} // Pour une thématique
else if (/.+_en_(.+)/.test(cat_name)) {
lang = cat_name.replace(/.+_en_(.+)/, '$1');
} // Pour une catégorie de langue (i.e. la catégorie est catégorisée dans Catégorie:Langues)
else if (mw.config.get('wgCategories').includes('Langues')) {
lang = cat_name;
}
else { // si la catégorie n'est pas liée à une langue (e.g. cat. de maitenance)
return;
}
ancre = '#' + lang.charAt(0).toUpperCase() + lang.slice(1);
jQuery("#mw-pages>.mw-content-ltr li>a").each(function () {
if (this.innerHTML.indexOf(":") < 0) // pages dans l'espace principal uniquement
this.setAttribute("href", this.getAttribute("href", 2) + ancre);
});
});
}