MediaWiki:Gadget-specialchars.js

Útá Wikipedia.

Note : après avoir publié 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 appuyez sur Ctrl + F5 ou Ctrl + R (⌘ + R sur un Mac).
  • Google Chrome : appuyez sur Ctrl + Maj + R (⌘ + Shift + R sur un Mac).
  • Internet Explorer / Edge : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl + F5.
  • Opera : appuyez sur Ctrl + F5.
/*

 Auteur initial : ThomasV
 Version remaniée pour ln.wiki : Moyogo */

function keycheck() {
 //remplacement des séquences de caractères
 tb = document.getElementById("wpTextbox1")
 if( tb ) {

  tb.onkeyup=function(e) {
  var key = (window.event) ? event.keyCode : e.keyCode;

  startPos = tb.selectionStart;
  endPos = tb.selectionEnd;
  if( endPos==startPos && (key>=32 && key<=255) ) {

   m = tb.value.substring(startPos-2, startPos);
   m3 = tb.value.substring(startPos-3, startPos);
   f = tb.value.substring(startPos);
   todo=true;
   i=2;

   if(m[1]=="'"){     //traitement de l'apostrophe
              m = m[0]+"’"; 
              if(m=="’’") m="''"; 
              if(m=="'’") m="''"; 
   } else switch(m) { //traitement de des séquences de 2 caractères
              case "$e" : m = "ɛ"; break;
              case "$Ɛ" : m = "Ɛ"; break;
              case "$o" : m = "ɔ"; break;
              case "$O" : m = "Ɔ"; break;
              case "$-" : m = "–"; break;
              case "$_" : m = "—"; break;
              case "<<" : m = "« "; break;
              case ">>" : m = " »"; break;
              default : todo = false;
    }
    if(!todo) {      //traitement de des séquences de 3 caractères
             m=m3; todo=true; i=3;
             switch(m) {
              case "$a'" : m="á"; break;
              case "$A'" : m="Á"; break;
              case "$e'" : m="é"; break;
              case "$E'" : m="É"; break;
              case "$i'" : m="í"; break;
              case "$I'" : m="Í"; break;
              case "$o'" : m="ó"; break;
              case "$O'" : m="Ó"; break;
              case "$u'" : m="ú"; break;
              case "$U'" : m="Ú"; break;
              case "..." : m = "…"; break;
              default : todo = false;
    }}

    if(todo) {
	var textScroll = tb.scrollTop;
        h = tb.value.substring(0, startPos-i);
        tb.value = h+m+f;
	tb.selectionStart = startPos-i + m.length;
	tb.selectionEnd = tb.selectionStart;
	tb.scrollTop = textScroll;
    }
   }
  }
 }
 
}

// vérification que ce n'est pas une page JS ou CSS, sinon ne pas faire
// (ce gadget serait une nuisance sur de telles pages)
var PgNm3 = mw.config.get('wgTitle').slice(-3);
var PgNm4 = mw.config.get('wgTitle').slice(-4);
if( (PgNm3!=".js")&&(PgNm4!=".css") ) $(keycheck);