KidzSearch Encyclopedia:AutoEd/htmltowikitext.js

< KidzSearch Encyclopedia:AutoEd

//<source lang=javascript>

//Convert HTML to wikitext function autoEdHTMLtoWikitext(str) {

 // , , , and  tags
 str = str.replace(/<(B|STRONG)[ ]*>((?:[^<>]|<[a-z][^<>]*\/>|<([a-z]+)(?:| [^<>]*)>[^<>]*<\/\3>)*?)<\/\1[ ]*>/gi,  "$2");
 str = str.replace(/<(I|EM)[ ]*>((?:[^<>]|<[a-z][^<>]*\/>|<([a-z]+)(?:| [^<>]*)>[^<>]*<\/\3>)*?)<\/\1[ ]*>/gi,  "$2");
 // 
, <\br>, <br\>,
, ... str = str.replace(/<[\\\/]+BR[\\\/\s]*>/gim, '
'); str = str.replace(/<[\\\/\s]*BR[\s]*[\\\/]+[\s]*>/gim, '
'); // <.br>, <br.>,
, ... str = str.replace(/<[\s\.]*BR[\s\.]*>/gim, '
'); //
>, <
, <
> ... str = str.replace(/<[\s]*(<br[\s\/]*>)/gim, '$1'); str = str.replace(/(<br[\s\/]*>)[\s]*>/gim, '$1');

//


 str = str.replace(/([\r\n])[\t ]*<[\\\/\. ]*HR[\\\/\. ]*>/gi, '$1----');
 str = str.replace(/(.)<[\\\/\. ]*HR[\\\/\. ]*>/gi, '$1\n----');
 // Not really an HTML-to-wikitext fix, but close enough
 str = str.replace(/<[\\\/\s]*REFERENCES[\\\/\s]*>/gim, '');
 // Repeated references tag
 str = str.replace(/()[\s]*\1/gim, '$1');

// Make sure

, ...,
is after a newline str = str.replace(/([^\r\n ])[\t ]*(<H[1-6][^<>]*>)/gim, '$1\n$2'); // Make sure
, ...,

is before a newline

 str = str.replace(/(<\/H[1-6][^<>]*>)[\t ]*([^\r\n ])/gim, '$1\n$2');

// Remove newlines from inside

, ...,

var loopcount = 0; while( str.search( /<H([1-6])[^<>]*>(?:[^<>]|<\/?[^\/h\r\n][^<>]*>)*?<\/H\1[^<>]*>/gim ) >= 0 && loopcount <= 10 ) { str = str.replace(/(<H)([1-6])([^<>]*>(?:[^<>]|<\/?[^\/h\r\n][^<>]*>)*?)[\r\n]((?:[^<>]|<\/?[^\/h\r\n][^<>]*>)*?<\/H)\2([^<>]*>)/gim, '$1$2$3 $4$2$5'); loopcount++; } // Replace

, ...,

with wikified section headings 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; } //</source>