User:Ohconfucius/script/formatgeneral.js: Difference between revisions

Content deleted Content added
Created page with 'function Ohc_formatgeneral() { var txt=document.editform.wpTextbox1; //improper capitalisation within section headings txt.value=txt.value.replace(/(==[ ]*Notabl...'
 
Undid revision 1177973956 by Ohconfucius (talk)
 
(233 intermediate revisions by 2 users not shown)
Line 1:
/**
* TemplateScript adds configurable templates and scripts to the sidebar, and adds an example regex editor.
* @see https://meta.wikimedia.org/wiki/TemplateScript
* @update-token [[File:pathoschild/templatescript.js]]
*/
mw.loader.load('//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js');
importScript("User:Ohconfucius/test/formatgeneral.js/core.js");
 
function Ohc_formatgeneral() {
ohc_change_type();
var txt=document.editform.wpTextbox1;
ohc_protect_fmt();
 
Ohc_formats();
//improper capitalisation within section headings
ohc_unprotect_fmt();
txt.value=txt.value.replace(/(==[ ]*Notable )(?:Births)/g, '$1births');
ohc_downcase_CEO();
txt.value=txt.value.replace(/(==[ ]*Notable )(?:Deaths)/g, '$1deaths');
ohc_linkspam();
txt.value=txt.value.replace(/(==[ ]*Notable )(?:Alumn)/g, '$1alum');
Ohc_final_cleanup();
Ohc_formatgen_edit_summary();
//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)[ ]{2,3}(\w\d)/gi, '$1 $2');
 
//symbol for 'times' and dashes
txt.value=txt.value.replace(/&times;/gi, '×');
// txt.value=txt.value.replace(/&ndash;/gi, '–');
txt.value=txt.value.replace(/&mdash;/gi, '—');
 
//rem leading and lagging spaces within wikilinks
txt.value=txt.value.replace(/(\[\[)\s([^\]]*\]\])/gi, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\]\|]*)\s(\]\])/gi, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\]]*\s)\s+([^\]]\]\])/gi, '$1$2');
txt.value=txt.value.replace(/(\[\[[^\]]*\d),(\]\])/gi, '$1$2');
 
//add missing space between wikilinks
txt.value=txt.value.replace(/(\]\])(\[\[)/gi, '$1 $2');
 
//nbsp fixes
txt.value=txt.value.replace(/([\d:\.]\d?\d| \d?\d)[ ]*a\.?m\.?/gi, '$1&nbsp;am');
txt.value=txt.value.replace(/([\d:\.]\d?\d| \d?\d)[ ]*p\.?m\.?/gi, '$1&nbsp;pm');
txt.value=txt.value.replace(/([^\|]\d{1,3})\s(m|b|tr)illion(\b[^}])/gi, '$1&nbsp;$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(/&deg;/g, '°');
txt.value=txt.value.replace(/º/g, '°');
 
// Celsius spelling errors
txt.value=txt.value.replace(/celsius/gi, 'Celsius');
txt.value=txt.value.replace(/celcius/gi, 'Celsius');
//Fix common naming error (be careful with this one)
txt.value=txt.value.replace(/centigrade/gi, 'Celsius');
//Celsius or Fahrenheit
txt.value=txt.value.replace(/(\d)&nbsp;(?:°|deg|degree|degrees)&nbsp;([CF]\W)/g, '$1&nbsp;°$2');
txt.value=txt.value.replace(/(\d)(?:°|deg|degree|degrees)&nbsp;([CF]\W)/g, '$1&nbsp;°$2');
txt.value=txt.value.replace(/(\d)&nbsp;(?:°|deg|degree|degrees)([CF]\W)/g, '$1&nbsp;°$2');
txt.value=txt.value.replace(/(\d)(?:\s|)(?:°|deg|degree|degrees)(?:\s|)([CF]\W)/g, '$1 °$2');
txt.value=txt.value.replace(/(\d)&nbsp;(\[\[Celsius|°C\]\])/gi, '$1&nbsp;$2');
txt.value=txt.value.replace(/(\d)(?:\s|)(\[\[Celsius|°C\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/(\d)&nbsp;(\[\[Fahrenheit|°F\]\])/gi, '$1&nbsp;$2');
txt.value=txt.value.replace(/(\d)(?:\s|)(\[\[Fahrenheit|°F\]\])/gi, '$1 $2');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-|&nbsp;|)°?F([:;,\.?!]?\s[^\d\(\)\/\\])/g, '$1{{convert|$2|°F|°C|abbr=on}}$3');
txt.value=txt.value.replace(/([^\d\(\)\/\\]\s)(-?\d[\d,\.]*)(?:\s|-|&nbsp;|)(?:deg|degree|degrees)(?:\s|-|&nbsp;|)Fahrenheit([:;,\.?!]?\s[^\d\(\)\/\\])/gi, '$1{{convert|$2|°F|°C}}$3');
 
// Convert &sup to superscript
txt.value=txt.value.replace(/&sup2;/g, '²');
txt.value=txt.value.replace(/&sup3;/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_formatgen_edit_summary(){
//Add a tag to the summary box
setoptions(minor='true');
setreason('General [[WP:MOS|formatting]]', 'append');
doaction('diff');
}
 
$(function Ohc_run_formatgeneral() {
var txt=if(document.editformforms.wpTextbox1;editform) {
mw.util.addPortletLink('p-tb', 'javascript:Ohc_formatgeneral()', 'FORMAT general', 't-fmt', 'general fmt, CT + cites', '', '');
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()', 'Add metric units', 't-addmetric', 'Fixes some unit formatting', '', '');
}
});