Utilisateur:Toto256/monobook.js
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:Acer11/Trévoux.js');*/
// Applique des transformations typographiques sur des portions de textes
// sur lesquels il est sûr de travailler. Voir la var splitter.
function typographie_fragment(text) {
var typo_def = new Array
(
// Format: couple de regexp, remplacement, le flag est toujours "g".
// L'ordre des définitions a de l'importance dans certain cas.
// apo droite, apo inverse aussi : très probablement une erreur.
"([^'])['‘]([^'])", "$1’$2",
// trois points
"[.][.][.][.]*", "…",
// transforme \s1\s en \s!\s
"([ \f\n\r\t\v\u00A0\u2028\u2029])1([ \f\n\r\t\v\u00A0\u2028\u2029\.…])", "$1!$2",
"[ ]([,.])", "$1",
// Ajout d'un espace devant ;:!?
"([^ ])([;:\!\?])", "$1 $2",
"([«;:\!\?])([^ …])", "$1 $2",
// transforme -\s en —
"[\x96] ", "— ",
// - vaut \x2D ou \x96
"^- ", "— ",
// transforme -\s en —
"-[ \f\n\r\t\v\u00A0\u2028\u2029]", "— ",
// Séparé des précédentes sinon "word!»" overlap
"([^ \f\n\r\t\v\u00A0\u2028\u2029])([»])", "$1 $2",
// Une des regexp précédentes a pu produire des <espace>\n et de
// toute façon les espaces en fin de ligne n'ont pas d'intérêt
" (\n|<br)", "$1",
// Trois majuscules en début de ligne --> paragraphe
"([^\n])\n([A-Z][A-Z][A-Z])", "$1\n\n$2",
// Césure
"-\n([a-zéèçà])", "$1",
// Suppression des retours chariots
//"([^\n])\n([^\n])", "$1 $2",
// Erreurs réputées courantes, ordre alphabétique de l'expression corrigée.
"’ ", "’",
"j ", ", ",
" ,", ",",
",([a-zéèçà])", ", $1"
);
var lng = typo_def.length;
if (lng % 2 != 0)
return text;
for (var i = 0; i < lng; i += 2) {
search = new RegExp(typo_def[i + 0], "g");
text = text.replace(search, typo_def[i + 1]);
}
return text;
}
function typographie() {
if (1 || wgNamespaceNumber == 104) {
var editbox = document.getElementById('wpTextbox1');
if (editbox) {
var text = editbox.value;
var new_text = '';
var last_match = 0;
// Split the text in part which are safe to transform, e.g we don't want
// to apply typographie_fragment on a <math>.*</math> or a etc.
splitter = new RegExp("<math>.*</math>|<[a-zA-z0-9 =\"']>|[</[a-zA-z0-9 =\"']+>|style=\".*\"| |—|<!--.*-->|\n:[:]*|\n;[;]*|[[][[].*]]", "gm");
while ((result = splitter.exec(text)) != null) {
new_text += typographie_fragment(text.slice(last_match, splitter.lastIndex - result[0].length));
new_text += result;
last_match = splitter.lastIndex;
}
new_text += typographie_fragment(text.slice(last_match))
editbox.value = new_text;
}
}
}
function addButton2(id,alt,comment,source,onclick){
var tb = document.getElementById("toolbar");
if(tb){
var image = document.createElement("img");
image.width = 46;
image.height = 22;
image.border = 0;
image.className = "mw-toolbar-editbutton";
image.style.cursor = "pointer";
image.alt = alt;
image.title = comment;
image.src = source;
image.onclick = onclick;
tb.appendChild(image);
}
}
function addReplaceButton(){
addButton2("wpRep","Remplacement auto","Remplacement", "http://upload.wikimedia.org/wikipedia/commons/a/af/Button_Fractur_OCR.png", typographie);
}
jQuery( function( $ ) {
// your inline code to be executed after the page is loaded
addReplaceButton();
} );
/* Deprecated
$(addReplaceButton);
*/