Aller au contenu

Utilisateur:Denis Gagne52/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.
/*********************
Typo personnel en complément au Gadget du même nom
Tiré de ElioPrrl/Typos.js
Merci à l’auteur de ce script
**********************/
function dg_typos() {
  $.typo.add(function(str) {
// PONCTUATION
//*********************
	str = str.replace(/(− )/g, "— ");
    str = str.replace(/( < )/g, " « ");
    str = str.replace(/( << )/g, " « ");
    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(/( \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(/( —,)/g, "{{lié}}—,");
    str = str.replace(/( —\.)/g, "{{lié}}—.");
    str = str.replace(/(\n+—\n+)/g, " — ");
    str = str.replace(/(\n\")/g, "\n« ");
    str = str.replace(/(\n“)/g, "\n« ");
    str = str.replace(/(’’)/g, "’");
    str = str.replace(/\n[“”®\*‘’\-\/Ÿ\.\!\?,\%@ ]+/g, "\n"); // suppression caractères parasites en début de ligne
    str = str.replace(/(\n\w\n)/g, "\n");
//*********************/
// SAUTS DE LIGNES
/*********************
    str = str.replace(/( \n)/g, "\n");
    str = str.replace(/([^\n])\n/g, "$1 ");
    str = str.replace(/( \n)([^\n])/g, "\n\n$2");
*********************/
// 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");
//*********************/
// MODÈLES
//*********************
    str = str.replace(/(?<!')(a priori|a posteriori|a fortiori)(?!')/g, "''$1''"); // italiques autour des expressions latines
    str = str.replace(/( <ref)/g, "<ref"); // pas d'espaces avant les appels de notes
    str = str.replace(/( <\/ref)/g, "<\/ref");
    str = str.replace(/( etc\.)/g, "{{lié}}etc\.");
    str = str.replace(/(, etc\.)/g, ",{{lié}}etc\.");
    str = str.replace(/(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre|printemps|été|automne|hiver|an|année)\s(?=[0-9]+)/g, "$1{{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");
    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(/§ ([0-9]*)/g, "{{lié|§ $1}}");
    str = str.replace(/( 1er)/g, "{{lié}}{{1er}}");
    str = str.replace(/( éd\.)/g, " {{éd.}}");
    str = str.replace(/( édit\.)/g, " {{édit.}}");
    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(/ art\. ([^ \.,…\|\}\)]*)/g, " {{art.|$1}}");
    str = str.replace(/ col\. ([^ \.,…\|\}\)]*)/g, " {{col.|$1}}");
    str = str.replace(/ fig\. ([^ \.,…\|\}\)]*)/g, " {{fig.|$1}}");
    str = str.replace(/ n\. ([^ \.,…\|\}\)]*)/g, " {{n.|$1}}");
    str = str.replace(/ p\. ([^ \.,…\|\}\)]*)/g, " {{pg|$1}}");
    str = str.replace(/ pp\. ([^ \.,…\|\}\)]*)/g, " {{ppg|$1}}");
    str = str.replace(/ t\. ([^ \.,…\|\}\)]*)/g, " {{t.|{{rom-maj|$1}}}}");
    str = str.replace(/ t\.\{\{lié\}\}([^ \.,…\|\}\)]*)/g, " {{t.|$1}}");
    str = str.replace(/([Tt]ome) (?=[IVXLCDM])/g, "$1{{lié}}");
    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(/(voy\.)/g, "{{abr|voy.|voyez}}");
    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\. le ([^ \.,…\|\}]*)/g, " {{M\.\|{{lié\|le $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(/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.}}");
//*********************/
// ACCENTS
//*********************
    str = str.replace(/(e’)/g, "é");
    str = str.replace(/([éè]ê)/g, "ê");
    str = str.replace(/ê([éè])/g, "ê");
    str = str.replace(/( [àâ] [éêèe]t[éêèe] )/g, " a été ");
    str = str.replace(/( [àâ] eu(?=s|\s|,|\.))/g, " a eu");
    str = str.replace(/([^t] [àâ] fait)/g, " a fait");
    str = str.replace(/( [àâ] pu )/g, " a pu ");
    str = str.replace(/( [àâ] su )/g, " a su ");
    str = str.replace(/( [àâ] vu)/g, " a vu");
    str = str.replace(/(à là)/g, "à la");
    str = str.replace(/(?<= on| On|’on|qui|Qui) à/g, " a");
    str = str.replace(/(a la fois)/g, "à la fois");
    str = str.replace(/( àme )/g, " âme ");
    str = str.replace(/( dés qu)/g, " dès qu");
    str = str.replace(/( [éôè]t[lr]e )/g, " être ");
    str = str.replace(/( étes )/g, " êtes ");
    str = str.replace(/(vous ôtes)/g, "vous êtes");
    str = str.replace(/(ôtes-vous)/g, "êtes-vous");
    str = str.replace(/( f[éèô]te)/g, " fête");
    str = str.replace(/(fït)/g, "fît");
    str = str.replace(/(foret)/g, "forêt");
    str = str.replace(/([ -])m[éèô]m[eo]([s \.,…\|\}])/g, "$1même$2");
    str = str.replace(/( t[éèô]te)/g, " tête");
    str = str.replace(/(y [àâ] )/g, "y a ");
    str = str.replace(/(accroit)/g, "accroît");
    str = str.replace(/(décroit)/g, "décroît");
    str = str.replace(/([^aém])parait/g, "$1paraît");
    str = str.replace(/( plait)/g, " plaît");
    str = str.replace(/( nait)/g, " naît");
    str = str.replace(/(connait)/g, "connaît");
    str = str.replace(/( chaine)/g, " chaîne");
    str = str.replace(/(déchain)/g, "déchaîn");
    str = str.replace(/(enchain)/g, "enchaîn");
    str = str.replace(/(maitre)/g, "maître");
    str = str.replace(/(traine)/g, "traîne");
    str = str.replace(/(épitre)/g, "épître");
    str = str.replace(/(?<=\s)trés(?=\s|\-)/g, "très");
    str = str.replace(/(?<=[Nn]ous\s)primes/g, "prîmes");
    str = str.replace(/(?<=[Nn]ous\s)mimes/g, "mîmes");
//*********************/
// CHIFFRES MIS POUR DES LETTRES ET INVERSEMENT
//*********************
	str = str.replace(/((?<=[o\s]{2})o|o(?=[o\s]{2})|(?<=[o\s])o(?=[o\s]))/g, "0");
    str = str.replace(/(?<=[A-Za-zà-ÿ])0(?=[a-zà-ÿ])/g, "o");
    str = str.replace(/(?<=[A-Za-zà-ÿ])01(?=[a-zà-ÿ])/g, "oi");
    str = str.replace(/(?<=[A-Za-zà-ÿ])10(?=[a-zà-ÿ])/g, "io");
    str = str.replace(/([a-z])1([a-z])/g, "$1i$2");
    str = str.replace(/(?<=[\.\!\?]\s)1l(?=\s)/g, "Il");
    str = str.replace(/(?<![\.\!\?]\s)1l(?=\s)/g, "il");
    str = str.replace(/( 1a )/g, " la ");
    str = str.replace(/( 1e )/g, " le ");
    str = str.replace(/( 1rs )/g, " les ");
//*********************/
// SCANILLES
//*********************
    str = str.replace(/(cb)/g, "ch");
    str = str.replace(/(tb)/g, "th");
    str = str.replace(/(iï|ïi)/g, "i");
    str = str.replace(/iu(?!m|r|s |s, |s.)/g, "in");
    str = str.replace(/meuts(?=[ \.,…\|\}])/g, "ments");
//    str = str.replace(/[tl]iou(?=[ \.,…\|\}])/g, "tion");
    str = str.replace(/[tl]ious(?=[ \.,…\|\}])/g, "tions");
    str = str.replace(/(?<=\s)([cdjlmnst])[ \*](?=a|e|é|ê|è|i|o|ô|u|y)/g, "$1’");
    str = str.replace(/(qu[ \*])/g, "qu’");
    str = str.replace(/( quil)/g, " qu’il");
    str = str.replace(/(squil)/g, "squ’il");
    str = str.replace(/(quoiquil)/g, "quoiqu’il");
    str = str.replace(/(quon )/g, "qu’on ");
    str = str.replace(/( est ce )/g, " est-ce ");
    str = str.replace(/( estce )/g, " est-ce ");
    str = str.replace(/(Est ce )/g, "Est-ce ");
    str = str.replace(/(Estce )/g, "Est-ce ");
    str = str.replace(/( ail )/g, " ait ");
    str = str.replace(/(au lien d)/g, "au lieu d");
    str = str.replace(/(Au lien d)/g, "Au lieu d");
    str = str.replace(/(avals)/g, "avais");
    str = str.replace(/(?<![Tt]ra)vail(?=[ \.,…\|\}])/g, "vait");
    str = str.replace(/(?<=\s)a[ry]e[co]/g, "avec");
//    str = str.replace(/( bêle)/g, " bête");
//    str = str.replace(/( bêles)/g, " bêtes");
    str = str.replace(/( bion)/g, " bien");
    str = str.replace(/( cc )/g, " ce ");
    str = str.replace(/( sc )/g, " se ");
    str = str.replace(/([\n—\!\?\.\\…\»\«\( ] )Celte/g, "$1Cette");
//    str = str.replace(/(celte)/g, "cette");
    str = str.replace(/cotte(?!\sde)/g, "cette");
    str = str.replace(/ cle /g, " de ");
    str = str.replace(/ dc /g, " de ");
    str = str.replace(/ do (?!dièse)(?!bémol)(?!bécarre)(?!majeur)(?!mineur)/g, " de ");
    str = str.replace(/( da[ur]s )/g, " dans ");
    str = str.replace(/(?<!au\s)(?<!de\s)(?<!par\s)(?<!\-)delà/g, "de la");
    str = str.replace(/(Dien )/g, "Dieu ");
    str = str.replace(/( cloute)/g, " doute");
    str = str.replace(/(effaner)/g, "effacer");
    str = str.replace(/( eflet)/g, " effet");
    str = str.replace(/( alles )/g, " elles ");
    str = str.replace(/( entant)/g, " enfant");
    str = str.replace(/\seu(?=\ssorte|\seffet|\sfait|\sgénéral|\smarche|\svertu|\sdétail)/g, "en");
    str = str.replace(/(en roule)/g, "en route");
    str = str.replace(/(en égard)/g, "eu égard");
    str = str.replace(/(cst)/g, "est");
    str = str.replace(/( c[lt] )/g, "et");
    str = str.replace(/( ot )/g, " et ");
    str = str.replace(/( e[li] )/g, " et ");
    str = str.replace(/( ea )/g, " eu ");
    str = str.replace(/( étail)/g, " était");
    str = str.replace(/(?<=par\s|un\s)exempte/g, "exemple");
    str = str.replace(/ fail(?=[ \.,…\|\}])/g, " fait");
    str = str.replace(/ faile(?=[ \.,…\|\}])/g, " faite");
    str = str.replace(/ fails(?=[ \.,…\|\}])/g, " faits");
    str = str.replace(/(ligure)/g, "figure");
    str = str.replace(/(?<!nous\s)fondions/g, "fonctions");
    str = str.replace(/(fiançais)/g, "français");
    str = str.replace(/(granité)/g, "granit");
    str = str.replace(/( gue )/g, " que ");
    str = str.replace(/( gue )/g, " que ");
    str = str.replace(/(bomme)/g, "homme");
    str = str.replace(/( ia )/g, " la ");
    str = str.replace(/( Ia )/g, " La ");
    str = str.replace(/( ie )/g, " le ");
    str = str.replace(/( Ie )/g, " Le ");
    str = str.replace(/( los )/g, " les ");
    str = str.replace(/ la lin(?=[ \.,…\|\}])/g, " la fin");
    str = str.replace(/( Faction )/g, " l’action ");
    str = str.replace(/ Tair(?=[ \.,…\|\}])/g, " l’air");
    str = str.replace(/ Tait /g, " l’ait ");
    str = str.replace(/(Tannée)/g, "l’année");
    str = str.replace(/(Tan )/g, "l’an ");
    str = str.replace(/(?<=\s[Pp]lus\s|\s[Tt]rès\s|\s[Tt]rop\s)lard/g, "tard");
    str = str.replace(/Fauteur(?! de trouble)/g, "L’auteur");
    str = str.replace(/(Teau )/g, "L’eau ");
    str = str.replace(/(l’ou )/g, "l’on ");
    str = str.replace(/(?<=\.|\!|\?|…|\(|«|»|—) Ton /g, " l’on ");
    str = str.replace(/(Tonde )/g, "L’onde ");
    str = str.replace(/(Tun )/g, "l’un");
    str = str.replace(/(Tune )/g, "l’un");
    str = str.replace(/(moyeu)/g, "moyen");
    str = str.replace(/(moyenx)/g, "moyeux");
    str = str.replace(/ (no|ue) /g, " ne ");
    str = str.replace(/nl(?=[ \.,…\|\}])/g, "nt");
    str = str.replace(/nls(?=[ \.,…\|\}])/g, "nts");
    str = str.replace(/( n['’]v )/g, " n’y ");
    str = str.replace(/( out )/g, " ont ");
    str = str.replace(/( pa[it] )/g, " par ");
    str = str.replace(/( peul )/g, " peut ");
    str = str.replace(/( saus )/g, " sans ");
    str = str.replace(/\b([tmnlc])c\b/g, "$1e");
    str = str.replace(/\b([stmlc])cs\b/g, "$1es");
    str = str.replace(/( sout )/g, " sont ");
    str = str.replace(/( sout\-)/g, " sont\-");
    str = str.replace(/(taudis qu)/g, "tandis qu");
    str = str.replace(/( tonte)/g, "  toute");
    str = str.replace(/(vêlement)/g, "vêtement");
    str = str.replace(/(?<=\s[Ii]l\s)v(?=\sa)/g, "y");
//*********************/
// MAJUSCULES
    str = str.replace(/(\nA )/g, "\nÀ ");
    str = str.replace(/([\!\?\.\\…\»\«\(]) A /g, "$1 À ");
    str = str.replace(/[AÀ]ge([^n])/g, "Âge$1");
    str = str.replace(/( Ca )/g, " Ça ");
    str = str.replace(/( Ca,)/g, " Ça,");
    str = str.replace(/( Cà )/g, " Çà ");
    str = str.replace(/( Cà,)/g, " Çà,");
    str = str.replace(/(Gela)/g, "Cela");
    str = str.replace(/(Cola)/g, "Cela");
    str = str.replace(/( cola)/g, " cela");
    str = str.replace(/(Gomme)/g, "Comme");
    str = str.replace(/([EÊÈ]co)/g, "Éco");
    str = str.replace(/([EÊÈ]cr)/g, "Écr");
    str = str.replace(/([EÊÈ]den)/g, "Éden");
    str = str.replace(/([EÊÈ]du)/g, "Édu");
    str = str.replace(/([EÊÈ]glise)/g, "Église");
    str = str.replace(/([EÊÈ]gypt)/g, "Égypt");
    str = str.replace(/([EÊÈ]lec)/g, "Élec");
    str = str.replace(/([EÊÈ]lém)/g, "Élém");
    str = str.replace(/([EÊÈ]lie)/g, "Élie");
    str = str.replace(/([EÊÈ]lisée)/g, "Élisée");
    str = str.replace(/([EÊÈ]loge)/g, "Éloge");
    str = str.replace(/([EÊÈ]lysée)/g, "Élysée");
    str = str.replace(/([EÊÈ]mile)/g, "Émile");
    str = str.replace(/([EÊÈ]milie)/g, "Émilie");
    str = str.replace(/([EÊÈ]nerg)/g, "Énerg");
    str = str.replace(/([EÊÈ]p)/g, "Ép");
    str = str.replace(/([EÊÈ]quateur)/g, "Équateur");
    str = str.replace(/([EÊÈ]tablis)/g, "Établis");
    str = str.replace(/([EÊÈ]tat)/g, "État");
    str = str.replace(/([EÊÈ]tang)/g, "Étang");
    str = str.replace(/([EÊÈ]tant)/g, "Étant");
    str = str.replace(/([EÊÈ]thique)/g, "Éthique");
    str = str.replace(/([EÊÈ]trang)/g, "Étrang");
    str = str.replace(/([EÉÈ]tre)/g, "Être");
    str = str.replace(/([EÊÈ]tud)/g, "Étud");
    str = str.replace(/([EÊÈ]v)/g, "Év");
    str = str.replace(/([EÉÊ]ve)/g, "Ève");
    str = str.replace(/([\n—\!\?\.\\…\»\«\( ] )(11|II) /g, "$1Il ");
    str = str.replace(/(?<=\s)(It|Tl|TI)(?=\s)/g, "Il");
    str = str.replace(/(. Us )/g, ". Ils ");
    str = str.replace(/(Ile )/g, "Île ");
    str = str.replace(/(Ile-)/g, "Île-");
    str = str.replace(/(Iles )/g, "Îles ");
    str = str.replace(/(Iles-)/g, "Îles-");
// CHIFFRES ROMAINS
    str = str.replace(/(\n|\-| |\{\{lié\}\})([IVXLCDM]+)([\n-,…\|\}\) ])/g, "$1{{rom-maj|$2}}$3");
    str = str.replace(/(\{\{rom-maj\|Ier\}\})/g, "\{\{Ier\}\}");
// e océrisé en o
//    str = str.replace(/\bdo\b/g, "de");
//    str = str.replace(/\bDo\b/g, "De");
    str = str.replace(/\blo /g, "le "); 
    str = str.replace(/\bLo /g, "Le ");
//    str = str.replace(/\bdos\b/g, "des");
//    str = str.replace(/\bDos\b/g, "Des");
//    str = str.replace(/\blos\b/g, "les");
//    str = str.replace(/\bLos\b/g, "Les");
//    str = str.replace(/\bco\b/g, "ce");
//    str = str.replace(/\bCo\b/g, "Ce");
    str = str.replace(/\bcos /g, "ces ");
    str = str.replace(/\bot /g, "et ");
    str = str.replace(/\bct /g, "et ");
    str = str.replace(/\bso /g, "se ");
    str = str.replace(/\bto /g, "te ");
    str = str.replace(/\bollos /g, "elles ");
    str = str.replace(/\bollo /g, "elle ");
    str = str.replace(/\bno /g, "ne ");
    str = str.replace(/\bquo /g, "que ");
    str = str.replace(/\bquol /g, "quel ");
    str = str.replace(/ior /g, "ier ");
    str = str.replace(/\bost /g, "est ");
//    str = str.replace(/\buno /g, "une ");
//    str = str.replace(/dor /g, "der ");
    str = str.replace(/\bpout /g, "peut ");
    str = str.replace(/\bjo /g, "je ");
    str = str.replace(/\bJo /g, "Je ");
    str = str.replace(/(\.\.)/g, "…");
// GREC
/*********************
    str = str.replace(/(ϰ)/g, "κ");
    str = str.replace(/(ϕ)/g, "φ");
    str = str.replace(/(ϑ)/g, "θ");
*********************/
    	return str;
  });
}

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