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.
function mes_typos() {
  $.typo.add(function(str) {
// PONCTUATION
    str = str.replace(/( <ref)/g, "<ref"); // pas d'espaces avant les appels de notes
    str = str.replace(/( <\/ref)/g, "<\/ref");
// SUPPRESSION DES LIGATURES
    str = str.replace(/(\u2028)/g, "");
    str = str.replace(/(fi)/g, "fi");
    str = str.replace(/(fl)/g, "fl");
    str = str.replace(/(ff)/g, "ff");
    str = str.replace(/(ſt)/g, "ft");
    str = str.replace(/(st)/g, "st");
// AJOUT AUTOMATIQUE DES EXPOSANTS
    str = str.replace(/(1[°“®º] )/g, "{{1o}}{{lié}}");
    str = str.replace(/(2[°“®º] )/g, "{{2o}}{{lié}}");
    str = str.replace(/(3[°“®º] )/g, "{{3o}}{{lié}}");
    str = str.replace(/(4[°“®º] )/g, "{{4o}}{{lié}}");
    str = str.replace(/(5[°“®º] )/g, "{{5o}}{{lié}}");
    str = str.replace(/(6[°“®º] )/g, "{{6o}}{{lié}}");
    str = str.replace(/(7[°“®º] )/g, "{{7o}}{{lié}}");
    str = str.replace(/(8[°“®º] )/g, "{{8o}}{{lié}}");
    str = str.replace(/(9[°“®º] )/g, "{{9o}}{{lié}}");
    str = str.replace(/n[°“®º] ([0-9]*)/g, "{{n°|$1}}");
    str = str.replace(/( 1er)/g, " {{1er}}");
    str = str.replace(/(?<![0-9])([1-9])e /g, "{{$1e}} "); // cas des nombres de 1 à 9
    str = str.replace(/(?<![0-9])10e /g, "{{10e}} "); // cas du nombre 10
    str = str.replace(/(?<=[0-9])e /g, "{{e}} "); // cas des nombres supérieurs à 11
    str = str.replace(/([0-9])e /g, "{{$1e}} ");
// DÉVELOPPEMENT AUTOMATIQUE DES ABRÉVIATIONS
    str = str.replace(/( éd\.)/g, " {{éd.}}");
    str = str.replace(/( édit\.)/g, " {{édit.}}");
    str = str.replace(/( trad\.)/g, " {{trad.}}");
    str = str.replace(/(ibid\.)/g, "{{ibid.}}");
    str = str.replace(/(Ibid\.)/g, "{{Ibid.|cap}}");
    str = str.replace(/( id\.)/g, " {{id.}}");
    str = str.replace(/( Id\.)/g, " {{Id.|cap}}");
    str = str.replace(/(loc\. cit\.)/g, "{{loc. cit.}}");
    str = str.replace(/(Loc\. cit\.)/g, "{{Loc. cit.|cap}}");
    str = str.replace(/([l\/]\. c\.*)/g, "{{loc. cit.|abr}}");
    str = str.replace(/(op\. cit\.)/g, "{{op. cit.}}");
    str = str.replace(/(Op\. cit\.)/g, "{{Op. cit.|cap}}");
    str = str.replace(/§ ([0-9]*)/g, "{{§|$1}}");
    str = str.replace(/ art\. ([^ \.,…\|\}\)]*)/g, " {{art.|$1}}");
    str = str.replace(/ ch\. ([^ \.,…\|\}\)]*)/g, " {{ch.|$1}}");
    str = str.replace(/ chap\. ([^ \.,…\|\}\)]*)/g, " {{chap.|$1}}");
    str = str.replace(/ col\. ([^ \.,…\|\}\)]*)/g, " {{col.|$1}}");
    str = str.replace(/ fig\. ([^ \.,…\|\}\)]*)/g, " {{fig.|$1}}");
    str = str.replace(/ l\. ([0-9]+)/g, " {{l.|$1}}");
    str = str.replace(/ n\. ([^ \.,…\|\}\)]*)/g, " {{n.|$1}}");
    str = str.replace(/(?<=\s|\()p\. ([^ \.,…\|\}\)]*)/g, "{{pg|$1}}");
    str = str.replace(/(?<=\s|\()P\. ([0-9]+)/g, "{{pg|$1|cap}}");
    str = str.replace(/ pp\. ([^ \.,…\|\}\)]*)/g, " {{ppg|$1}}");
    str = str.replace(/ pl\. ([^ \.,…\|\}\)]*)/g, " {{pl.|$1}}");
    str = str.replace(/ t\. ([^ \.,…\|\}\)]*)/g, " {{t.|{{rom-maj|$1}}}}");
    str = str.replace(/ v\. ([0-9]+)/g, " {{v.|$1}}");
    str = str.replace(/ vol\. ([^ \.,…\|\}\)]*)/g, " {{vol.|{{rom-maj|$1}}}}");
    str = str.replace(/( sq\.)/g, " {{sq.}}");
    str = str.replace(/( sqq\.)/g, " {{sqq.}}");
    str = str.replace(/( et suiv\.)/g, " {{et suiv.}}");
    str = str.replace(/([0-9abcde] suiv\.)/g, "{{suiv.}}");
    str = str.replace(/av. J.-C./g, "{{av. J.-C.}}");
    str = str.replace(/apr. J.-C./g, "{{apr. J.-C.}}");
    str = str.replace(/ J.-C.(?!\}\})/g, "{{lié}}{{J.-C.}}");
// AJOUT AUTOMATIQUE DES MODÈLES DE TITRE DE CIVILITÉ
    str = str.replace(/(D<sup>r<\/sup>)+/g, "{{Dr}}");
    str = str.replace(/Dr /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(/Mr /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(/Mme /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(/ M\. de ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|de $1}}}}");
    str = str.replace(/ M\. des ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|des $1}}}}");
    str = str.replace(/ M\. du ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|du $1}}}}");
    str = str.replace(/ M\. La ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|La $1}}}}");
    str = str.replace(/ M\. Le ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|Le $1}}}}");
    str = str.replace(/(?<=\s)M\. /g, "{{M\.}} ");
    str = str.replace(/(MM\. )/g, "{{MM\.}} ");
    str = str.replace(/Mlle /g, "{{Mlle}} ");
    str = str.replace(/Mgr /g, "{{Mgr}} ");
    str = str.replace(/ P\. /g, " {{P.}} ");
    str = str.replace(/\{\{Dr\}\} ([^ \.,…\|\}]*)/g, "{{Dr\|$1}}");
    str = str.replace(/\{\{Mme\}\} ([^ \.,…\|\}]*)/g, "{{Mme\|$1}}");
    str = str.replace(/\{\{Mlle\}\} ([^ \.,…\|\}]*)/g, "{{Mlle\|$1}}");
    str = str.replace(/\{\{Mgr\}\} ([^ \.,…\|\}]*)/g, "{{Mgr\|$1}}");
    str = str.replace(/\{\{M\.\}\} ([^ \.,…\|\}<]*)/g, "{{M\.\|$1}}");
    str = str.replace(/\{\{MM\.\}\} ([^ \.,…\|\}]*)/g, "{{MM\.\|$1}}");
    str = str.replace(/\{\{M\.\}\}\{\{lié\}\}([^ \.,…\|\}]*)/g, "{{M\.\|$1}}");
    str = str.replace(/\{\{P\.\}\} ([^ \.,…\|\}]*)/g, "{{P\.\|$1}}");
    str = str.replace(/([A-ZÀ-Ü]\.\-[A-ZÀ-Ü]\.)\s+([A-ZÀ-ÜŒ])/g, "{{nobr|$1}}{{lié}}$2");
// CHIFFRES MIS POUR DES LETTRES ET INVERSEMENT
    str = str.replace(/(?<=[\.\!\?]\s)1l(?=\s|s\s)/g, "Il");
    str = str.replace(/(?<![\.\!\?]\s)1l(?=\s|s\s)/g, "il");
    str = str.replace(/(?<=\s|^)1’/g, "l’");
    str = str.replace(/(?<=\s|^)1a(?=\s)/g, "la");
    str = str.replace(/(?<=\s|^)1e(?=\s)/g, "le");
    str = str.replace(/(?<=\s|^)1[er]s(?=\s)/g, "les");
// CHIFFRES ROMAINS
	str = str.replace(/([A-ZÀ-Ü][a-zà-ÿ]+?) ([IVX]+)\b/g, "{{roi|$1|$2}}");
    str = str.replace(/(\n|\-| |\{\{lié\}\}|\()([IVXL]|[IVXLCDM]{2,})([\n-\.,…\|\}\) ])/g, "$1{{rom-maj|$2}}$3");
    str = str.replace(/\.\-\{\{rom-maj\|([IVXLCDM])\}\}\./g, ".-$1.");
    str = str.replace(/(\{\{lié\}\})([ivxlcdm]+)([\n-\.,…\|\}\) ])/g, "$1{{rom|$2}}$3");
    str = str.replace(/(\{\{rom-maj\|Ier\}\})/g, "\{\{Ier\}\}");
    	return str;
  });
}

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