Utilisatrice:Hsarrazin/typoClassique.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:Psychoslave/common.js'); // test pour convertir en s longs... 
importScript('User:ElioPrrl/LongSRestore.js'); // - en test



/*********************
Typo personnel CLASSIQUE (pour livres anciens)
**********************/
function hsarrazin_typo_add() {
  $.typo.add(function(str) {
//    str = str.replace(/( tète )+/g, " tête ");
    str = str.replace(/([—\!\?\.\\…\»\«\( ] )11 /g, "$1Il ");   
    str = str.replace(/([—\!\?\.\\…\»\«\( ] )II /g, "$1Il ");   
    str = str.replace(/([—\!\?\.\\…\»\«\( ] )Gela /g, "$1Cela ");   
    str = str.replace(/(…\. )+/g, "… ");
    str = str.replace(/(\.… )+/g, "… ");
    str = str.replace(/( …)+/g, "…");
    str = str.replace(/(‘)+/g, "’");
    str = str.replace(/(`)+/g, "’");
    str = str.replace(/`/g, "’");
    str = str.replace(/‘/g, "’");
    str = str.replace(/ʹ/g, "’");
    str = str.replace(/fi/g, "fi");
    str = str.replace(/fl/g, "fl");
    str = str.replace(/∫/g, "s");
    str = str.replace(/“/g, "«");
    str = str.replace(/”/g, "»");
    str = str.replace(/ 8c/g, " &");
    str = str.replace(/ 6c/g, " &");
    str = str.replace(/ et /g, " & ");
	str = str.replace(/(\s)(et)([\s\n])/g, "$1&$3"); // remplace par "&" tous les "et" entourés de caractères d'espacement
	str = str.replace(/^(et)([\s\n])/g, "&$2"); // remplace par "&" les "et " en début de ligne
//	str = str.replace(/(s\B)/g, "ſ");
	str = str.replace(/(ſs)/g, "ſſ"); // les doubles ſ sont ainsi typographiés dans [[Livre:Holbach - Le Christianisme dévoilé, 1756.djvu]]
		str = str.replace(/(\{\{Perſonnage)/g, "\{\{Personnage"); // pour le théâtre classique
		str = str.replace(/(\{\{Acteurſ)/g, "\{\{Acteurſ"); // pour le théâtre classique
		str = str.replace(/(## ſ1 ##)/g, "## s1 ##"); // 
		str = str.replace(/(## ſ2 ##)/g, "## s2 ##"); // 
		str = str.replace(/(\{\{ſc\|)/g, "\{\{sc\|"); // réparation modèle
		str = str.replace(/(\{\{ſp\|)/g, "\{\{sp\|"); // réparation modèle

//    str = str.replace(/([—\!\?\.\\…\»\«\( ] )A /g, "$1À ");     //fix pour À  - devrait générer moins de faux positifs que la situation actuelle
//    str = str.replace(/(\nA )+/g, "\nÀ ");    // désactiver pour le Trévoux…

    str = str.replace(/\{\{lang\|([a-z])([a-z])\|''([^']*?)''([^\}]*)\}\}+/g, "''\{\{lang\|$1$2\|$3$4\}\}''");    //fix pour lang
    str = str.replace(/\{\{lang\|gr\|+/g, "\{\{lang\|grc\|");    //fix pour gr au lieu de grc
    
//    str = str.replace(/\{\{centré\|\{\{réplique\|\{\{sc\|([^']*?)\}\}\}\}\{\{didascalie\|([^']*?)\}\}\}\} /gi, "\{\{réplique|$1\}\}\{\{didascalie\|$2\}\} "); //suppr superflus
//    str = str.replace(/\{\{centré\|\{\{réplique\|\{\{sc\|([^']*?)}}}}}}/gi, "\{\{réplique\|$1\}\}"); //suppression centré et sc superflus

//    str = str.replace(/\{\{réplique\|([^']*?)\}\}/gi, "\{\{Personnage\|$1\|c\}\}");    //fix pour Réplique -> Personnage (pb de fonctionnement)
    str = str.replace(/\{\{Personnage\|([a-zA-ZÉÈéèŒ\. \-]*?)\|c\}\}\{\{didascalie\|,?/g, "\{\{PersonnageD\|$1\|c\|");    //fix pour PersonnageD
    str = str.replace(/\{\{Personnage\|([a-zA-ZÉÈéèŒ\. \-]*?)\|c\}\}\, {\{didascalie\|,?/g, "\{\{PersonnageD\|$1\|c\|");    //fix pour PersonnageD

    str = str.replace(/(<sup>er<\/sup>)+/g, "\{\{er\}\}"); // fix pour les abbréviations
    str = str.replace(/(\{\{e\|e\}\}<\/sup>)+/g, "\{\{e\}\}");
    str = str.replace(/(<sup>e<\/sup>)+/g, "\{\{e\}\}");
    str = str.replace(/Gomme/g, "Comme");
    str = str.replace(/Gela/g, "Cela");
    str = str.replace(/(I<sup>er<\/sup>)+/g, "\{\{Ier\}\}");
    str = str.replace(/(1er )+/g, "{{1er}} ");
    str = str.replace(/(Ier )+/g, "{{Ier}} ");
    str = str.replace(/(1{{er}})+/g, "{{1er}}");
    str = str.replace(/oeil/g, "œil");
    str = str.replace(/tète/g, "tête");//    str = str.replace(/Eglise/g, "Église");
    str = str.replace(/Yous /g, "Vous ");
    str = str.replace(/ lé /g, " le ");
    str = str.replace(/ fans /g, " sans ");

    str = str.replace(/( <ref>)+/g, "<ref>"); //fix pour les ref
    str = str.replace(/( <\/ref>)+/g, "<\/ref>"); //fix pour les ref
    str = str.replace(/<center>([^']*?)<\/center>/g, "\{\{c\|$1\}\}");  //fix pour les center
    str = str.replace(/<div align=\"center\" >([^']*?)<\/div>/g, "\{\{c\|$1\}\}");  //fix pour les div center
    str = str.replace(/<div class=\"center\" >([^']*?)<\/div>/g, "\{\{c\|$1\}\}");  //fix pour les div center
    str = str.replace(/<div style=\"text-align:center; \" \>([^']*?)<\/div>/g, "\{\{c\|$1\}\}");  //fix pour les div center

    str = str.replace(/  /g, " ");
    str = str.replace(/(_)+/g, " ");

    str = str.replace(/\n : */g, "\n:");             // fix pour les : dans les poèmes
    str = str.replace(/(:+) *: */g, "$1:");
    str = str.replace(/:: /g, "::");
    str = str.replace(/<poem>/g, "<poem class=\"verse\">");  //fix pour les poèmes
    str = str.replace(/class= « verse » /g, "class=\"verse\"");

    str = str.replace(/## « /g, "## \"");    // fix pour les sections
    str = str.replace(/ » ##/g, "\" ##");

    str = str.replace(/<big>(.*)<\/big>/gi, "$1"); //suppression des "big" 
    str = str.replace(/&#160;»/g, " »");

//    str = str.replace(/ *\n/g, " ");     // Suppression des saut de ligne à l'intérieur d'un paragraphe -->
    str = str.replace(/  /g, "\n\n");               // Fix pour changement de paragraphe
    str = str.replace(/\n +/g, "\n\n");             // Fix pour changement de paragraphe impair
    str = str.replace(/ ?\n*$/g, "");               // Suppression saut de ligne fin de page
    return str;
  });
}

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