function Ohc_formatgeneral() {
var txt=document.editform.wpTextbox1;
//rem linking within section headings
txt.value=txt.value.replace(/(==[ ]{0,1})\[\[([\w\s\,]+?)\]\]([ ]{0,1}==)/gi, '$1$2$3');
txt.value=txt.value.replace(/(==[ ]{0,1})\[\[([^\|]{3,30}\||)([\w\s\,]+?)\]\]([ ]{0,1}==)/gi, '$1$2$3$4');
//improper capitalisation within section headings
txt.value=txt.value.replace(/(==[ ]*)Notable (\w*?)/g, '$1$2');
txt.value=txt.value.replace(/(==[ ]*Terminated )(Destinations)/g, '$1destinations');
txt.value=txt.value.replace(/(==[ ]*\w*? )Career/g, '$1career');
txt.value=txt.value.replace(/(==[ ]*\w*? )Life/g, '$1life');
txt.value=txt.value.replace(/(==[ ]*External )(Links)/g, '$1links');
txt.value=txt.value.replace(/(==[ ]*See )(Also)/g, '$1also');
//remove flagicons from birth and death
txt.value=txt.value.replace(/(birth\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
txt.value=txt.value.replace(/(death\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
txt.value=txt.value.replace(/(birth_?place\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
txt.value=txt.value.replace(/(death_?place\s?=\s?)\{\{flagicon\|[^\}]+\}\}/gi, '$1');
//rem redundant spaces
txt.value=txt.value.replace(/[ ]{1,3}(<\s?ref[^>]{0,15})/gi, '$1');
txt.value=txt.value.replace(/(\w\d)[ ][ ]+(\w\d)/gi, '$1 $2');
//rem leading and lagging spaces within wikilinks
txt.value=txt.value.replace(/(\[\[)\s([^\]]*\]\])/g, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\]\|]*)\s(\]\])/g, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\]]*\s)\s+([^\]]\]\])/g, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\|]*)\s(\|[^\]]\]\])/g, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\|]*\|)\s([^\]]\]\])/g, '$1$2');
//symbol for 'times' and dashes
txt.value=txt.value.replace(/×/gi, '×');
// txt.value=txt.value.replace(/–/gi, '–');
txt.value=txt.value.replace(/—/gi, '—');
txt.value=txt.value.replace(/ — /gi, ' – ');
//add missing space between wikilinks
txt.value=txt.value.replace(/(\]\])(\[\[)/gi, '$1 $2');
//full stop fixes
txt.value=txt.value.replace(/(Ph)(?:\.\s?|\s)(D).?/g, '$1$2');
txt.value=txt.value.replace(/(U)(?:\.\s?|\s)(K|N)\./g, '$1$2'); //US/USA full stop removals cannot be automated
//nbsp fixes
txt.value=txt.value.replace(/([\d:\.]\d?\d| \d?\d)[ ]*(?:a\.m\.|am)(\W)/gi, '$1 am$2');
txt.value=txt.value.replace(/([\d:\.]\d?\d| \d?\d)[ ]*(?:p\.m\.|pm)(\W)/gi, '$1 pm$2');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*(%\W)/gi, '$1 %$2');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*(?:kw)(\W)/gi, '$1 kW$2');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*(?:khz)(\W)/gi, '$1 kHz$2');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*(?:mhz)(\W)/gi, '$1 MHz$2');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*kms?/gi, '$1 km');
txt.value=txt.value.replace(/([\d\.]\d?\d| \d?\d)[ ]*cms?/gi, '$1 cm');
txt.value=txt.value.replace(/([^\|]\d{1,3})\s(m|b|tr)illion(\b[^}])/gi, '$1 $2illion$3');
//turn letter 'x' into symbol '×'
txt.value=txt.value.replace(/(\d)\sx\s(\d{1,3})\sin\s\(/gi, '$1 × $2 in (');
txt.value=txt.value.replace(/(\d)\sx\s(\d{1,3})\sinch\s/gi, '$1 × $2 inch ');
// Convert degree symbols into ° symbol, ensure preceding space
txt.value=txt.value.replace(/°/g, '°');
txt.value=txt.value.replace(/º/g, '°');
// Celsius spelling errors
txt.value=txt.value.replace(/(?:celsius|celcius|centigrade)/gi, 'Celsius');
//Fix common naming error (be careful with this one)
// txt.value=txt.value.replace(/centigrade/gi, 'Celsius');
txt.value=txt.value.replace(/({convert\|[^}]+?)\|(lk=off|abbr=off)/gi, '$1'); //rem redundant parameters ('lk=off' and 'abbr=off') - now default
//Celsius or Fahrenheit
txt.value=txt.value.replace(/(\d) (?:°|deg|degree|degrees) ([CF]\W)/g, '$1 °$2');
txt.value=txt.value.replace(/(\d)(?:°|deg|degree|degrees) ([CF]\W)/g, '$1 °$2');
txt.value=txt.value.replace(/(\d) (?:°|deg|degree|degrees)([CF]\W)/g, '$1 °$2');
txt.value=txt.value.replace(/(\d)(?:\s|)(?:°|deg|degree|degrees)(?:\s|)([CF]\W)/g, '$1 °$2');
txt.value=txt.value.replace(/(\d) (\[\[Celsius|°C\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)(?:\s|)(\[\[Celsius|°C\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/(\d) (\[\[Fahrenheit|°F\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)(?:\s|)(\[\[Fahrenheit|°F\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-| |)°?F([:;,\.?!]?\s[^\d\(\)\/\\])/g, '$1{{convert|$2|°F|°C|abbr=on}}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-| |)(?:deg|degree|degrees)(?:\s|-| |)Fahrenheit([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|°F|°C}}$3');
// Convert &sup to superscript
txt.value=txt.value.replace(/²/g, '²');
txt.value=txt.value.replace(/³/g, '³');
//remove commas from numerical values in convert template
txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|\d+),(\d)/g, '$1$2');
//remove leading zeros from convert template
txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');
txt.value=txt.value.replace(/({convert\|)0(\d)/g, '$1$2');
//Remove surprise or 'Easter egg' diversions linking unit name to orders of magnitude articles
txt.value=txt.value.replace(/\[\[1\s?_?E\s?[\-\+]?\d{1,2}\s?..?\|([^\]]{1,50})\]\]/gi, '$1');
txt.value=txt.value.replace(/\[\[Orders\sof\smagnitude\s\([^\)]+\)\|([^\]]{1,50})\]\]/gi, '$1');
}
function Ohc_run_formatgeneral() {
var txt=document.editform.wpTextbox1;
Ohc_formatgeneral();
// Add a tag to the summary box
var txt=document.editform.wpSummary;
var summary = "General formatting";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
document.forms.editform.wpMinoredit.checked = true;
// document.editform.wpDiff.click();
}
addOnloadHook(function () {
if(document.forms.editform) {
addPortletLink('p-tb', 'javascript:Ohc_run_formatgeneral()', 'General formatting', 't-addmetric', 'Fixes some unit formatting', '', '');
}
});