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) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
/* jshint esversion: 6, laxbreak: true */
/* globals mw, $, importScript */

/* <nowiki> */

// Configurations, à ne pas exécuter dans le mw.loader.using() pour ne pas avoir de race condition

// [[MediaWiki:Gadget-AncreTitres.js]]
window.AncreTitres = {afficheE: false};

// [[MediaWiki:Gadget-DeluxeHistory.js]]
window.DeluxeHistory_Enabled = {watchlist: false};

// [[Projet:Scripts et gadgets/Notices/BandeauxPortails]]
window.BandeauxPortails_AutoEdit = false;

// [[Projet:Scripts et gadgets/Notices/HotCatsMulti]]
window.hotcat_autocommit = false;


mw.loader.using('mediawiki.util', function () {
    'use strict';

    const page = {
        nsNumber:     mw.config.get('wgNamespaceNumber'),
        nsCanonical:  mw.config.get('wgCanonicalNamespace'),
        fullName:     mw.config.get('wgPageName'),
        action:       mw.config.get('wgAction'),
        special:      mw.config.get('wgCanonicalSpecialPageName'),
        relevantName: mw.config.get('wgRelevantPageName'),
    };
    page.isDiff    = !!mw.config.get('wgDiffNewId');
    page.isEdit    = page.action === 'edit' || page.action === 'submit';
    page.isHistory = page.action === 'history';
    page.isView    = page.action === 'view' && !page.isDiff;

    //--------------------------------------------------------------------------
    //  Allègement titres des pages, pour clarifier les onglets navigateur
    //--------------------------------------------------------------------------
    let newTitle = document.title;
    newTitle = newTitle.replace(/ [—–-] Wikipédia$/, ''); // tiret cadratin, tiret demi-cadratin, "tiret du 6"
    if (page.isEdit) {
        newTitle = '[M] ' + newTitle.replace(/^Modification de /, '');
    }
    else if (page.isHistory) {
        newTitle = '[h] ' + newTitle.replace(/ : Historique des versions$/, '');
    }
    else if (page.isDiff) {
        newTitle = '[d] ' + newTitle.replace(/ : Différence entre versions$/, '');
    }
    document.title = newTitle;

    // compatibilité avec l'aperçu rapide
    // attention : aussi exécuté lors du chargement initial, donc en supplément du code ci-dessus
    if (page.isEdit) {
        mw.hook('wikipage.editform').add(function () {
            const from = /^Modification de (.+) [—–-] Wikipédia$/;
            const to = '[M] $1';
            if (from.test(document.title)) {
                document.title = document.title.replace(from, to);
            }
        });
    }

    //--------------------------------------------------------------------------
    //  Mise en évidence des pages protégées en écriture
    //--------------------------------------------------------------------------
    if (mw.config.get('wgRestrictionEdit', []).includes('sysop') || page.nsCanonical === 'MediaWiki') {
        mw.loader.addStyleTag('#ca-edit > a { color: darkorchid } #ca-edit.selected > a { color: inherit }');
    }

    //--------------------------------------------------------------------------
    //  Liens "5000" pour les historiques, contributions et résultats de recherche
    //--------------------------------------------------------------------------
    $(function ($) {
        $('.mw-pager-navigation-bar').each(function (_, navigationBar) {
            const links = $(navigationBar).find('.mw-numlink'); // elements can be <a>, or <span> for "active links"
            if (!links.length) return;

            const realLinks = links.filter('a');
            if (!realLinks.length) return;

            const link500 = links.filter(':contains(500)');
            if (!link500.length) return;

            const copy = realLinks.first().clone();
            copy[0].search = copy[0].search.replace(/limit=\d+/, 'limit=5000');
            copy[0].innerHTML = '5000';

            link500.after(' | ', copy);
        });
    });

    //--------------------------------------------------------------------------
    //  Rapport gadgets
    //--------------------------------------------------------------------------
    if (page.fullName === 'Utilisateur:Od1n/Rapport_gadgets' && page.isView) {
        importScript('Utilisateur:Od1n/Rapport gadgets.js');
    }

    //--------------------------------------------------------------------------
    //  Onglet WikiBlame
    //--------------------------------------------------------------------------
    if (page.nsNumber >= 0 || page.special === 'Whatlinkshere') {
        $(function ($) { // eslint-disable-line no-unused-vars
            mw.util.addPortletLink(
                'p-cactions',
                'http://wikipedia.ramselehof.de/wikiblame.php?lang=fr&article='
                    + encodeURIComponent(page.relevantName).replaceAll('_', '+')
                    + '&limit=5000&force_wikitags=on',
                'WikiBlame',
                'ca-wikiblame',
                'Ouvrir WikiBlame avec cette page pré-renseignée'
            );
        });
    }

    //--------------------------------------------------------------------------
    //  Onglet wstat.fr pour les modèles et les modules
    //--------------------------------------------------------------------------
    if ([10, 11, 828, 829].includes(page.nsNumber)
    || page.special === 'Whatlinkshere' && /^(Modèle|Module):/.test(page.relevantName)) {
        $(function ($) { // eslint-disable-line no-unused-vars
            const titleForWstat = page.relevantName.replace(/^[^:]+:/, function (match) {
                const replacements = {
                    'Modèle:'           : '',
                    'Discussion_modèle:': '',
                    'Discussion_module:': 'Module:',
                };
                return replacements[match] !== undefined ? replacements[match] : match;
            });
            mw.util.addPortletLink(
                'p-cactions',
                'https://wstat.fr/template/info/' + titleForWstat.replaceAll(' ', '_'),
                'wstat.fr',
                'ca-wstat',
                'Statistiques wstat.fr'
            );
        });
    }

    //--------------------------------------------------------------------------
    //  Boutons "fullurl", "lien modèle" et "spécial:diff"
    //--------------------------------------------------------------------------
    if (page.isEdit) {
        importScript('Utilisateur:Od1n/BoutonsHelpers.js');
    }

    //--------------------------------------------------------------------------
    //  Sécurité anti-publication accidentelle
    //--------------------------------------------------------------------------
    /* code déplacé vers [[meta:User:Od1n/global.js]] */

    //--------------------------------------------------------------------------
    //  [[Aide:Historiques en couleur]]
    //--------------------------------------------------------------------------
    if (page.isHistory || page.special) {
        mw.loader.load('ext.gadget.DeluxeHistory');
    }

    //--------------------------------------------------------------------------
    //  Dans les historiques, rend les boutons « Comparer les versions sélectionnées » middle-cliquables
    //--------------------------------------------------------------------------
    if (page.isHistory) {
        importScript('Utilisateur:Od1n/CompareVersionsButtonsToLinks.js');
    }

    //--------------------------------------------------------------------------
    //  [[Discussion Projet:Scripts et gadgets/2010#Est-il possible d'améliorer le modèle classement alphabétique ?]]
    //  [[MediaWiki:Gadget-SommaireCompactCategorieDeluxe.js]]
    //--------------------------------------------------------------------------
    if (page.nsNumber === 14 && page.isView) {
        importScript('MediaWiki:Gadget-SommaireCompactCategorieDeluxe.js');
    }

    //--------------------------------------------------------------------------
    //  Affiche le nombre de pages liées dans [[Spécial:Pages liées]]
    //  (forké depuis [[Utilisateur:Dr Brains/WhatlinkshereDeluxe.js]])
    //--------------------------------------------------------------------------
    if (page.special === 'Whatlinkshere') {
        importScript('Utilisateur:Od1n/WhatlinkshereDeluxe.js');
    }

    //--------------------------------------------------------------------------
    //  Pour masquer les pages dont on est le dernier contributeur
    //--------------------------------------------------------------------------
    if (page.special === 'Contributions') {
        importScript('Utilisateur:Od1n/HideLastEditedPages.js');
    }

    //--------------------------------------------------------------------------
    //  Affiche des icônes pour les niveaux de protection sur [[Spécial:Modèles les plus liés]]
    //--------------------------------------------------------------------------
    if (page.special === 'Mostlinkedtemplates') {
        importScript('Utilisateur:Od1n/ProtectionsModeles.js');
    }

    //--------------------------------------------------------------------------
    //  Affiche les états des filtres sur [[Wikipédia:AbuseFilter/Tableau de bord]]
    //--------------------------------------------------------------------------
    if (page.fullName === 'Wikipédia:AbuseFilter/Tableau_de_bord' && !page.isHistory) {
        importScript('Utilisateur:Od1n/EtatsFiltres v2.js');
    }

    //--------------------------------------------------------------------------
    //  Sur la page [[MediaWiki:Gadgets-definition]], ajoute des liens de navigation vers les fichiers js/css
    //--------------------------------------------------------------------------
    if (page.fullName === 'MediaWiki:Gadgets-definition' && !page.isHistory) {
        importScript('Utilisateur:Od1n/AddLinksGadgetsDefinition.js');
    }

    //--------------------------------------------------------------------------
    //  Sur les pages de scripts, ajoute des liens de navigation dans les appels importScript() et importStylesheet()
    //--------------------------------------------------------------------------
    if (mw.config.get('wgPageContentModel') === 'javascript' && !page.isHistory) {
        importScript('Utilisateur:Od1n/AddLinksJavaScriptPage.js');
    }

});

/* </nowiki> */