Utilisateur:Phe/Diderot.js
Apparence
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 remove_diacritics(text) {
var list = {
"á":'a', "Á":'a', "â":'a',
"é":'e', "è":'e', "ê":'e', "ë":'e',
"î":'i', "ï":'i',
"ô":'o', "ö":'o',
"ù":'u', "ü":"u",
"ç":'c',
'À':'a', 'Â':'a',
'É':'E', 'È':'E', 'Ê':'E', 'Ë':'E',
'Î':'I', 'Ï':'I',
'Ô':'O', 'Ö':'O',
'Ù':'U', "Ü":'U',
'Ç':'C'
};
var result = '';
for (var i = 0 ; i < text.length ; ++i) {
if (list[text[i]])
result += list[text[i]];
else
result += text[i];
}
return result;
}
function get_volume(title) {
var list = [ "A", "B", "CHA", "CONSEIL", "DO", "ET", "FOANG", "H", "JU",
"MAMMELLE", "N", "PARLEMENT", "POMACIES", "REGGIO", "SEN", "TEANUM", "VENERIEN" ];
var found = 0;
for (var i = 0; i < list.length; ++i) {
if (title >= list[i])
found = i + 1;
}
return found;
}
function do_encl() {
var currentFocused = $("#wpTextbox1");
if (currentFocused && currentFocused.length) {
var val = currentFocused.textSelection( "getSelection", {} );
if (!val.length)
return;
if (/^{{sc\|.*}}$/.test(val)) {
val = val.replace(/{{sc\|(.*)}}/, "$1");
}
var VAL;
var EncL;
if (/^''.*''$/.test(val)) {
VAL = val.replace(/''(.*)''/, "$1").toUpperCase();
EncL = "EncL2";
} else {
VAL = val.toUpperCase();
EncL = "EncL";
}
var tpl_call = val + "|" + VAL + "|" + remove_diacritics(VAL[0]) + "|" + get_volume(remove_diacritics(VAL));
currentFocused.textSelection(
"encapsulateSelection", {
"pre" : "{{" + EncL + "|",
"peri" : tpl_call,
"post" : "}}",
"replace" : true
}
);
}
}
function do_simplify(text) {
var new_text = '';
var last_match = 0;
var splitter = /\^{(.)}/g;
while ((result = splitter.exec(text)) !== null) {
new_text += text.slice(last_match, splitter.lastIndex - result[0].length);
new_text += "^" + result[1];
last_match = splitter.lastIndex;
}
new_text = new_text + text.slice(last_match);
new_text = new_text.replace(/''/g, "");
return new_text;
}
function do_frac(text) {
var new_text = '';
var last_match = 0;
var splitter = new RegExp("([^ =]+)/([^ =]+)", "g");
while ((result = splitter.exec(text)) !== null) {
new_text += text.slice(last_match, splitter.lastIndex - result[0].length);
new_text += "\\frac {" + result[1] + "}{" + result[2] + "}";
last_match = splitter.lastIndex;
}
return new_text + text.slice(last_match);
}
function do_exp(text) {
var new_text = '';
var last_match = 0;
var splitter = new RegExp("{{e\\|([^}]+)}}|<sup>(.+)</sup>", "g");
while ((result = splitter.exec(text)) !== null) {
new_text += text.slice(last_match, splitter.lastIndex - result[0].length);
if (result[2])
new_text += "^{" + result[2] + "}";
else
new_text += "^{" + result[1] + "}";
last_match = splitter.lastIndex;
}
return new_text + text.slice(last_match);
}
function do_post_parse(val) {
var new_text = val.replace(/(=o|= o)$/g, "= 0");
new_text = new_text.replace(/(::)/g, "\\text { :: }");
new_text = new_text.replace(/∷/g, "\\text { :: }");
return new_text;
}
function do_math() {
var currentFocused = $("#wpTextbox1");
if (currentFocused && currentFocused.length) {
var val = currentFocused.textSelection( "getSelection", {} );
if (!val.length)
return;
val = do_frac(val);
val = do_exp(val);
val = do_simplify(val);
val = do_post_parse(val);
currentFocused.textSelection(
"encapsulateSelection", {
"pre" : "<math>\\scriptstyle ",
"peri" : val,
"post" : "</math>",
"replace" : true
}
);
}
}
if ($.inArray(mw.config.get("wgAction"), [ "edit", "submit"]) != -1 &&
mw.config.get("wgNamespaceNumber") == 104 &&
mw.config.get("wgTitle").indexOf("Diderot - Encyclopedie 1ere edition tome") === 0) {
$.when(
mw.loader.using( [ 'ext.gadget.InsertButton' ] ),
$.ready
).then(function() {
window.insert_button.editForm( {
'img_classic' : '//upload.wikimedia.org/wikisource/fr/0/06/Encl.png',
'img_advanced' : '//upload.wikimedia.org/wikisource/fr/0/06/Encl.png',
'tooltip' : 'Placement modèle EncL',
'img_id' : 'wpEncL',
'on_click' : do_encl
} );
window.insert_button.editForm( {
'img_classic' : '//upload.wikimedia.org/wikisource/fr/c/cf/LaTeX.png',
'img_advanced' : '//upload.wikimedia.org/wikisource/fr/c/cf/LaTeX.png',
'tooltip' : 'Transforme autant que possible une expression en LaTeX',
'img_id' : 'wpLaTeX',
'on_click' : do_math
} );
}
);
}