forked from internetarchive/wmd
/
jquery.wmd.min.js
1 lines (1 loc) · 34.5 KB
/
jquery.wmd.min.js
1
(function(b){var a=0;b.fn.wmd=function(c){this.each(function(){var e={preview:true};var d=b.extend({},c||{},e);if(!d.button_bar){d.button_bar="wmd-button-bar-"+a;b("<div/>").attr("class","wmd-button-bar").attr("id",d.button_bar).insertBefore(this)}if(typeof(d.preview)=="boolean"&&d.preview){d.preview="wmd-preview-"+a;b("<div/>").attr("class","wmd-preview").attr("id",d.preview).insertAfter(this)}if(typeof(d.output)=="boolean"&&d.output){d.output="wmd-output-"+a;b("<div/>").attr("class","wmd-output").attr("id",d.output).insertAfter(this)}this.id=this.id||"wmd-input-"+a;d.input=this.id;setup_wmd(d);a++})}})(jQuery);(function(){WMDEditor=function(n){this.options=WMDEditor.util.extend({},WMDEditor.defaults,n||{});j(this,this.options);this.startEditor()};top.WMDEditor=WMDEditor;WMDEditor.defaults={version:2,output_format:"markdown",lineLength:40,button_bar:"wmd-button-bar",preview:"wmd-preview",output:"wmd-output",input:"wmd-input",imageDialogText:"<p style='margin-top: 0px'><b>Enter the image URL.</b></p><p>You can also add a title, which will be displayed as a tool tip.</p><p><br />Example:<br />http://wmd-editor.com/images/cloud1.jpg \"Optional title\"</p>",linkDialogText:"<p style='margin-top: 0px'><b>Enter the web address.</b></p><p>You can also add a title, which will be displayed as a tool tip.</p><p><br />Example:<br />http://wmd-editor.com/ \"Optional title\"</p>",imageDefaultText:"http://",linkDefaultText:"http://",imageDirectory:"images/",helpLink:"http://wmd-editor.com/",helpHoverTitle:"WMD website",helpTarget:"_blank",previewPollInterval:500,pastePollInterval:100,buttons:"bold italic link blockquote code image ol ul heading hr"};WMDEditor.prototype={getPanels:function(){return{buttonBar:l.getElementById(this.options.button_bar),preview:l.getElementById(this.options.preview),output:l.getElementById(this.options.output),input:l.getElementById(this.options.input)}},startEditor:function(){this.panels=this.getPanels();this.previewMgr=new d(this);edit=new this.editor(this.previewMgr.refresh);this.previewMgr.refresh(true)}};var f={isVisible:function(n){return n.offsetWidth>0||n.offsetHeight>0},addEvent:function(o,n,p){if(o.attachEvent){o.attachEvent("on"+n,p)}else{o.addEventListener(n,p,false)}},removeEvent:function(o,n,p){if(o.detachEvent){o.detachEvent("on"+n,p)}else{o.removeEventListener(n,p,false)}},fixEolChars:function(n){n=n.replace(/\r\n/g,"\n");n=n.replace(/\r/g,"\n");return n},extendRegExp:function(q,s,p){if(s===null||s===undefined){s=""}if(p===null||p===undefined){p=""}var r=q.toString();var o="";var n=r.match(/\/([gim]*)$/);if(n===null){o=n[0]}else{o=""}r=r.replace(/(^\/|\/[gim]*$)/g,"");r=s+r+p;return new RegExp(r,o)},createImage:function(n){var p=imageDirectory+n;var o=l.createElement("img");o.className="wmd-button";o.src=p;return o},prompt:function(t,w,p){var q;var n;var r;if(w===undefined){w=""}var s=function(x){var y=(x.charCode||x.keyCode);if(y===27){u(true)}};var u=function(x){f.removeEvent(l.body,"keydown",s);var y=r.value;if(x){y=null}else{y=y.replace("http://http://","http://");y=y.replace("http://https://","https://");y=y.replace("http://ftp://","ftp://");if(y.indexOf("http://")===-1&&y.indexOf("ftp://")===-1&&y.indexOf("https://")===-1){y="http://"+y}}q.parentNode.removeChild(q);n.parentNode.removeChild(n);p(y);return false};var o=function(){n=l.createElement("div");n.className="wmd-prompt-background";style=n.style;style.position="absolute";style.top="0";style.zIndex="1000";if(e.isKonqueror){style.backgroundColor="transparent"}else{if(e.isIE){style.filter="alpha(opacity=50)"}else{style.opacity="0.5"}}var x=g.getPageSize();style.height=x[1]+"px";if(e.isIE){style.left=l.documentElement.scrollLeft;style.width=l.documentElement.clientWidth}else{style.left="0";style.width="100%"}l.body.appendChild(n)};var v=function(){q=l.createElement("div");q.className="wmd-prompt-dialog";q.style.padding="10px;";q.style.position="fixed";q.style.width="400px";q.style.zIndex="1001";var x=l.createElement("div");x.innerHTML=t;x.style.padding="5px";q.appendChild(x);var y=l.createElement("form");y.onsubmit=function(){return u(false)};style=y.style;style.padding="0";style.margin="0";style.cssFloat="left";style.width="100%";style.textAlign="center";style.position="relative";q.appendChild(y);r=l.createElement("input");r.type="text";r.value=w;style=r.style;style.display="block";style.width="80%";style.marginLeft=style.marginRight="auto";y.appendChild(r);var A=l.createElement("input");A.type="button";A.onclick=function(){return u(false)};A.value="OK";style=A.style;style.margin="10px";style.display="inline";style.width="7em";var z=l.createElement("input");z.type="button";z.onclick=function(){return u(true)};z.value="Cancel";style=z.style;style.margin="10px";style.display="inline";style.width="7em";if(/mac/.test(a.platform.toLowerCase())){y.appendChild(z);y.appendChild(A)}else{y.appendChild(A);y.appendChild(z)}f.addEvent(l.body,"keydown",s);q.style.top="50%";q.style.left="50%";q.style.display="block";if(e.isIE_5or6){q.style.position="absolute";q.style.top=l.documentElement.scrollTop+200+"px";q.style.left="50%"}l.body.appendChild(q);q.style.marginTop=-(g.getHeight(q)/2)+"px";q.style.marginLeft=-(g.getWidth(q)/2)+"px"};o();top.setTimeout(function(){v();var y=w.length;if(r.selectionStart!==undefined){r.selectionStart=0;r.selectionEnd=y}else{if(r.createTextRange){var x=r.createTextRange();x.collapse(false);x.moveStart("character",-y);x.moveEnd("character",y);x.select()}}r.focus()},0)},extend:function(){function n(r,q){for(var s in q){r[s]=q[s]}return r}var p={};for(var o=0;o<arguments.length;o++){n(p,arguments[o])}return p}};var g={getTop:function(p,o){var n=p.offsetTop;if(!o){while(p=p.offsetParent){n+=p.offsetTop}}return n},getHeight:function(n){return n.offsetHeight||n.scrollHeight},getWidth:function(n){return n.offsetWidth||n.scrollWidth},getPageSize:function(){var o,p;var n,s;if(self.innerHeight&&self.scrollMaxY){o=l.body.scrollWidth;p=self.innerHeight+self.scrollMaxY}else{if(l.body.scrollHeight>l.body.offsetHeight){o=l.body.scrollWidth;p=l.body.scrollHeight}else{o=l.body.offsetWidth;p=l.body.offsetHeight}}if(self.innerHeight){n=self.innerWidth;s=self.innerHeight}else{if(l.documentElement&&l.documentElement.clientHeight){n=l.documentElement.clientWidth;s=l.documentElement.clientHeight}else{if(l.body){n=l.body.clientWidth;s=l.body.clientHeight}}}var r=Math.max(o,n);var q=Math.max(p,s);return[r,q,n,s]}};var k=function(n){var o=this;var p=n;this.init=function(){if(!f.isVisible(p)){return}this.setInputAreaSelectionStartEnd();this.scrollTop=p.scrollTop;if(!this.text&&p.selectionStart||p.selectionStart===0){this.text=p.value}};this.setInputAreaSelection=function(){if(!f.isVisible(p)){return}if(p.selectionStart!==undefined&&!e.isOpera){p.focus();p.selectionStart=o.start;p.selectionEnd=o.end;p.scrollTop=o.scrollTop}else{if(l.selection){if(l.activeElement&&l.activeElement!==p){return}p.focus();var q=p.createTextRange();q.moveStart("character",-p.value.length);q.moveEnd("character",-p.value.length);q.moveEnd("character",o.end);q.moveStart("character",o.start);q.select()}}};this.setInputAreaSelectionStartEnd=function(){if(p.selectionStart||p.selectionStart===0){o.start=p.selectionStart;o.end=p.selectionEnd}else{if(l.selection){o.text=f.fixEolChars(p.value);var t;if(wmd.ieRetardedClick&&wmd.ieCachedRange){t=wmd.ieCachedRange;wmd.ieRetardedClick=false}else{t=l.selection.createRange()}var u=f.fixEolChars(t.text);var s="\x07";var r=s+u+s;t.text=r;var v=f.fixEolChars(p.value);t.moveStart("character",-r.length);t.text=u;o.start=v.indexOf(s);o.end=v.lastIndexOf(s)-s.length;var q=o.text.length-f.fixEolChars(p.value).length;if(q){t.moveStart("character",-u.length);while(q--){u+="\n";o.end+=1}t.text=u}this.setInputAreaSelection()}}};this.restore=function(){if(o.text!=undefined&&o.text!=p.value){p.value=o.text}this.setInputAreaSelection();p.scrollTop=o.scrollTop};this.getChunks=function(){var q=new h();q.before=f.fixEolChars(o.text.substring(0,o.start));q.startTag="";q.selection=f.fixEolChars(o.text.substring(o.start,o.end));q.endTag="";q.after=f.fixEolChars(o.text.substring(o.end));q.scrollTop=o.scrollTop;return q};this.setChunks=function(q){q.before=q.before+q.startTag;q.after=q.endTag+q.after;if(e.isOpera){q.before=q.before.replace(/\n/g,"\r\n");q.selection=q.selection.replace(/\n/g,"\r\n");q.after=q.after.replace(/\n/g,"\r\n")}this.start=q.before.length;this.end=q.before.length+q.selection.length;this.text=q.before+q.selection+q.after;this.scrollTop=q.scrollTop};this.init()};var h=function(){};h.prototype.findTags=function(o,q){var n=this;var p;if(o){p=f.extendRegExp(o,"","$");this.before=this.before.replace(p,function(r){n.startTag=n.startTag+r;return""});p=f.extendRegExp(o,"^","");this.selection=this.selection.replace(p,function(r){n.startTag=n.startTag+r;return""})}if(q){p=f.extendRegExp(q,"","$");this.selection=this.selection.replace(p,function(r){n.endTag=r+n.endTag;return""});p=f.extendRegExp(q,"^","");this.after=this.after.replace(p,function(r){n.endTag=r+n.endTag;return""})}};h.prototype.trimWhitespace=function(n){this.selection=this.selection.replace(/^(\s*)/,"");if(!n){this.before+=m.$1}this.selection=this.selection.replace(/(\s*)$/,"");if(!n){this.after=m.$1+this.after}};h.prototype.addBlankLines=function(q,p,n){if(q===undefined){q=1}if(p===undefined){p=1}q++;p++;var r;var s;var o;this.selection=this.selection.replace(/(^\n*)/,"");this.startTag=this.startTag+(o?o[1]:"");o=/(\n*$)/.exec(this.selection);this.selection=this.selection.replace(/(\n*$)/,"");this.endTag=this.endTag+(o?o[1]:"");o=/(^\n*)/.exec(this.startTag);this.startTag=this.startTag.replace(/(^\n*)/,"");this.before=this.before+(o?o[1]:"");o=/(\n*$)/.exec(this.endTag);this.endTag=this.endTag.replace(/(\n*$)/,"");this.after=this.after+(o?o[1]:"");if(this.before){r=s="";while(q--){r+="\\n?";s+="\n"}if(n){r="\\n*"}this.before=this.before.replace(new m(r+"$",""),s)}if(this.after){r=s="";while(p--){r+="\\n?";s+="\n"}if(n){r="\\n*"}this.after=this.after.replace(new m(r,""),s)}};var i=function(u,x,p){var n=this;var s=u;var o;var q;var t;var r;this.tick=function(){if(!f.isVisible(s)){return}if(s.selectionStart||s.selectionStart===0){var z=s.selectionStart;var y=s.selectionEnd;if(z!=o||y!=q){o=z;q=y;if(t!=s.value){t=s.value;return true}}}return false};var w=function(){if(!f.isVisible(s)){return}if(n.tick()){x()}};var v=function(){r=top.setInterval(w,p)};this.destroy=function(){top.clearInterval(r)};v()};var d=function(C){var p=this;var E;var o;var v;var u;var A;var w;var q=3000;var x="delayed";var s=function(G,H){f.addEvent(G,"input",H);G.onpaste=H;G.ondrop=H;f.addEvent(G,"keypress",H);f.addEvent(G,"keydown",H);o=new i(C.panels.input,H,C.options.previewPollInterval)};var z=function(){var G=0;if(top.innerHeight){G=top.pageYOffset}else{if(l.documentElement&&l.documentElement.scrollTop){G=l.documentElement.scrollTop}else{if(l.body){G=l.body.scrollTop}}}return G};var t=function(){if(!C.panels.preview&&!C.panels.output){return}var I=C.panels.input.value;if(I&&I==A){return}else{A=I}var H=new Date().getTime();if(!E&&C.showdown){E=new C.showdown.converter()}if(E){I=E.makeHtml(I)}var G=new Date().getTime();u=G-H;n(I);w=I};var D=function(){if(v){top.clearTimeout(v);v=undefined}if(x!=="manual"){var G=0;if(x==="delayed"){G=u}if(G>q){G=q}v=top.setTimeout(t,G)}};var r=function(G){if(G.scrollHeight<=G.clientHeight){return 1}return G.scrollTop/(G.scrollHeight-G.clientHeight)};var F=function(){if(C.panels.preview){C.panels.preview.scrollTop=(C.panels.preview.scrollHeight-C.panels.preview.clientHeight)*r(C.panels.preview)}if(C.panels.output){C.panels.output.scrollTop=(C.panels.output.scrollHeight-C.panels.output.clientHeight)*r(C.panels.output)}};this.refresh=function(G){if(G){A="";t()}else{D()}};this.processingTime=function(){return u};this.output=function(){return w};this.setUpdateMode=function(G){x=G;p.refresh()};var y=true;var n=function(J){var G=g.getTop(C.panels.input)-z();if(C.panels.output){if(C.panels.output.value!==undefined){C.panels.output.value=J;C.panels.output.readOnly=true}else{var I=J.replace(/&/g,"&");I=I.replace(/</g,"<");C.panels.output.innerHTML="<pre><code>"+I+"</code></pre>"}}if(C.panels.preview){C.panels.preview.innerHTML=J}F();if(y){y=false;return}var H=g.getTop(C.panels.input)-z();if(e.isIE){top.setTimeout(function(){top.scrollBy(0,H-G)},0)}else{top.scrollBy(0,H-G)}};var B=function(){s(C.panels.input,D);t();if(C.panels.preview){C.panels.preview.scrollTop=0}if(C.panels.output){C.panels.output.scrollTop=0}};this.destroy=function(){if(o){o.destroy()}};B()};var c=function(x,B,p){var E=this;var t=[];var o=0;var w="none";var z;var n;var v;var s;var C=function(G,F){if(w!=G){w=G;if(!F){u()}}if(!e.isIE||w!="moving"){v=top.setTimeout(r,1)}else{s=null}};var r=function(){s=new k(x);n.tick();v=undefined};this.setCommandMode=function(){w="command";u();v=top.setTimeout(r,0)};this.canUndo=function(){return o>1};this.canRedo=function(){if(t[o+1]){return true}return false};this.undo=function(){if(E.canUndo()){if(z){z.restore();z=null}else{t[o]=new k(x);t[--o].restore();if(p){p()}}}w="none";x.focus();r()};this.redo=function(){if(E.canRedo()){t[++o].restore();if(p){p()}}w="none";x.focus();r()};var u=function(){var F=s||new k(x);if(!F){return false}if(w=="moving"){if(!z){z=F}return}if(z){if(t[o-1].text!=z.text){t[o++]=z}z=null}t[o++]=F;t[o+1]=null;if(p){p()}};var D=function(F){var H=false;if(F.ctrlKey||F.metaKey){var G=F.charCode||F.keyCode;var I=String.fromCharCode(G);switch(I){case"y":E.redo();H=true;break;case"z":if(!F.shiftKey){E.undo()}else{E.redo()}H=true;break}}if(H){if(F.preventDefault){F.preventDefault()}if(top.event){top.event.returnValue=false}return}};var y=function(F){if(!F.ctrlKey&&!F.metaKey){var G=F.keyCode;if((G>=33&&G<=40)||(G>=63232&&G<=63235)){C("moving")}else{if(G==8||G==46||G==127){C("deleting")}else{if(G==13){C("newlines")}else{if(G==27){C("escape")}else{if((G<16||G>20)&&G!=91){C("typing")}}}}}}};var q=function(){f.addEvent(x,"keypress",function(G){if((G.ctrlKey||G.metaKey)&&(G.keyCode==89||G.keyCode==90)){G.preventDefault()}});var F=function(){if(e.isIE||(s&&s.text!=x.value)){if(v==undefined){w="paste";u();r()}}};n=new i(x,F,B);f.addEvent(x,"keydown",D);f.addEvent(x,"keydown",y);f.addEvent(x,"mousedown",function(){C("moving")});x.onpaste=F;x.ondrop=F};var A=function(){q();r();u()};this.destroy=function(){if(n){n.destroy()}};A()};WMDEditor.util=f;WMDEditor.position=g;WMDEditor.TextareaState=k;WMDEditor.InputPoller=i;WMDEditor.PreviewManager=d;WMDEditor.UndoManager=c;var l=top.document;var m=top.RegExp;var a=top.navigator;function b(){var n={};n.isIE=/msie/.test(a.userAgent.toLowerCase());n.isIE_5or6=/msie 6/.test(a.userAgent.toLowerCase())||/msie 5/.test(a.userAgent.toLowerCase());n.isIE_7plus=n.isIE&&!n.isIE_5or6;n.isOpera=/opera/.test(a.userAgent.toLowerCase());n.isKonqueror=/konqueror/.test(a.userAgent.toLowerCase());return n}var e=b();var j=function(p,r){p.Command={};p.Global={};p.buttons={};p.showdown=top.Attacklab&&top.Attacklab.showdown;var o=WMDEditor.util;var n=WMDEditor.position;var q=p.Command;p.ieCachedRange=null;p.ieRetardedClick=false;p.editor=function(B){if(!B){B=function(){}}var y=p.panels.input;var v=0;var C=this;var x;var E;var t;var z;var A;var H=function(J){y.focus();if(J.textOp){if(A){A.setCommandMode()}var L=new k(p.panels.input);if(!L){return}var N=L.getChunks();var I=function(){y.focus();if(N){L.setChunks(N)}L.restore();B()};var M=true;var K=J.textOp(N,I,M);if(!K){I()}}if(J.execute){J.execute(C)}};var F=function(){if(A){s(p.buttons["wmd-undo-button"],A.canUndo());s(p.buttons["wmd-redo-button"],A.canRedo())}};var s=function(I,K){var L="0px";var M="-20px";var J="-40px";if(K){I.style.backgroundPosition=I.XShift+" "+L;I.onmouseover=function(){this.style.backgroundPosition=this.XShift+" "+J};I.onmouseout=function(){this.style.backgroundPosition=this.XShift+" "+L};if(e.isIE){I.onmousedown=function(){p.ieRetardedClick=true;p.ieCachedRange=document.selection.createRange()}}if(!I.isHelp){I.onclick=function(){if(this.onmouseout){this.onmouseout()}H(this);return false}}}else{I.style.backgroundPosition=I.XShift+" "+M;I.onmouseover=I.onmouseout=I.onclick=function(){}}};var w=function(){var N=document.getElementById(r.button_bar||"wmd-button-bar");var J="0px";var M="-20px";var S="-40px";var Z=document.createElement("ul");Z.className="wmd-button-row";Z=N.appendChild(Z);var T=0;function X(af,ah,ai){var ag=document.createElement("li");p.buttons[af]=ag;ag.className="wmd-button "+af;ag.XShift=T+"px";T-=20;if(ah){ag.title=ah}if(ai){ag.textOp=ai}return ag}function V(af,ah,ai){var ag=X(af,ah,ai);s(ag,true);Z.appendChild(ag);return ag}var R=V("wmd-bold-button","Strong <strong> Ctrl+B",q.doBold);var Q=V("wmd-italic-button","Emphasis <em> Ctrl+I",q.doItalic);var W=V("wmd-link-button","Hyperlink <a> Ctrl+L",function(af,ag,ah){return q.doLinkOrImage(af,ag,false)});var aa=V("wmd-quote-button","Blockquote <blockquote> Ctrl+Q",q.doBlockquote);var ab=V("wmd-code-button","Code Sample <pre><code> Ctrl+K",q.doCode);var O=V("wmd-image-button","Image <img> Ctrl+G",function(af,ag,ah){return q.doLinkOrImage(af,ag,true)});var P=V("wmd-olist-button","Numbered List <ol> Ctrl+O",function(af,ag,ah){q.doList(af,ag,true,ah)});var ae=V("wmd-ulist-button","Bulleted List <ul> Ctrl+U",function(af,ag,ah){q.doList(af,ag,false,ah)});var Y=V("wmd-heading-button","Heading <h1>/<h2> Ctrl+H",q.doHeading);var K=V("wmd-hr-button","Horizontal Rule <hr> Ctrl+R",q.doHorizontalRule);var I=V("wmd-undo-button","Undo - Ctrl+Z");I.execute=function(af){af.undo()};var U=null;var ad=V("wmd-redo-button","Redo - Ctrl+Y");if(/win/.test(a.platform.toLowerCase())){ad.title="Redo - Ctrl+Y"}else{ad.title="Redo - Ctrl+Shift+Z"}ad.execute=function(af){af.redo()};var ac=X("wmd-help-button");ac.isHelp=true;s(ac,true);Z.appendChild(ac);var L=document.createElement("a");L.href=r.helpLink;L.target=r.helpTarget;L.title=r.helpHoverTitle;ac.appendChild(L);F()};var u=function(){if(/\?noundo/.test(l.location.href)){p.nativeUndo=true}if(!p.nativeUndo){A=new c(p.panels.input,p.options.pastePollInterval,function(){B();F()})}w();var J="keydown";if(e.isOpera){J="keypress"}o.addEvent(y,J,function(L){if(L.ctrlKey||L.metaKey){var M=L.charCode||L.keyCode;var K=String.fromCharCode(M).toLowerCase();switch(K){case"b":H(p.buttons["wmd-bold-button"]);break;case"i":H(p.buttons["wmd-italic-button"]);break;case"l":H(p.buttons["wmd-link-button"]);break;case"q":H(p.buttons["wmd-quote-button"]);break;case"k":H(p.buttons["wmd-code-button"]);break;case"g":H(p.buttons["wmd-image-button"]);break;case"o":H(p.buttons["wmd-olist-button"]);break;case"u":H(p.buttons["wmd-ulist-button"]);break;case"h":H(p.buttons["wmd-heading-button"]);break;case"r":H(p.buttons["wmd-hr-button"]);break;case"y":H(p.buttons["wmd-redo-button"]);break;case"z":if(L.shiftKey){H(p.buttons["wmd-redo-button"])}else{H(p.buttons["wmd-undo-button"])}break;default:return}if(L.preventDefault){L.preventDefault()}if(top.event){top.event.returnValue=false}}});o.addEvent(y,"keyup",function(K){if(!K.shiftKey&&!K.ctrlKey&&!K.metaKey){var L=K.charCode||K.keyCode;if(L===13){fakeButton={};fakeButton.textOp=q.doAutoindent;H(fakeButton)}}});if(e.isIE){o.addEvent(y,"keydown",function(K){var L=K.keyCode;if(L===27){return false}})}if(y.form){var I=y.form.onsubmit;y.form.onsubmit=function(){D();if(I){return I.apply(this,arguments)}}}};var D=function(){if(p.showdown){var I=new p.showdown.converter()}var J=y.value;var K=function(){y.value=J};if(!/markdown/.test(r.output_format.toLowerCase())){if(I){y.value=I.makeHtml(J);top.setTimeout(K,0)}}return true};this.undo=function(){if(A){A.undo()}};this.redo=function(){if(A){A.redo()}};var G=function(){u()};this.destroy=function(){if(A){A.destroy()}if(t.parentNode){t.parentNode.removeChild(t)}if(y){y.style.marginTop=""}top.clearInterval(z)};G()};q.prefixes="(?:\\s{4,}|\\s*>|\\s*-\\s+|\\s*\\d+\\.|=|\\+|-|_|\\*|#|\\s*\\[[^\n]]+\\]:)";q.unwrap=function(t){var s=new m("([^\\n])\\n(?!(\\n|"+q.prefixes+"))","g");t.selection=t.selection.replace(s,"$1 $2")};q.wrap=function(t,s){q.unwrap(t);var u=new m("(.{1,"+s+"})( +|$\\n?)","gm");t.selection=t.selection.replace(u,function(v,w){if(new m("^"+q.prefixes,"").test(v)){return v}return w+"\n"});t.selection=t.selection.replace(/\s+$/,"")};q.doBold=function(s,t,u){return q.doBorI(s,2,"strong text")};q.doItalic=function(s,t,u){return q.doBorI(s,1,"emphasized text")};q.doBorI=function(v,z,y){v.trimWhitespace();v.selection=v.selection.replace(/\n{2,}/g,"\n");v.before.search(/(\**$)/);var x=m.$1;v.after.search(/(^\**)/);var w=m.$1;var s=Math.min(x.length,w.length);if((s>=z)&&(s!=2||z!=1)){v.before=v.before.replace(m("[*]{"+z+"}$",""),"");v.after=v.after.replace(m("^[*]{"+z+"}",""),"")}else{if(!v.selection&&w){v.after=v.after.replace(/^([*_]*)/,"");v.before=v.before.replace(/(\s?)$/,"");var u=m.$1;v.before=v.before+w+u}else{if(!v.selection&&!w){v.selection=y}var t=z<=1?"*":"**";v.before=v.before+t;v.after=t+v.after}}return};q.stripLinkDefs=function(t,s){t=t.replace(/^[ ]{0,3}\[(\d+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|$)/gm,function(x,y,u,v,w){s[y]=x.replace(/\s*$/,"");if(v){s[y]=x.replace(/["(](.+?)[")]$/,"");return v+w}return""});return t};q.addLinkDef=function(z,v){var s=0;var u={};z.before=q.stripLinkDefs(z.before,u);z.selection=q.stripLinkDefs(z.selection,u);z.after=q.stripLinkDefs(z.after,u);var t="";var y=/(\[(?:\[[^\]]*\]|[^\[\]])*\][ ]?(?:\n[ ]*)?\[)(\d+)(\])/g;var x=function(B){s++;B=B.replace(/^[ ]{0,3}\[(\d+)\]:/," ["+s+"]:");t+="\n"+B};var w=function(C,D,E,B){if(u[E]){x(u[E]);return D+s+B}return C};z.before=z.before.replace(y,w);if(v){x(v)}else{z.selection=z.selection.replace(y,w)}var A=s;z.after=z.after.replace(y,w);if(z.after){z.after=z.after.replace(/\n*$/,"")}if(!z.after){z.selection=z.selection.replace(/\n*$/,"")}z.after+="\n\n"+t;return A};q.doLinkOrImage=function(s,t,v){s.trimWhitespace();s.findTags(/\s*!?\[/,/\][ ]?(?:\n[ ]*)?(\[.*?\])?/);if(s.endTag.length>1){s.startTag=s.startTag.replace(/!?\[/,"");s.endTag="";q.addLinkDef(s,null)}else{if(/\n\n/.test(s.selection)){q.addLinkDef(s,null);return}var u=function(y){if(y!==null){s.startTag=s.endTag="";var x=" [999]: "+y;var w=q.addLinkDef(s,x);s.startTag=v?"![":"[";s.endTag="]["+w+"]";if(!s.selection){if(v){s.selection="alt text"}else{s.selection="link text"}}}t()};if(v){o.prompt(r.imageDialogText,r.imageDefaultText,u)}else{o.prompt(r.linkDialogText,r.linkDefaultText,u)}return true}};q.doAutoindent=function(s,t,u){s.before=s.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/,"\n\n");s.before=s.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/,"\n\n");s.before=s.before.replace(/(\n|^)[ \t]+\n$/,"\n\n");u=false;if(/(\n|^)[ ]{0,3}([*+-])[ \t]+.*\n$/.test(s.before)){if(q.doList){q.doList(s,t,false,true)}}if(/(\n|^)[ ]{0,3}(\d+[.])[ \t]+.*\n$/.test(s.before)){if(q.doList){q.doList(s,t,true,true)}}if(/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(s.before)){if(q.doBlockquote){q.doBlockquote(s,t,u)}}if(/(\n|^)(\t|[ ]{4,}).*\n$/.test(s.before)){if(q.doCode){q.doCode(s,t,u)}}};q.doBlockquote=function(t,u,w){t.selection=t.selection.replace(/^(\n*)([^\r]+?)(\n*)$/,function(A,z,y,x){t.before+=z;t.after=x+t.after;return y});t.before=t.before.replace(/(>[ \t]*)$/,function(y,x){t.selection=x+t.selection;return""});var s=w?"Blockquote":"";t.selection=t.selection.replace(/^(\s|>)+$/,"");t.selection=t.selection||s;if(t.before){t.before=t.before.replace(/\n?$/,"\n")}if(t.after){t.after=t.after.replace(/^\n?/,"\n")}t.before=t.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/,function(x){t.startTag=x;return""});t.after=t.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/,function(x){t.endTag=x;return""});var v=function(y){var x=y?"> ":"";if(t.startTag){t.startTag=t.startTag.replace(/\n((>|\s)*)\n$/,function(A,z){return"\n"+z.replace(/^[ ]{0,3}>?[ \t]*$/gm,x)+"\n"})}if(t.endTag){t.endTag=t.endTag.replace(/^\n((>|\s)*)\n/,function(A,z){return"\n"+z.replace(/^[ ]{0,3}>?[ \t]*$/gm,x)+"\n"})}};if(/^(?![ ]{0,3}>)/m.test(t.selection)){t.selection=t.selection.replace(/^/gm,"> ");v(true);t.addBlankLines()}else{t.selection=t.selection.replace(/^[ ]{0,3}> ?/gm,"");q.unwrap(t);v(false);if(!/^(\n|^)[ ]{0,3}>/.test(t.selection)&&t.startTag){t.startTag=t.startTag.replace(/\n{0,2}$/,"\n\n")}if(!/(\n|^)[ ]{0,3}>.*$/.test(t.selection)&&t.endTag){t.endTag=t.endTag.replace(/^\n{0,2}/,"\n\n")}}if(!/\n/.test(t.selection)){t.selection=t.selection.replace(/^(> *)/,function(x,y){t.startTag+=y;return""})}};q.doCode=function(s,t,x){var w=/\S[ ]*$/.test(s.before);var y=/^[ ]*\S/.test(s.after);if((!y&&!w)||/\n/.test(s.selection)){s.before=s.before.replace(/[ ]{4}$/,function(z){s.selection=z+s.selection;return""});var v=1;var u=1;if(/\n(\t|[ ]{4,}).*\n$/.test(s.before)||s.after===""){v=0}if(/^\n(\t|[ ]{4,})/.test(s.after)){u=0}s.addBlankLines(v,u);if(!s.selection){s.startTag=" ";s.selection=x?"enter code here":""}else{if(/^[ ]{0,3}\S/m.test(s.selection)){s.selection=s.selection.replace(/^/gm," ")}else{s.selection=s.selection.replace(/^[ ]{4}/gm,"")}}}else{s.trimWhitespace();s.findTags(/`/,/`/);if(!s.startTag&&!s.endTag){s.startTag=s.endTag="`";if(!s.selection){s.selection=x?"enter code here":""}}else{if(s.endTag&&!s.startTag){s.before+=s.endTag;s.endTag=""}else{s.startTag=s.endTag=""}}}};q.doList=function(D,w,v,F){var G=/(\n|^)(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*$/;var E=/^\n*(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/;var s="-";var A=1;var y=function(){var H;if(v){H=" "+A+". ";A++}else{H=" "+s+" "}return H};var z=function(H){if(v===undefined){v=/^\s*\d/.test(H)}H=H.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm,function(I){return y()});return H};D.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/,null);if(D.before&&!/\n$/.test(D.before)&&!/^\n/.test(D.startTag)){D.before+=D.startTag;D.startTag=""}if(D.startTag){var u=/\d+[.]/.test(D.startTag);D.startTag="";D.selection=D.selection.replace(/\n[ ]{4}/g,"\n");q.unwrap(D);D.addBlankLines();if(u){D.after=D.after.replace(E,z)}if(v==u){return}}var x=1;D.before=D.before.replace(G,function(H){if(/^\s*([*+-])/.test(H)){s=m.$1}x=/[^\n]\n\n[^\n]/.test(H)?1:0;return z(H)});if(!D.selection){D.selection=F?"List item":" "}var B=y();var t=1;D.after=D.after.replace(E,function(H){t=/[^\n]\n\n[^\n]/.test(H)?1:0;return z(H)});D.trimWhitespace(true);D.addBlankLines(x,t,true);D.startTag=B;var C=B.replace(/./g," ");q.wrap(D,r.lineLength-C.length);D.selection=D.selection.replace(/\n/g,"\n"+C)};q.doHeading=function(u,v,y){u.selection=u.selection.replace(/\s+/g," ");u.selection=u.selection.replace(/(^\s+|\s+$)/g,"");if(!u.selection){u.startTag="## ";u.selection="Heading";u.endTag=" ##";return}var w=0;u.findTags(/#+[ ]*/,/[ ]*#+/);if(/#+/.test(u.startTag)){w=m.lastMatch.length}u.startTag=u.endTag="";u.findTags(null,/\s?(-+|=+)/);if(/=+/.test(u.endTag)){w=1}if(/-+/.test(u.endTag)){w=2}u.startTag=u.endTag="";u.addBlankLines(1,1);var x=w==0?2:w-1;if(x>0){var t=x>=2?"-":"=";var s=u.selection.length;if(s>r.lineLength){s=r.lineLength}u.endTag="\n";while(s--){u.endTag+=t}}};q.doHorizontalRule=function(s,t,u){s.startTag="----------\n";s.selection="";s.addBlankLines(2,1,true)}}})();function setup_wmd(a){return new WMDEditor(a)}window.Attacklab=window.Attacklab||{};window.Attacklab["showdown"]=window.Attacklab["showdown"]||{};window.Attacklab["showdown"]["converter"]=function(){var a;var j;var A;var i=0;this["makeHtml"]=function(H){a=[];j=[];A=[];H=H.replace(/~/g,"~T");H=H.replace(/\$/g,"~D");H=H.replace(/\r\n/g,"\n");H=H.replace(/\r/g,"\n");H="\n\n"+H+"\n\n";H=z(H);H=H.replace(/^[ \t]+$/mg,"");H=m(H);H=d(H);H=G(H);H=q(H);H=H.replace(/~D/g,"$$");H=H.replace(/~T/g,"~");return H};var d=function(I){var H=I.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm,function(L,N,M,K,J){N=N.toLowerCase();a[N]=h(M);if(K){return K+J}else{if(J){j[N]=J.replace(/"/g,""")}}return""});return H};var m=function(J){J=J.replace(/\n/g,"\n\n");var I="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del";var H="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math";J=J.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,x);J=J.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,x);J=J.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,x);J=J.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,x);J=J.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,x);J=J.replace(/\n\n/g,"\n");return J};var x=function(H,I){var J=I;J=J.replace(/\n\n/g,"\n");J=J.replace(/^\n/,"");J=J.replace(/\n+$/g,"");J="\n\n~K"+(A.push(J)-1)+"K\n\n";return J};var G=function(I){I=f(I);var H=o("<hr />");I=I.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,H);I=I.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm,H);I=I.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm,H);I=E(I);I=b(I);I=u(I);I=m(I);I=g(I);return I};var r=function(H){H=C(H);H=l(H);H=e(H);H=F(H);H=y(H);H=n(H);H=h(H);H=c(H);H=H.replace(/[ ]+\n/g," <br />\n");return H};var l=function(I){var H=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;I=I.replace(H,function(K){var J=K.replace(/(.)<\/?code>(?=.)/g,"$1`");J=w(J,"\\`*_");return J});return I};var y=function(H){H=H.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,D);H=H.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,D);H=H.replace(/(\[([^\[\]]+)\])()()()()()/g,D);return H};var D=function(N,T,S,R,Q,P,M,L){if(L===undefined){L=""}var K=T;var I=S;var J=R.toLowerCase();var H=Q;var O=L;if(H==""){if(J==""){J=I.toLowerCase().replace(/ ?\n/g," ")}H="#"+J;if(a[J]!==undefined){H=a[J];if(j[J]!==undefined){O=j[J]}}else{if(K.search(/\(\s*\)$/m)>-1){H=""}else{return K}}}H=w(H,"*_");var U='<a href="'+H+'"';if(O!=""){O=O.replace(/"/g,""");O=w(O,"*_");U+=' title="'+O+'"'}U+=">"+I+"</a>";return U};var F=function(H){H=H.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t);H=H.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t);return H};var t=function(N,T,S,R,Q,P,M,L){var K=T;var J=S;var I=R.toLowerCase();var H=Q;var O=L;if(!O){O=""}if(H==""){if(I==""){I=J.toLowerCase().replace(/ ?\n/g," ")}H="#"+I;if(a[I]!==undefined){H=a[I];if(j[I]!==undefined){O=j[I]}}else{return K}}J=J.replace(/"/g,""");H=w(H,"*_");var U='<img src="'+H+'" alt="'+J+'"';O=O.replace(/"/g,""");O=w(O,"*_");U+=' title="'+O+'"';U+=" />";return U};var f=function(H){H=H.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(I,J){return o("<h1>"+r(J)+"</h1>")});H=H.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(J,I){return o("<h2>"+r(I)+"</h2>")});H=H.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(I,L,K){var J=L.length;return o("<h"+J+">"+r(K)+"</h"+J+">")});return H};var p;var E=function(I){I+="~0";var H=/^(([ ]{0,3}([*+\-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+\-]|\d+[.])[ \t]+)))/gm;if(i){I=I.replace(H,function(K,N,M){var O=N;var L=(M.search(/[*+\-]/g)>-1)?"ul":"ol";O=O.replace(/\n{2,}/g,"\n\n\n");var J=p(O);J=J.replace(/\s+$/,"");J="<"+L+">"+J+"</"+L+">\n";return J})}else{H=/(\n\n|^\n?)(([ ]{0,3}([*+\-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+\-]|\d+[.])[ \t]+)))/g;I=I.replace(H,function(L,P,N,K){var O=P;var Q=N;var M=(K.search(/[*+\-]/g)>-1)?"ul":"ol";Q=Q.replace(/\n{2,}/g,"\n\n\n");var J=p(Q);J=O+"<"+M+">\n"+J+"</"+M+">\n";return J})}I=I.replace(/~0/,"");return I};p=function(H){i++;H=H.replace(/\n{2,}$/,"\n");H+="~0";H=H.replace(/(\n)?(^[ \t]*)([*+\-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+\-]|\d+[.])[ \t]+))/gm,function(K,M,L,J,I){var O=I;var N=M;var P=L;if(N||(O.search(/\n{2,}/)>-1)){O=G(s(O))}else{O=E(s(O));O=O.replace(/\n$/,"");O=r(O)}return"<li>"+O+"</li>\n"});H=H.replace(/~0/g,"");i--;return H};var b=function(H){H+="~0";H=H.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(I,K,J){var L=K;var M=J;L=v(s(L));L=z(L);L=L.replace(/^\n+/g,"");L=L.replace(/\n+$/g,"");L="<pre><code>"+L+"\n</code></pre>";return o(L)+M});H=H.replace(/~0/,"");return H};var o=function(H){H=H.replace(/(^\n+|\n+$)/g,"");return"\n\n~K"+(A.push(H)-1)+"K\n\n"};var C=function(H){H=H.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(K,M,L,J,I){var N=J;N=N.replace(/^([ \t]*)/g,"");N=N.replace(/[ \t]*$/g,"");N=v(N);return M+"<code>"+N+"</code>"});return H};var v=function(H){H=H.replace(/&/g,"&");H=H.replace(/</g,"<");H=H.replace(/>/g,">");H=w(H,"*_{}[]\\",false);return H};var c=function(H){H=H.replace(/(\*\*|__)(?=\S)([^\r]*?\S[\*_]*)\1/g,"<strong>$2</strong>");H=H.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>");return H};var u=function(H){H=H.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(I,J){var K=J;K=K.replace(/^[ \t]*>[ \t]?/gm,"~0");K=K.replace(/~0/g,"");K=K.replace(/^[ \t]+$/gm,"");K=G(K);K=K.replace(/(^|\n)/g,"$1 ");K=K.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(L,M){var N=M;N=N.replace(/^[ ]{2}/mg,"~0");N=N.replace(/~0/g,"");return N});return o("<blockquote>\n"+K+"\n</blockquote>")});return H};var g=function(O){var K;O=O.replace(/^\n+/g,"");O=O.replace(/\n+$/g,"");var N=O.split(/\n{2,}/g);var J=[];var H=N.length;for(K=0;K<H;K++){var M=N[K];if(M.search(/~K(\d+)K/g)>=0){J.push(M)}else{if(M.search(/\S/)>=0){M=r(M);M=M.replace(/^([ \t]*)/g,"<p>");M+="</p>";J.push(M)}}}H=J.length;for(K=0;K<H;K++){var I;while((I=/~K(\d+)K/.exec(J[K]))!==null){var L=A[I[1]];L=L.replace(/\$/g,"$$$$");J[K]=J[K].replace(/~K\d+K/,L)}}return J.join("\n\n")};var h=function(H){H=H.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&");H=H.replace(/<(?![a-z\/?\$!])/gi,"<");return H};var e=function(H){H=H.replace(/\\(\\)/g,k);H=H.replace(/\\([`*_{}\[\]()>#+-.!])/g,k);return H};var n=function(H){H=H.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'<a href="$1">$1</a>');H=H.replace(/<(?:mailto:)?([\-.\w]+\@[\-a-z0-9]+(\.[\-a-z0-9]+)*\.[a-z]+)>/gi,function(I,J){return B(q(J))});return H};var B=function(J){function I(L){var K="0123456789ABCDEF";var M=L.charCodeAt(0);return(K.charAt(M>>4)+K.charAt(M&15))}var H=[function(K){return"&#"+K.charCodeAt(0)+";"},function(K){return"&#x"+I(K)+";"},function(K){return K}];J="mailto:"+J;J=J.replace(/./g,function(K){if(K=="@"){K=H[Math.floor(Math.random()*2)](K)}else{if(K!=":"){var L=Math.random();K=(L>0.9?H[2](K):L>0.45?H[1](K):H[0](K))}}return K});J='<a href="'+J+'">'+J+"</a>";J=J.replace(/">.+:/g,'">');return J};var q=function(H){H=H.replace(/~E(\d+)E/g,function(I,K){var J=parseInt(K,10);return String.fromCharCode(J)});return H};var s=function(H){H=H.replace(/^(\t|[ ]{1,4})/gm,"~0");H=H.replace(/~0/g,"");return H};var z=function(H){H=H.replace(/\t(?=\t)/g," ");H=H.replace(/\t/g,"~A~B");H=H.replace(/~B(.+?)~A/g,function(I,L,K){var N=L;var J=4-N.length%4;for(var M=0;M<J;M++){N+=" "}return N});H=H.replace(/~A/g," ");H=H.replace(/~B/g,"");return H};var w=function(L,I,J){var H="(["+I.replace(/([\[\]\\])/g,"\\$1")+"])";if(J){H="\\\\"+H}var K=new RegExp(H,"g");L=L.replace(K,k);return L};var k=function(H,J){var I=J.charCodeAt(0);return"~E"+I+"E"}};window.Showdown=window.Attacklab["showdown"];if(window.Attacklab["fileLoaded"]){window.Attacklab["fileLoaded"]("showdown.js")};