User:Matt/convert spaces to MW

From wiki.occupyboston.org
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
#!/usr/bin/perl

$/=undef;
$output = <>;

  $output =~s/\r\n/\n/g;

#  output = breakMulti('**', output);
#  output = breakMulti('//', output);

  $output =~s/\*\*(.*?)\*\*/'''$1'''/g;
  $output =~s/(^|[^:])\/\/(.*?)\/\//$1''$2''/g;
  $output =~s/__(.*?)__/<u>$1<\/u>/g;
  $output =~s/\{\{(.*?)\}\}/<tt>$1<\/tt>/g;

  $output =~s/\[\[code\]\](.*?)\[\[code\]\]/<code>$1<\/code>/;
  $output =~s/\[\[math\]\](.*?)\[\[math\]\]/<math>$1<\/math>/;

  $output =~s/\[\[toc\]\]/__TOC__/i;
# we don't get this stuff
#  output = varReplace(['REVISIONID','REVISIONDAY','REVISIONDAY2','REVISIONMONTH','REVISIONYEAR','REVISIONTIMESTAMP','SERVER','SERVERNAME','PAGE','FULLPAGENAME'], output);
#  $output =~s/{{\$SERVERNAME}}/{{\$SERVER}}/;
#  $output =~s/{{\$PAGE}}/{{\$PAGENAME}}');

#  $output =~s/\[\[include\s+page="([^"]+)"\s*editable="true"/g, '[[include page="$1"');
#  $output =~s/\[\[include\s+page="([^"]+)"\s*title="([^"]+)"/g, '==$2==\n[[include page="$1"');
#  $output =~s/\[\[include\s+page="([^"]+)"\s*component="comments"\s*\]\]/g, '{{:Talk:$1}}');
#  $output =~s/\[\[include\s+page="([^"]+)"\s*component="backlinks"\s*\]\]/g, '{{:Special:Whatlinkshere/$1}}');
#  $output =~s/\[\[include\s+page="([^"]+)"\s*\]\]/g, '{{:$1}}');


#  // Links
  $output =~s/\[\[@?(https?:\/\/[^\|]+)\|([^\]]+)\]\]/[$1 $2]/g;
  $output =~s/(^|[^\[])(@?https?:\S+)/$1\[$2 $2\]/g;
  $output =~s/(^|[^\[])([\w\.]+)@([\w\.]+)/$1\[mailto:$2@$3 $2@$3\]/g;

 # // Images. Widtgh and Height are discarded.
  $output =~s/\[\[media.*?\]\]//g; # no idea what to do with these -- mdw

  $output =~s/\[\[image:([^\]]+?)\s+align\s*=\s*['"]?(left|right|center)['"]?/[[image:$1|$2/g;
  $output =~s/\[\[image:([^\]]+?)\s+link\s*=\s*['"]([^'"]+)['"]/[[image:$1/g;
  $output =~s/\[\[image:([^\]]+?)\s+caption\s*=\s*['"]([^'"]+)['"]/[[image:$1|$2/g;
  $output =~s/\[\[image:([^\]]+?)\s+width\s*=\s*['"]?\d+['"]?/[[image:$1/g;
  $output =~s/\[\[image:([^\]]+?)\s+height\s*=\s*['"]?\d+['"]?/[[image:$1/g;


  #// Convert tables
  $output =~s/(^|[^\|][^\|]\n)(\|\|)/$1\{|\n|-\n$2/g;
  $output =~s/\|\|(\n[^\|][^\|]|$)/||\n|\}$1/g;

  $output =~s/\s*\|\|\n\|\|/\n|-\n||/g;
  $output =~s/\s*\|\|\n\|}/\n|}/g;

#  $output =~s/( *[^\n])\|\|/$1\n||"); // Separate cells
  $output =~s/\|\|~/!!/g;
  $output =~s/\|\|!!/||||/g;
  $output =~s/\|\|=/|| align=center |/g;
  $output =~s/\|\|>/|| align=right |/g;
  $output =~s/\|\|</|| align=left |/g;
  $output =~s/\|{8}/|| colspan=4 |/g;
  $output =~s/\|{6}/|| colspan=3 |/g;
  $output =~s/\|{4}/|| colspan=2 |/g;
  $output =~s/colspan=(\d+) \| align=(right|left|center)/colspan=$1 align=$2/g;
  $output =~s/align=(right|left|center) \| colspan=(\d+)/align=$1 colspan=$2/g;

#  // Header conversion
  $output =~s/\|\| align=center \| '''(.+?)'''/!! $1/g;

  $output =~s/\n\|\|/\n|/g;
  $output =~s/\n!!/\n!/g;

# // Add line breaks. Often the most troublesome formatting between wikispace and mediawiki
  $output =~s/\n/<br>\n/g;
  $output =~s/<br>\n<br>\n/\n\n/g;

#  // Remove br from list and tables
  $output =~s/(?:^|\n)(\*\s+.*?)<br>\n/\n$1\n/g;
  $output =~s/<br>\n(\*\s+)/\n$1/g;
  $output =~s/(?:^|\n)(#\s+.*?)<br>\n/\n$1\n/g;
  $output =~s/<br>\n(#\s+)/\n$1/g;
  $output =~s/(?:^|\n)(\|.*?)<br>\n/\n$1\n/g;
  $output =~s/<br>\n({\|)/\n$1/g;
  $output =~s/(?:^|\n)(=+.*?)<br>\n/\n$1\n/g;
  $output =~s/<br>\n(=+)/\n$1/g;
  $output =~s/(?:^|\n)({\||\|-|\|})<br>\n/\n$1\n/g;
  $output =~s/(?:^|\n)(!|\|)(.+?)<br>\n/\n$1$2\n/g;

print $output;