Aller au contenu

Utilisatrice:Raymonde Lanthier/Typos.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.
function mes_typos() {
  $.typo.add(function(str) {
// PONCTUATION
    str = str.replace(/( < )/g, " « ");
    str = str.replace(/( > )/g, " » ");
    str = str.replace(/([\-¬](| )\n)/g, "");
    str = str.replace(/(\n+«\n+)/g, " « ");
    str = str.replace(/(\n+»\n+)/g, " » ");
    str = str.replace(/(» \.)/g, "»\.");
    str = str.replace(/(’ «)/g, "’{{liéFin}}«");
    str = str.replace(/( \n)/g, "\n");
    str = str.replace(/(\( )/g, "\(");
    str = str.replace(/( \))/g, "\)");
    str = str.replace(/(`)/g, "’");
    str = str.replace(/(\_\s*)/g, "");
    str = str.replace(/(–)/g, "—");
    str = str.replace(/(——)/g, "—");
    str = str.replace(/(\n+—\n+)/g, " — ");
    str = str.replace(/(’’)/g, "’");
    str = str.replace(/(\n\w\n)/g, "\n");
    str = str.replace(/\n([A-ZÀ-ÜŒ]{2,})(.+?)\n/g, "\n\n$1$2\n\n");
    str = str.replace(/( <ref)/g, "<ref"); // pas d’espace avant les appels de notes
    str = str.replace(/( <\/ref)/g, "<\/ref");
    // SUPPRESSION DES SAUTS DE LIGNES
    str = str.replace(/\n[“”®\*‘’\-|\/Ÿ\.\!\?,\%@ ]+/g, "\n"); // suppression caractères parasites en début de ligne
    str = str.replace(/( \n)/g, "\n");
    str = str.replace(/([^\n])\n/g, "$1 ");
    str = str.replace(/( \n)([^\n])/g, "\n\n$2");
// MODÈLES
    str = str.replace(/(?<=\s)M\. /g, "{{M\.}} ");
    str = str.replace(/\{\{M\.\}\} ([^ \.,…\|\}<]*)/g, "{{M\.\|$1}}");
    str = str.replace(/ M\. de ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|de $1}}}}");
    str = str.replace(/ M\. le ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|le $1}}}}");
    str = str.replace(/ M\. Le ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|Le $1}}}}");
    str = str.replace(/(MM\.)/g, "{{MM\.}}");
    str = str.replace(/\{\{MM\.\}\} ([^ \.,…\|\}]*)/g, "{{MM\.\|$1}}");
    str = str.replace(/Mme /g, "{{Mme}} ");
    str = str.replace(/\{\{Mme\}\} ([^ \.,…\|\}]*)/g, "{{Mme\|$1}}");
    str = str.replace(/Mmes /g, "{{Mmes}} ");
    str = str.replace(/\{\{Mmes\}\} ([^ \.,…\|\}]*)/g, "{{Mmes\|$1}}");
    str = str.replace(/Mrs /g, "{{Mrs}} ");
    str = str.replace(/\{\{Mrs\}\} ([^ \.,…\|\}]*)/g, "{{Mrs\|$1}}");
    str = str.replace(/Mlle /g, "{{Mlle}} ");
    str = str.replace(/\{\{Mlle\}\} ([^ \.,…\|\}]*)/g, "{{Mlle\|$1}}");
    str = str.replace(/Mlles /g, "{{Mlles}} ");
    str = str.replace(/\{\{Mlles\}\} ([^ \.,…\|\}]*)/g, "{{Mlles\|$1}}");
    str = str.replace(/Dr /g, "{{Dr}} ");
    str = str.replace(/\{\{Dr\}\} ([^ \.,…\|\}]*)/g, "{{Dr\|$1}}");
    str = str.replace(/Mgr /g, "{{Mgr}} ");
    str = str.replace(/\{\{Mgr\}\} ([^ \.,…\|\}]*)/g, "{{Mgr\|$1}}");
    str = str.replace(/(?<=\s|\()art\. ([^ \.,…\|\}\)]*)/g, "{{art.|$1}}");
    str = str.replace(/(?<=\s|\()ch\. ([^ \.,…\|\}\)]*)/g, "{{ch.|$1}}");
    str = str.replace(/(?<=\s|\()chap\. ([^ \.,…\|\}\)]*)/g, "{{chap.|$1}}");
    str = str.replace(/(?<=\s|\()fig\. ([^ \.,…\|\}\)]*)/g, "{{fig.|$1}}");
    str = str.replace(/(?<=\s|\()pag\. ([^ \.,…\|\}\)]*)/g, "{{pag.|$1}}");
    str = str.replace(/(?<=\s|\()(ibid\.)/g, "{{ibid.}}");
    str = str.replace(/(?<=\s|\()(op\. cit\.)/g, "{{op. cit.}}");
    str = str.replace(/(?<=\s|\()(Op\. cit\.)/g, "{{Op. cit.|cap}}");
    str = str.replace(/(?<=\s|\()p\. ([^ \.,…\|\}\)]*)/g, "{{pg|$1}}");
    str = str.replace(/(?<=\s|\()pp\. ([^ \.,…\|\}\)]*)/g, "{{ppg|$1}}");
    str = str.replace(/(?<=\s|\()([Tt]ome) (?=[IVXLCDM])/g, "$1{{lié}}");
    str = str.replace(/ in-12/g, " {{in-12}}");
    str = str.replace(/ in-16/g, " {{nobr|in-16}}");
    str = str.replace(/ in-18/g, " {{nobr|in-18}}");
    str = str.replace(/ in-32/g, " {{nobr|in-32}}");
    str = str.replace(/ in-64/g, " {{nobr|in-64}}");
    str = str.replace(/1 vol./g, " {{vol.|1|inv}}");
    str = str.replace(/([A-ZÀ-Ü]\.\-[A-ZÀ-Ü]\.)\s+([A-ZÀ-ÜŒ])/g, "{{nobr|$1}}{{lié}}$2");
// MÉLANGES
    str = str.replace(/1ui/g, "lui");
    str = str.replace(/(?<=[\.\!\?]\s)1l(?=\s|s\s)/g, "Il");
    str = str.replace(/(?<![\.\!\?]\s)1l(?=\s|s\s)/g, "il");
    str = str.replace(/(1’)/g, "l’");
    str = str.replace(/( 1a )/g, " la ");
    str = str.replace(/( 1e )/g, " le ");
    str = str.replace(/( 1rs )/g, " les ");
    str = str.replace(/arec/g, "avec");
    str = str.replace(/Boume/g, "Bourne");
    str = str.replace(/celte/g, "celle");
    str = str.replace(/Concourt/g, "Goncourt");
    str = str.replace(/CONCOURT/g, "GONCOURT");
    str = str.replace(/ do (?!dièse)(?!bémol)(?!bécarre)(?!majeur)(?!mineur)/g, " de ");
    str = str.replace(/( dune )/g, " d’une ");
    str = str.replace(/( el )/g, " et ");
    str = str.replace(/( oeil )/g, " œil");
    str = str.replace(/( oeuvre )/g, " œuvre");
    str = str.replace(/( oeuvres )/g, " œuvres");
    str = str.replace(/( coeur )/g, " cœur");
    str = str.replace(/( coeurs )/g, " cœurs");
    str = str.replace(/( coeurs )/g, " cœurs");
    str = str.replace(/à rencontre/g, "à l’encontre");
    str = str.replace(/À rencontre/g, "À l’encontre");
    str = str.replace(/(\nÀ rencontre)/g, "À l’encontre");
    str = str.replace(/Bemier/g, "Bernier");
    str = str.replace(/cest /g, "c’est ");
    str = str.replace(/Cest /g, "C’est ");
    str = str.replace(/Emest/g, "Ernest");
    str = str.replace(/enfm/g, "enfin");
    str = str.replace(/Enfm/g, "Enfin");
    str = str.replace(/forle/g, "forte");
    str = str.replace(/( tille)/g, " fille");
    str = str.replace(/( tilles)/g, " filles");
    str = str.replace(/Femand/g, "Fernand");
    str = str.replace(/Foumier/g, "Fournier");
    str = str.replace(/Gazelle/g, "Gazette");
    str = str.replace(/Gomme/g, "Comme");
    str = str.replace(/glus/g, "plus");
    str = str.replace(/Gomment/g, "Comment");
    str = str.replace(/( gui )/g, " qui ");
    str = str.replace(/( H )/g, " Il ");
    str = str.replace(/Koi/g, "Roi");
    str = str.replace(/l’Estoile/g, "L’Estoile");
    str = str.replace(/ma fol/g, "ma foi");
    str = str.replace(/Ma fol/g, "Ma foi");
    str = str.replace(/Marshall-Hall/g, "{{corr|Marshall-Hall|Marshall Hall}}");
    str = str.replace(/( nait )/g, " naît ");
    str = str.replace(/Orner/g, "Omer");
    str = str.replace(/( relire)/g, " retire");
    str = str.replace(/(sièg)/g, "siég");
    str = str.replace(/( t[éèô]te)/g, " tête");
    str = str.replace(/texle/g, "texte");
    str = str.replace(/( tres )/g, " très ");
    str = str.replace(/!’a/g, "l’a");
    str = str.replace(/\\t/g, " ");
    str = str.replace(/( c\.n\.d\.)/g, " c{{·}}n{{·}}d.");
    str = str.replace(/( c\.r\.)/g, " c{{·}}r.");
    str = str.replace(/( c\.s\.v\.)/g, " c{{·}}s{{·}}v.");
    str = str.replace(/( o\.m\.i\.)/g, " o{{·}}m{{·}}i.");
    str = str.replace(/( o\.p\.)/g, " o{{·}}p.");
    str = str.replace(/( p\.a\.)/g, " p{{·}}a.");
    str = str.replace(/( p\.d\.)/g, " p{{·}}d.");
    str = str.replace(/( p\.s\.s\.)/g, " p{{·}}s{{·}}s.");
    str = str.replace(/( s\.j\.)/g, " {{abri|s.j.}}");
    str = str.replace(/(\, 000 )/g, ",000{{lié}}");
    str = str.replace(/(\, 00 )/g, ",00{{lié}}");
    str = str.replace(/(?<=[0-9]+|\{\{1er\}\}|er)\s(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/g, "{{lié}}$1");
// EXPOSANTS
    str = str.replace(/(1[°“®º] )/g, "{{1o}}{{iv|0.5}}");
    str = str.replace(/(2[°“®º] )/g, "{{2o}}{{iv|0.5}}");
    str = str.replace(/(3[°“®º] )/g, "{{3o}}{{iv|0.5}}");
    str = str.replace(/(4[°“®º] )/g, "{{4o}}{{iv|0.5}}");
    str = str.replace(/(5[°“®º] )/g, "{{5o}}{{iv|0.5}}");
    str = str.replace(/(6[°“®º] )/g, "{{6o}}{{iv|0.5}}");
    str = str.replace(/(7[°“®º] )/g, "{{7o}}{{iv|0.5}}");
    str = str.replace(/(8[°“®º] )/g, "{{8o}}{{iv|0.5}}");
    str = str.replace(/(9[°“®º] )/g, "{{9o}}{{iv|0.5}}");
    str = str.replace(/(10[°“®º] )/g, "{{10o}}{{iv|0.5}}");
    str = str.replace(/(11[°“®º] )/g, "{{11o}}{{iv|0.5}}");
    str = str.replace(/(12[°“®º] )/g, "{{12o}}{{iv|0.5}}");
    str = str.replace(/(13[°“®º] )/g, "{{13o}}{{iv|0.5}}");
    str = str.replace(/(14[°“®º] )/g, "{{14o}}{{iv|0.5}}");
    str = str.replace(/(15[°“®º] )/g, "{{15o}}{{iv|0.5}}");
    str = str.replace(/(16[°“®º] )/g, "{{16o}}{{iv|0.5}}");
    str = str.replace(/(17[°“®º] )/g, "{{17o}}{{iv|0.5}}");
    str = str.replace(/(18[°“®º] )/g, "{{18o}}{{iv|0.5}}");
    str = str.replace(/(19[°“®º] )/g, "{{19o}}{{iv|0.5}}");
    str = str.replace(/(20[°“®º] )/g, "{{20o}}{{iv|0.5}}");
    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}}{{lié}}"); // cas des nombres supérieurs à 11
// ITALIQUE
    str = str.replace(/ (L’Action française)(?!')/g, " ''L’Action française''");
    str = str.replace(/ (L’Action nationale)(?!')/g, " ''L’Action nationale''");
    str = str.replace(/ (La Presse)(?!')/g, " ''La Presse''");
    str = str.replace(/ (au Devoir)(?!')/g, " au ''Devoir''");
    str = str.replace(/ (du Devoir)(?!')/g, " du ''Devoir''");
    str = str.replace(/ (Le Devoir)(?!')/g, " ''Le Devoir''");
    str = str.replace(/ (Le Droit)(?!')/g, " ''Le Droit''");
    str = str.replace(/ (O Canada)(?!')/g, " ''Ô{{lié}}Canada''");
    str = str.replace(/ (Ô Canada)(?!')/g, " ''Ô{{lié}}Canada''");
// ACCENTS
    str = str.replace(/(\nA )/g, "\nÀ{{lié}}");
    str = str.replace(/([\!\?\.\\…\»\«\(]) A /g, "$1 À{{lié}}");
    str = str.replace(/( â )/g, " à ");
    str = str.replace(/coté/g, "côté");
    str = str.replace(/Eclair/g, "Éclair");
    str = str.replace(/Ecole/g, "École");
    str = str.replace(/Ecosse/g, "Écosse");
    str = str.replace(/Ecrire/g, "Écrire");
    str = str.replace(/Edition/g, "Édition");
    str = str.replace(/Edouard/g, "Édouard");
    str = str.replace(/Education/g, "Éducation");
    str = str.replace(/Eglise/g, "Église");
    str = str.replace(/Egypte/g, "Égypte");
    str = str.replace(/Elisa/g, "Élisa");
    str = str.replace(/Emard/g, "Émard");
    str = str.replace(/Emery/g, "Émery");
    str = str.replace(/Emile/g, "Émile");
    str = str.replace(/Eminence/g, "Éminence");
    str = str.replace(/Epée/g, "Épée");
    str = str.replace(/Equateur/g, "Équateur");
    str = str.replace(/Equipe/g, "Équipe");
    str = str.replace(/Etait/g, "Était");
    str = str.replace(/Etat/g, "État");
    str = str.replace(/Etes-vous/g, "Êtes-vous");
    str = str.replace(/Etienne/g, "Étienne");
    str = str.replace(/Etre/g, "Être");
    str = str.replace(/Etude/g, "Étude");
    str = str.replace(/Etudes/g, "Études");
    str = str.replace(/Evangéline/g, "Évangéline");
    str = str.replace(/Evangile/g, "Évangile");
    str = str.replace(/Evangiles/g, "Évangiles");
    str = str.replace(/Eve/g, "Ève");
    str = str.replace(/Evénement/g, "Événement");
    str = str.replace(/Evêque/g, "Évêque");
    str = str.replace(/E.-U./g, "{{nobr|É.-U.}}");
    str = str.replace(/(Ile )/g, "Île ");
    str = str.replace(/(Ile-)/g, "Île-");
    str = str.replace(/(Iles )/g, "Îles ");
    str = str.replace(/(Iles-)/g, "Îles-");
    str = str.replace(/maitre/g, "maître");
    str = str.replace(/parait/g, "paraît");
    str = str.replace(/plait/g, "plaît");
// ESPACE INSÉCABLE    
    str = str.replace(/’y /g, "’y{{lié}}");
    str = str.replace(/ y /g, " y{{lié}}");
    str = str.replace(/ Y /g, " Y{{lié}}");
    str = str.replace(/( etc\.)/g, "{{lié}}etc\.");
    str = str.replace(/(, etc\.)/g, ",{{lié}}etc\.");
// CHIFFRES ROMAINS
    str = str.replace(/([A-ZÀ-Ü][a-zà-ÿ]+?) ([IVX]+)\b/g, "{{roi|$1|$2}}");
    str = str.replace(/(\n|\-| |\{\{lié\}\})([IVXLCDM]+)([\n-\.,…\|\}\) ])/g, "$1{{rom-maj|$2}}$3");
    str = str.replace(/(\n|\-| |\{\{lié\}\}|\()([IVXLCDM]+)([\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");
           	return str;
  });
}

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