Wikipedia:AutoEd/htmltowikitext.js

This is an old revision of this page, as edited by AFigureOfBlue (talk | contribs) at 20:57, 28 April 2009 (Protected Wikipedia:AutoEd/htmltowikitext.js: User scripts are high-risk ([edit=sysop] (indefinite) [move=sysop] (indefinite))). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

//

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

    //Convert HTML to wikitext
    str = str.replace(/<(B|STRONG)[ ]*>([^<>]*)<\/\1[ ]*>/gi,  "'''$2'''"); // Wikify <B> and <STRONG>
    str = str.replace(/<(I|EM)[ ]*>([^<>]*)<\/\1[ ]*>/gi,  "''$2''");       // Wikify <I> and <EM>
    str = str.replace(/<[\\\/\.]+BR[\\\/\. ]*>/gi, '<br />'); // Tag starts with a slash or period
    str = str.replace(/<[\\\/\. ]*BR[ ]*[\\\/\.]+[ ]*>/gi, '<br />'); // Tag ends with a slash or period
    str = str.replace(/<[ ]*BR[ ]*>/gi, '<br>'); // Tag contains no slashes
    str = str.replace(/([\r\n])[\t ]*<[\\\/\. ]*HR[\\\/\. ]*>/gi, '$1----');
    str = str.replace(/(.)<[\\\/\. ]*HR[\\\/\. ]*>/gi, '$1\n----');
    str = str.replace(new RegExp('<REFERENCES/ >|<REFERENCES></REFERENCES>|<REFERENCES>|<REFERENCES/>', 'gi'), '<references />'); //Not really an HTML-to-wikitext fix, but close enough
    str = str.replace(/([^\r\n ])[\t ]*(<H[1-6][^<>]*>)/gim, '$1\n$2');   // Make sure <H1>, ..., <H6> is after a newline
    str = str.replace(/(<\/H[1-6][^<>]*>)[\t ]*([^\r\n ])/gim, '$1\n$2'); // Make sure </H1>, ..., </H6> is before a newline
    str = str.replace(/(^|[\r\n])[\t ]*<H1[^<>]*>([^\r\n]*?)<\/H1[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1=$2=$3');
    str = str.replace(/(^|[\r\n])[\t ]*<H2[^<>]*>([^\r\n]*?)<\/H2[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1==$2==$3');
    str = str.replace(/(^|[\r\n])[\t ]*<H3[^<>]*>([^\r\n]*?)<\/H3[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1===$2===$3');
    str = str.replace(/(^|[\r\n])[\t ]*<H4[^<>]*>([^\r\n]*?)<\/H4[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1====$2====$3');
    str = str.replace(/(^|[\r\n])[\t ]*<H5[^<>]*>([^\r\n]*?)<\/H5[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1=====$2=====$3');
    str = str.replace(/(^|[\r\n])[\t ]*<H6[^<>]*>([^\r\n]*?)<\/H6[\r\n\t ]*>[\t ]*([\r\n]|$)/gim, '$1======$2======$3');

    return str;
}

//