Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
//============================
// Boutons Théâtre
importScript('User:Hsarrazin/theatre.js');
//Test Catégories Encyclopédie
importScript('User:Acélan/Dictionnaire-cat.js');
// affichage d'une box des métadonnées wd //
mw.loader.load( 'https://fr.wikisource.org/w/index.php?title=Utilisateur:0x010C/scripts/databox.js&action=raw&ctype=text/javascript' );

//homonymie en couleurs
mw.loader.load('https://fr.wikipedia.org/wiki/MediaWiki:Gadget-HomonymiesEnCouleur.js&action=raw&ctype=text/javascript');


// WEF editor for wd [https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefedition.js] - essai
//mw.loader.load( 'https://ru.wikipedia.org/w/index.php?title=MediaWiki:WEF AllEditors.js&action=raw&ctype=text/javascript' );

//mw.loader.load( 'https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefedition.js&action=raw&ctype=text/javascript' );/
//mw.loader.load( 'https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefwork.js&action=raw&ctype=text/javascript' );/
//mw.loader.load( 'https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefdocument.js&action=raw&ctype=text/javascript' );
//mw.loader.load( 'https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefbook.js&action=raw&ctype=text/javascript' );
//mw.loader.load( 'https://ru.wikipedia.org/wiki/MediaWiki:Gadget-wefperson.js&action=raw&ctype=text/javascript' );

//==== pour gérer l'avancement avec wikidata
mw.loader.load( '//fr.wikisource.org/w/index.php?title=Utilisateur:Tpt/badges.js&action=raw&ctype=text/javascript'); 

//==== test affichage liens ou pas ====
$.getScript( '//fr.wikisource.org/w/index.php?title=User:ManuD/hle.js&action=raw&ctype=text/javascript' );


//==============================
// Typo Personnel
/*********************
Typo personnel
**********************/
function hsarrazin_typo_add() {
  $.typo.add(function(str) {
    str = str.replace(/( tète )+/g, " tête ");
    str = str.replace(/(…\. )+/g, "… ");
    str = str.replace(/(\.… )+/g, "… ");
    str = str.replace(/( …)+/g, "…");
    str = str.replace(/(‘)+/g, "’");
    str = str.replace(/(`)+/g, "’");
//    str = str.replace(/(– )+/g, "— ");

    str = str.replace(/([—\!\?\.\\…\»\« ] )A /g, "$1À ");     //fix pour À  - devrait générer moins de faux positifs que la situation actuelle
    str = str.replace(/(\nA )+/g, "\nÀ ");    // désactiver pour le Trévoux…

    str = str.replace(/\{\{lang\|([a-z])([a-z])\|''([^']*?)''([^\}]*)\}\}+/g, "''\{\{lang\|$1$2\|$3$4\}\}''");    //fix pour lang
    str = str.replace(/\{\{lang\|gr\|+/g, "\{\{lang\|grc\|");    //fix pour gr au lieu de grc

    str = str.replace(/\{\{réplique\|([^']*?)\}\}/gi, "\{\{Personnage\|$1\|c\}\}");    //fix pour Réplique -> Personnage (pb de fonctionnement)
    str = str.replace(/\{\{Personnage\|([a-zA-ZÉÈéèŒ\. \-]*?)\|c\}\}\{\{didascalie\|,?/g, "\{\{PersonnageD\|$1\|c\|");    //fix pour PersonnageD

    str = str.replace(/(<sup>er<\/sup>)+/g, "\{\{er\}\}"); // fix pour les abbréviations
    str = str.replace(/(\{\{e\|e\}\}<\/sup>)+/g, "\{\{e\}\}");
    str = str.replace(/(<sup>e<\/sup>)+/g, "\{\{e\}\}");
    str = str.replace(/(D<sup>r<\/sup>)+/g, "\{\{Dr\}\}");
    str = str.replace(/(M<sup>r<\/sup>)+/g, "\{\{Mr\}\}");
    str = str.replace(/(M<sup><small>r<\/small><\/sup>)+/g, "\{\{Mr\}\}");
    str = str.replace(/(M<sup>me<\/sup>)+/g, "\{\{Mme\}\}");
    str = str.replace(/(M<sup><small>me<\/small><\/sup>)+/g, "\{\{Mme\}\}");
    str = str.replace(/(M<sup>lle<\/sup>)+/g, "\{\{Mlle\}\}");
    str = str.replace(/(M<sup><small>lle<\/small><\/sup>)+/g, "\{\{Mlle\}\}");
    str = str.replace(/(M<sup>elle<\/sup>)+/g, "\{\{Mlle\}\}");
    str = str.replace(/(M<sup><small>elle<\/small><\/sup>)+/g, "\{\{Mlle\}\}");
    str = str.replace(/(2<sup>me<\/sup>)+/g, "\{\{2me\}\}");
    str = str.replace(/(1<sup>er<\/sup>)+/g, "\{\{1er\}\}");
    str = str.replace(/(I<sup>er<\/sup>)+/g, "\{\{Ier\}\}");
    str = str.replace(/(1\{\{er\}\})+/g, "\{\{1er\}\}");

    str = str.replace(/( <ref>)+/g, "<ref>"); //fix pour les ref
    str = str.replace(/<center>([^']*?)<\/center>/g, "\{\{c\|$1\}\}");  //fix pour les center
    str = str.replace(/<div align=\"center\" >([^']*?)<\/div>/g, "\{\{c\|$1\}\}");  //fix pour les div center
    str = str.replace(/<div style=\"text-align:center; \" \>([^']*?)<\/div>/g, "\{\{c\|$1\}\}");  //fix pour les div center

    str = str.replace(/  /g, " ");
    str = str.replace(/(_)+/g, " ");

    str = str.replace(/\n : */g, "\n:");             // fix pour les : dans les poèmes
    str = str.replace(/(:+) *: */g, "$1:");
    str = str.replace(/:: /g, "::");
    str = str.replace(/<poem>/g, "<poem class=\"verse\">");  //fix pour les poèmes
    str = str.replace(/class= « verse » /g, "class=\"verse\"");

    str = str.replace(/## « /g, "## \"");    // fix pour les sections
    str = str.replace(/ » ##/g, "\" ##");

    str = str.replace(/<big>(.*)<\/big>/gi, "$1"); //suppression des "big" 
    str = str.replace(/&#160;»/g, " »");

    str = str.replace(/ *\n/g, " ");     // Suppression des saut de ligne à l'intérieur d'un paragraphe -->
    str = str.replace(/  /g, "\n\n");               // Fix pour changement de paragraphe
    str = str.replace(/\n +/g, "\n\n");             // Fix pour changement de paragraphe impair
    str = str.replace(/ ?\n*$/g, "");               // Suppression saut de ligne fin de page
    return str;
  });
}

$.when(
	mw.loader.using( [ 'ext.gadget.Typo' ] ),
	$.ready
).then(
	hsarrazin_typo_add
);

/*********************
Indicateurs de qualité
Auteur: Tpt
*********************/
if(typeof $j != 'undefined' && wgNamespaceNumber  == 0 && (wgAction == 'view' || wgAction == 'submit' || wgAction == 'purge')) {
  $(function() {
    var textquality = $('#textquality');
    if (textquality.length) {
       var quality = textquality.attr("class").split(' ')[0];
    } else {
       var quality = '';
    }
    var text = {
      "_00": "La source du texte est inconnue.",
      "_25": "Le texte est en cours d'édition ; il n'y a pour le moment aucune garantie sur sa conformité à une quelconque édition scientifique, et il n'est sans doute pas complet.",
      "_50": "Texte en début de prise en charge et qui est apparemment complet, quoique sans garantie.",
      "_75": "Texte complet et formaté (y compris l'entête, la typographie, les catégories, etc.). Il reste à en corriger les coquilles ou « scannilles ».",
      "_100": "Texte relu par un premier contributeur disposant d'une édition de référence ; cette catégorie inclut les textes copiés d'un autre site utilisant une procédure de vérification similaire.",
      "_200": "Texte relu par au moins deux contributeurs, validé et protégé, car conforme à une source identifiée publiquement vérifiable."
    }
    if(quality != '' && typeof text[quality] != 'undefined') {
      mw.loader.using( ['jquery.ui'], function() {
        var message = $('<div id="qualitydialog" title="État d’avancement"></div>').appendTo("#content").html("<p>" + text[quality] + "</p>");
        message.dialog({
          autoOpen: false,
          modal: true,
          buttons: {
            Ok: function() {
              $(this).dialog("close");
            }
          }
        });
        var li = $('<li></li>').appendTo("#p-Lire div ul");
        var link = $('<a href="#">Avancement du texte</a>').appendTo(li).click(function() {
          message.dialog("open");
        });
      });
    }
  });
}
/*********************
Indicateurs de qualité
Auteur: Tpt
*********************/
if(typeof $j != 'undefined' && wgNamespaceNumber  == 0 && (wgAction == 'view' || wgAction == 'submit' || wgAction == 'purge')) {
  $(function() {
    var textquality = $('#textquality');
    if($('#textquality').attr("class") != '') {
      textquality.insertAfter("#jump-to-nav").css("display", "block");
      if(textquality.hasClass("_00")) {
        textquality.addClass("quality00").html("La source du texte est inconnue.");
      } else if(textquality.hasClass("_25")) {
        textquality.addClass("quality25").html("Texte incomplet");
      } else if(textquality.hasClass("_50")) {
        textquality.addClass("quality50").html("Texte sans scan - à mettre en concordance");
      } else if(textquality.hasClass("_75")) {
        textquality.addClass("quality75").html("Texte complet - à relire");
      } else if(textquality.hasClass("_100")) {
        textquality.addClass("quality100").html("Texte vérifié");
      } else if(textquality.hasClass("_200") || textquality.hasClass("textes validés")) {
        textquality.addClass("qualityvalide").html("Texte validé");
      }
    }
  });
}

function hsarrazin_erreurs_communes() {

    select_multiple_text.exec(/^Page:.*/,
        [
        "\\. 11 ", "i1", "e1", "a1",
        "môme", 
        " h ", 
        " di ", " da ", " do ",
         "\\. A "
        ]);

    select_multiple_text.exec(/^Page:Revue_des_Deux_Mondes_-_18.*/,
        [
        "siège", 
        "collège", "etc. etc."
        ]);
 
    select_multiple_text.exec(/^L.*/,
        [
        "\\. 11", "môme", " h ", "\\. A "
        ]);
}

$.when(
	mw.loader.using( [ 'ext.gadget.Erreurs-communes' ] ),
	$.ready
).then(
	hsarrazin_erreurs_communes
);




//============================================================
//Boutons pour le trévoux : sc et latin
if(mw.config.get('wgNamespaceNumber') == 104 && $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
 if(mw.user.options.get('usebetatoolbar')) {
  mw.loader.using('ext.wikiEditor', function() {
   $(function() {
    $('#wpTextbox1').wikiEditor('addToToolbar', {
      section: 'advanced',
      group: 'format',
      tools: {
        'sc': {
          label: 'Small caps',
          type: 'button',
          icon: '//upload.wikimedia.org/wikipedia/commons/6/6e/Small_caps.svg?size=23px',
          action: {
            type: 'encapsulate',
            options: {
              pre: '{{sc|',
              peri: '',
              post: '}}',
              ownline: false
            }
          }
        },
        'la': {
          label: 'Latin',
          type: 'button',
          icon: '//upload.wikimedia.org/wikipedia/commons/thumb/0/04/ISO_639_Icon_la.svg/23px-ISO_639_Icon_la.svg.png',
          action: {
            type: 'encapsulate',
            options: {
              pre: "''{{lang|la|",
              peri: '',
              post: "}}''",
              ownline: false
            }
          }
        },
        'section': {
          label: 'Section',
          type: 'button',
          icon: '//upload.wikimedia.org/wikipedia/commons/c/c5/Toolbaricon_bold_sharp.png',
          action: {
            type: 'encapsulate',
            options: {
 	      regex: /^\n?(☞? ?)(.*)$/,
 	      regexReplace: '##"$2"##\n<nowiki/>\n\n$1$2',
            }
          }
        }
      }
    });
   });
  });
 } else if (mwCustomEditButtons) {
   mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "//upload.wikimedia.org/wikipedia/commons/a/a2/SmallcapsButton.png",
    "speedTip": "small caps",
    "tagOpen": '{{sc|',
    "tagClose": '}}',
    "sampleText": ""};
   mwCustomEditButtons[mwCustomEditButtons.length] = {
    "imageFile": "/w/skins/common/images/button_sig.png",
    "speedTip": "latin",
    "tagOpen": "''{{lang|la|",
    "tagClose": "}}''",
    "sampleText": ""};
 }
}

 
//==============================
// Compteur de mots d'une page
$( document ).ready(function() {
  var lines = $("div#mw-content-text").text().split("\n");
  var count = 0;
  for(i in lines) {
    var words = lines[i].split(" ");
    for(j in words) {
      if($.trim(words[j])) {
        count++;
      }
    }
  }
  $("ul#footer-places").append("<li>Nombre de mots : " + count + "</li>");
});