/* <pre><nowiki> */
function mathfixer() {
var txt = document.editform.wpTextbox1;
// Convert minus sign HTML entities into actual minus signs (overlaps with dashfixer.js)
txt.value = txt.value.replace(/(−|−|−)/g, '−');
// Convert times sign HTML entities into actual times signs
txt.value = txt.value.replace(/(×|×|×)/g, '×');
// Convert plusorminus sign HTML entities into actual plusorminus signs
txt.value = txt.value.replace(/(±|±|±)/g, '±');
// Convert hyphen next to a number into a minus sign character
txt.value = txt.value.replace(/()-(\d)/g, '$1−$2');
// Changes 2x3 to 2×3
txt.value = txt.value.replace(/(\d\s?)x(\s?\d)/g, '$1×$2');
// Changes 10^3 to 10<sup>3</sup>
// txt.value = txt.value.replace(/(\d+)\^(\d+)/g, '$1<sup>$2</sup>');
// Changes x^3 to x<sup>3</sup>
txt.value = txt.value.replace(/()\^(\d+)/g, '$1<sup>$2</sup>');
// Changes <sup> tags inside <math> tags back into carets
// (don't know of a way to exclude them from the above statement)
txt.value = txt.value.replace(/<math>(.*)<sup>(\d+)<\/sup>(.*)<\/math>/g, '<math>$1^$2$3</math>');
// Changes 2 +/- 3 to 2±3
txt.value = txt.value.replace(/(\s|\d)\+\/?(-|−|-)(\s|\d)/g, '$1±$3');
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "]";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
mw.util.addPortletLink('p-cactions', 'javascript:mathfixer()', '±', 'ca-mathfixer', 'Fixes some math characters', '', '');
}
});
/* </nowiki></pre> */