Jump to content

Wikipedia:AutoEd/whitespace.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Pppery (talk | contribs) at 20:35, 25 January 2024 (Prep for content model change). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

function autoEdWhitespace(str) { //MAIN FUNCTION describes list of fixes

   str = str.replace(/\t/g, " ");
   str = str.replace(/^ ? ? \n/gm, "\n");
   // Extra newlines
   if(str.search(/\uE000/g) < 0) { // see Private Use Area
     // Mark spacing before stub templates
     str = str.replace(/(\n)[ \t]*(\n)[ \t]*(\n\{\{[^{}]*\-stub\}\})/gm, "$1\uE000$2\uE000$3");
     str = str.replace(/(\n)[ \t]*(\n\{\{[^{}]*\-stub\}\})/gm, "$1\uE000$2");
     // Remove extra newlines
     str = str.replace(/(?:[\t ]*\n)+[\t ]*(\n\uE000\n\uE000\n)/gm, "$1");
     str = str.replace(/(\n\n)\n+/gm, "$1");
     str = str.replace(/(\n[\t ]*\n)(?:[\t ]*\n)+/g, "$1");
     // Unmark
     str = str.replace(/\uE000/g, );
   }

// str = str.replace(/== ? ?\n\n==/g, "==\n==");

   str = str.replace(/\n\n(\* ?\[?http)/g, "\n$1");

   str = str.replace(/^ ? ? \n/gm, "\n");
   str = str.replace(/\n\n\*/g, "\n*");

// str = str.replace(/[ \t][ \t]+/g, " ");

   str = str.replace(/(=\n[\t ]*\n[\t ]*\n)(?:[\t ]*\n)+/g, "$1");
   str = str.replace(/ \n/g, "\n");

   //* bullet points
   if(str.search(/\uE000/g) < 0) { // see Private Use Area
     str = str.replace(/^(\#)(REDIRECT)/gi, '$1\uE000$2'); // Mark redirects
     str = str.replace(/^([\*#]+:*) /gm, "$1");
     str = str.replace(/^([\*#]+:*)/gm, "$1 ");
     str = str.replace(/[\t ]*\uE000[\t ]*/g, ); // Unmark redirects
   }

   //==Headings==
   str = str.replace(/^(={1,4} )[ ]*([^= ][^=]*[^= ])[ ]*( ={1,4})$/gm, "$1$2$3");
   str = str.replace(/^(={1,4})([^= ][^=]*[^= ])[ ]+(={1,4})$/gm, "$1$2$3");
   str = str.replace(/^(={1,4})[ ]+([^= ][^=]*[^= ])(={1,4})$/gm, "$1$2$3");
   return str;

}