User:Crazytales56297/monobook.js
From Wikipedia
< User:Crazytales56297
Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror:: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences.
// <pre><nowiki>
// hook
addOnloadHook(wysawygInit);
//init
function wysawygInit()
{
if ($('wpTextbox1'))
{
$('content').innerHTML =
// '<d'+'iv style="width:100%;height:100px;overflow:auto" id="debug"></d'+'iv>'+
'<i'+'frame width="90%" height="400" id="rtshed" name="rtshed" style="word-wrap:pre"></i'+'frame>' + $('content').innerHTML;
rtshed.document.open();
rtshed.document.write(' <html><head>'
+ '<l'+'ink type="text/css" rel="stylesheet" href="/w/index.php?title=User:Zocky/wysawyg.css&action=raw&type=text/css"/>'
+ '<s'+'cript type="text/javascript" src="/w/index.php?title=User:Zocky/wysawygEd.js&action=raw&type=text/javascript"/>'
+ '<s'+'cript type="text/javascript"/>RTSH.language = "javascript";</'+'script>'
+ '</head><body id="ffedt"><pre id="ieedt">'
+ "hello '''world'''".replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
+ '</pre></body></html>');
rtshed.document.close();
// rtshed.contentWindow.CodePress.initialize();
};
}
codePressTriggerChars="[{|}]='*#:";
function codePressHighlightHook(x)
{
// $('debug').innerHTML=x.replace(/&/g,'&').replace(/</g,'<').replace(/\n/,'<br/>');
//{{ }} -> div
x=x.replace( /\{\{()/g, '<ww>{{</ww><wt><wa>$1' );
x=x.replace( /()\}\}/g, '$1</wa></wt><ww>}}</ww>' );
//[[ ]] -> u
x=x.replace( /\[\[([Ii]mage:)/g, '<ww>[[</ww><wl c="img"><wa>$1' );
x=x.replace( /\[\[()/g, '<ww>[[</ww><wl c="int"><wa>$1' );
x=x.replace( /()\]\]/g, '$1</wa></wl><ww>]]</ww>' );
//'' ''' -> i b
x=x.replace( /'''(.*?)'''/g, '<tt>'''</tt><b>$1</b><tt>'''</tt>' );
x=x.replace( /''(.*?)''/g, '<tt>''</tt><i>$1</i><tt>''</tt>' );
// | -> span
x=x.replace( /\|([^<|]*?)=/g, '</wa><wa><ww>|$1=</ww>' );
x=x.replace( /\|()/g, '</wa><wa><ww>|</ww>$1' );
// == == -> emp
x=x.replace( /(^|\n)( *)====(.*)====( *)(\n|$)/g,
'$1$2<ww>====</ww><wh4>$3</wh4><ww>====</ww>$4$5' );
x=x.replace( /(^|\n)( *)===(.*)===( *)(\n|$)/g,
'$1$2<ww>===</ww><wh3>$3</wh3><ww>===</ww>$4$5');
x=x.replace( /(^|\n)( *)==(.*)==( *)(\n|$)/g,
'$1$2<ww>==</ww><wh2>$3</wh2><ww>==</ww>$4$5');
x=x.replace( /(^|\n)( *)=(.*)=( *)(\n|$)/g,
'$1$2<ww>=</ww><wh1>$3</wh1><ww>=</ww>$4$5');
x=x.replace( /(^|\n)([*#:]+)([^\n]*?)(?=\n|$)/g, function (p,p1,p2,p3,p4)
{
return p1+'<wr><ww>' + p2 + '</ww>'
+ p3 +'</wr>';
});
// $('debug').innerHTML=x.replace(/\n/g,'<br/>').replace(/&/g,'&').replace(/</g,'<');
return x;
}
// cross-browser event functions
function eventAddListener (element,event,handler)
{
if (element.addEventListener)
element.addEventListener(event,handler,false)
else
element.attachEvent('on'+event,handler);
}
function eventRemoveListener (element, event, handler)
{
if (element.removeEventListener)
element.removeEventListener(event,handler,false)
else
element.detachEvent('on'+event,handler);
}
function eventStop(event)
{
if (event.preventDefault)
{
event.preventDefault();
event.stopPropagation();
}
else
{
event.returnValue = false;
event.cancelBubble = true;
}
}
function eventTarget(event)
{
return event.target || event.srcElement;
}
function eventKeyCode(event)
{
return event.preventDefault ? event.which : event.keyCode ;
}
function $(id)
{
return document.getElementById(id);
}

