MediaWiki:Gadget-FairePageDeDiscussion.js
Apparence
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.
Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;
Firefox (sur GNU/Linux) / Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5./**
* Transformer les pages du Bistro, du BA et les pages spécifiées en page de discussion
*/
/* globals mw, $ */
( function () {
'use strict';
const pageContentHooks = [];
if ( mw.config.get( 'wgNamespaceNumber' ) >= 2 && mw.config.get( 'wgNamespaceNumber' ) % 2 === 0 ) {
$( function ( $ ) { // eslint-disable-line no-unused-vars
var alwaysTransform = ( function () {
if ( ![ 4, 102 ].includes( mw.config.get( 'wgNamespaceNumber' ) ) ) {
return false;
}
var pageName = mw.config.get( 'wgPageName' );
var basePages = [
'Wikipédia:Le_Bistro',
'Wikipédia:Bulletin_des_administrateurs',
'Wikipédia:Bulletin_des_bureaucrates',
'Wikipédia:Bulletin_des_patrouilleurs',
'Wikipédia:Demande_d\'intervention_sur_une_page_protégée',
'Wikipédia:Demande_d\'intervention_sur_un_message_système',
'Wikipédia:Demande_de_protection_de_page',
'Wikipédia:Demande_de_fusion_d\'historiques',
'Wikipédia:Demande_de_purge_d\'historique',
'Wikipédia:Demande_de_renommage',
'Wikipédia:Demande_de_suppression_immédiate',
'Wikipédia:Demande_de_restauration_de_page',
'Wikipédia:Bot/Requêtes',
'Wikipédia:Forum_de_relecture',
'Wikipédia:Le_salon_de_médiation',
'Wikipédia:Legifer',
'Wikipédia:Pages_à_fusionner',
'Wikipédia:Pages_à_scinder',
'Wikipédia:Questions_techniques',
'Wikipédia:Requête_aux_administrateurs',
'Wikipédia:Sondage',
'Wikipédia:Vandalisme_en_cours',
'Wikipédia:Bulletin_du_filtrage',
'Wikipédia:AbuseFilter/Requêtes',
'Wikipédia:AbuseFilter/Faux_positifs',
'Wikipédia:Oracle',
'Projet:Modèle/Demandes',
'Projet:Infobox/Demandes',
];
return basePages.some( function ( basePage ) {
return pageName === basePage || pageName.startsWith( basePage + '/' );
} );
} )();
if ( alwaysTransform ) {
document.body.classList.replace( 'ns-subject', 'ns-talk' );
} else {
pageContentHooks.push( function ( $pageContent ) { // eslint-disable-line no-unused-vars
if ( document.getElementById( 'transformeEnPageDeDiscussion' ) ) {
document.body.classList.replace( 'ns-subject', 'ns-talk' );
} else {
// on repose sur le fait que le code est exécuté uniquement dans les namespaces pairs (subject),
// autrement la ligne suivante irait transformer à tort des pages "talk" en "subject"
document.body.classList.replace( 'ns-talk', 'ns-subject' );
}
} );
}
} );
}
mw.hook( 'wikipage.content' ).add( function ( $content ) {
/*
* Sélection plus précise de l'élément avec le contenu de page,
* pour éviter l'interface de diff, l'interface de modification, le print footer...
* ainsi que les pages qui n'ont pas de contenu (historiques, pages spéciales, etc.)
*/
let $pageContent;
const $parserOutput = $content.find( '.mw-parser-output' );
if ( $parserOutput.length ) { // élément avec le contenu de page
$pageContent = $parserOutput;
} else if ( $content.hasClass( 'mw-parser-output' ) ) { // [[phab:T349298]]
$pageContent = $content;
} else { // pas de contenu de page (historiques, pages spéciales, etc.)
return;
}
for ( const hook of pageContentHooks ) {
hook( $pageContent );
}
} );
} )();