Utilisateur:Toto256/monobook.js

La bibliothèque libre.

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.
/* importScript('Utilisateur:Acer11/Trévoux.js');*/

// Applique des transformations typographiques sur des portions de textes
// sur lesquels il est sûr de travailler. Voir la var splitter.
function typographie_fragment(text) {
  var typo_def = new Array
    (
     // Format: couple de regexp, remplacement, le flag est toujours "g".
     // L'ordre des définitions a de l'importance dans certain cas.

     // apo droite, apo inverse aussi : très probablement une erreur.
     "([^'])['‘]([^'])", "$1’$2",

     // trois points
     "[.][.][.][.]*", "…",
     // transforme \s1\s en \s!\s
     "([ \f\n\r\t\v\u00A0\u2028\u2029])1([ \f\n\r\t\v\u00A0\u2028\u2029\.…])", "$1!$2",

     "[ ]([,.])", "$1",
     // Ajout d'un espace devant ;:!?
     "([^ ])([;:\!\?])", "$1 $2",
     "([«;:\!\?])([^ …])", "$1 $2",

     // transforme -\s en — 
     "[\x96] ", "— ",
     // - vaut \x2D ou \x96
     "^- ", "— ",
     // transforme -\s en — 
     "-[ \f\n\r\t\v\u00A0\u2028\u2029]", "— ",

     // Séparé des précédentes sinon "word!»" overlap
     "([^ \f\n\r\t\v\u00A0\u2028\u2029])([»])", "$1 $2",

     // Une des regexp précédentes a pu produire des <espace>\n et de
     // toute façon les espaces en fin de ligne n'ont pas d'intérêt
     " (\n|<br)", "$1",

     // Trois majuscules en début de ligne --> paragraphe
     "([^\n])\n([A-Z][A-Z][A-Z])", "$1\n\n$2",

     // Césure
     "-\n([a-zéèçà])", "$1",

     // Suppression des retours chariots
     //"([^\n])\n([^\n])", "$1 $2",

     // Erreurs réputées courantes, ordre alphabétique de l'expression corrigée. 
     "’ ", "’",
     "j ", ", ",
     " ,", ",",
     ",([a-zéèçà])", ", $1"
     );

  var lng = typo_def.length;
  if (lng % 2 != 0)
     return text;
  for (var i = 0; i < lng; i += 2) {
    search = new RegExp(typo_def[i + 0], "g");
    text = text.replace(search, typo_def[i + 1]);
  }
  return text;
}

function typographie() {
  if (1 || wgNamespaceNumber == 104) {
    var editbox = document.getElementById('wpTextbox1');
    if (editbox) {
      var text = editbox.value;
      var new_text = '';
      var last_match = 0;
      // Split the text in part which are safe to transform, e.g we don't want
      // to apply typographie_fragment on a <math>.*</math> or a &nbsp; etc.
      splitter = new RegExp("<math>.*</math>|<[a-zA-z0-9 =\"']>|[</[a-zA-z0-9 =\"']+>|style=\".*\"|&nbsp;|&mdash;|<!--.*-->|\n:[:]*|\n;[;]*|[[][[].*]]", "gm");
      while ((result = splitter.exec(text)) != null) {
	new_text += typographie_fragment(text.slice(last_match, splitter.lastIndex - result[0].length));
	new_text += result;
	last_match = splitter.lastIndex;
      }
      new_text += typographie_fragment(text.slice(last_match))
      editbox.value = new_text;
    }
  }
}

function addButton2(id,alt,comment,source,onclick){
 
	var tb  = document.getElementById("toolbar"); 
	if(tb){
		var image = document.createElement("img");
		image.width = 46;
		image.height = 22;
		image.border = 0;
		image.className = "mw-toolbar-editbutton";
		image.style.cursor = "pointer";
		image.alt = alt;
		image.title = comment;
		image.src = source;
		image.onclick = onclick;
		tb.appendChild(image);
        }
}



function addReplaceButton(){
    addButton2("wpRep","Remplacement auto","Remplacement", "http://upload.wikimedia.org/wikipedia/commons/a/af/Button_Fractur_OCR.png", typographie);
 
}
jQuery( function( $ ) {
  // your inline code to be executed after the page is loaded
  addReplaceButton();
} );


/* Deprecated
$(addReplaceButton);
*/