- var Attacklab=Attacklab||{};
- Attacklab.wmdPlus=function(){
- this.symboltable;
- var _1=top;
- var _2=_1["Attacklab"];
- var _3=_1["document"];
- var _4=_1["RegExp"];
- var _5=_1["navigator"];
- var _6=_2.Util;
- var _7=_2.Position;
- var _8=_2.Command;
- _8.doAutoindent=function(_9){
- _9.before=_9.before.replace(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]*\n$/,"\n\n");
- _9.before=_9.before.replace(/(\n|^)[ ]{0,3}>[ \t]*\n$/,"\n\n");
- _9.before=_9.before.replace(/(\n|^)[ \t]+\n$/,"\n\n");
- if(/(\n|^)[ ]{0,3}([*+-]|\d+[.])[ \t]+.*\n$/.test(_9.before)){
- if(_8.doList){
- _8.doList(_9);
- }
- }
- if(/(\n|^)[ ]{0,3}>[ \t]+.*\n$/.test(_9.before)){
- if(_8.doBlockquote){
- _8.doBlockquote(_9);
- }
- }
- if(/(\n|^)(\t|[ ]{4,}).*\n$/.test(_9.before)){
- if(_8.doCode){
- _8.doCode(_9);
- }
- }
- };
- _8.doBlockquote=function(_a){
- _a.selection=_a.selection.replace(/^(\n*)([^\r]+?)(\n*)$/,function(_b,_c,_d,_e){
- _a.before+=_c;
- _a.after=_e+_a.after;
- return _d;
- });
- _a.before=_a.before.replace(/(>[ \t]*)$/,function(_f,_10){
- _a.selection=_10+_a.selection;
- return "";
- });
- _a.selection=_a.selection.replace(/^(\s|>)+$/,"");
- _a.selection=_a.selection||"Blockquote";
- if(_a.before){
- _a.before=_a.before.replace(/\n?$/,"\n");
- }
- if(_a.after){
- _a.after=_a.after.replace(/^\n?/,"\n");
- }
- _a.before=_a.before.replace(/(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*$)/,function(_11){
- _a.startTag=_11;
- return "";
- });
- _a.after=_a.after.replace(/^(((\n|^)(\n[ \t]*)*>(.+\n)*.*)+(\n[ \t]*)*)/,function(_12){
- _a.endTag=_12;
- return "";
- });
- var _13=function(_14){
- var _15=_14?"> ":"";
- if(_a.startTag){
- _a.startTag=_a.startTag.replace(/\n((>|\s)*)\n$/,function(_16,_17){
- return "\n"+_17.replace(/^[ ]{0,3}>?[ \t]*$/gm,_15)+"\n";
- });
- }
- if(_a.endTag){
- _a.endTag=_a.endTag.replace(/^\n((>|\s)*)\n/,function(_18,_19){
- return "\n"+_19.replace(/^[ ]{0,3}>?[ \t]*$/gm,_15)+"\n";
- });
- }
- };
- if(/^(?![ ]{0,3}>)/m.test(_a.selection)){
- _8.wrap(_a,_2.wmd_env.lineLength-2);
- _a.selection=_a.selection.replace(/^/gm,"> ");
- _13(true);
- _a.skipLines();
- }else{
- _a.selection=_a.selection.replace(/^[ ]{0,3}> ?/gm,"");
- _8.unwrap(_a);
- _13(false);
- if(!/^(\n|^)[ ]{0,3}>/.test(_a.selection)){
- if(_a.startTag){
- _a.startTag=_a.startTag.replace(/\n{0,2}$/,"\n\n");
- }
- }
- if(!/(\n|^)[ ]{0,3}>.*$/.test(_a.selection)){
- if(_a.endTag){
- _a.endTag=_a.endTag.replace(/^\n{0,2}/,"\n\n");
- }
- }
- }
- if(!/\n/.test(_a.selection)){
- _a.selection=_a.selection.replace(/^(> *)/,function(_1a,_1b){
- _a.startTag+=_1b;
- return "";
- });
- }
- };
- _8.doCode=function(_1c){
- var _1d=/\S[ ]*$/.test(_1c.before);
- var _1e=/^[ ]*\S/.test(_1c.after);
- if((!_1e&&!_1d)||/\n/.test(_1c.selection)){
- _1c.before=_1c.before.replace(/[ ]{4}$/,function(_1f){
- _1c.selection=_1f+_1c.selection;
- return "";
- });
- var _20=1;
- var _21=1;
- if(/\n(\t|[ ]{4,}).*\n$/.test(_1c.before)){
- _20=0;
- }
- if(/^\n(\t|[ ]{4,})/.test(_1c.after)){
- _21=0;
- }
- _1c.skipLines(_20,_21);
- if(!_1c.selection){
- _1c.startTag=" ";
- _1c.selection="print(\"code sample\");";
- return;
- }
- if(/^[ ]{0,3}\S/m.test(_1c.selection)){
- _1c.selection=_1c.selection.replace(/^/gm," ");
- }else{
- _1c.selection=_1c.selection.replace(/^[ ]{4}/gm,"");
- }
- }else{
- _1c.trimWhitespace();
- _1c.findTags(/`/,/`/);
- if(!_1c.startTag&&!_1c.endTag){
- _1c.startTag=_1c.endTag="`";
- if(!_1c.selection){
- _1c.selection="print(\"code sample\");";
- }
- }else{
- if(_1c.endTag&&!_1c.startTag){
- _1c.before+=_1c.endTag;
- _1c.endTag="";
- }else{
- _1c.startTag=_1c.endTag="";
- }
- }
- }
- };
- _8.autoindent={};
- _8.autoindent.textOp=_8.doAutoindent;
- _8.blockquote={};
- _8.blockquote.description="Blockquote <blockquote>";
- _8.blockquote.image="images/blockquote.png";
- _8.blockquote.key=".";
- _8.blockquote.keyCode=190;
- _8.blockquote.textOp=function(_22){
- return _8.doBlockquote(_22);
- };
- _8.code={};
- _8.code.description="Code Sample <pre><code>";
- _8.code.image="images/code.png";
- _8.code.key="k";
- _8.code.textOp=_8.doCode;
- _8.img={};
- _8.img.description="Image <img>";
- _8.img.image="images/img.png";
- _8.img.key="g";
- _8.img.textOp=function(_23,_24){
- return _8.doLinkOrImage(_23,true,_24);
- };
- _8.doList=function(_25,_26){
- var _27=/(([ ]{0,3}([*+-]|\d+[.])[ \t]+.*)(\n.+|\n{2,}([*+-].*|\d+[.])[ \t]+.*|\n{2,}[ \t]+\S.*)*)\n*/;
- var _28="";
- var _29=1;
- var _2a=function(){
- if(_26){
- var _2b=" "+_29+". ";
- _29++;
- return _2b;
- }
- var _2c=_28||"-";
- return " "+_2c+" ";
- };
- var _2d=function(_2e){
- if(_26==undefined){
- _26=/^\s*\d/.test(_2e);
- }
- _2e=_2e.replace(/^[ ]{0,3}([*+-]|\d+[.])\s/gm,function(_2f){
- return _2a();
- });
- return _2e;
- };
- var _30=function(){
- _31=_6.regexToString(_27);
- _31.expression="^\n*"+_31.expression;
- var _32=_6.stringToRegex(_31);
- _25.after=_25.after.replace(_32,_2d);
- };
- _25.findTags(/(\n|^)*[ ]{0,3}([*+-]|\d+[.])\s+/,null);
- var _33=/^\n/;
- if(_25.before&&!/\n$/.test(_25.before)&&!_33.test(_25.startTag)){
- _25.before+=_25.startTag;
- _25.startTag="";
- }
- if(_25.startTag){
- var _34=/\d+[.]/.test(_25.startTag);
- _25.startTag="";
- _25.selection=_25.selection.replace(/\n[ ]{4}/g,"\n");
- _8.unwrap(_25);
- _25.skipLines();
- if(_34){
- _30();
- }
- if(_26==_34){
- return;
- }
- }
- var _35=1;
- var _31=_6.regexToString(_27);
- _31.expression="(\\n|^)"+_31.expression+"$";
- var _36=_6.stringToRegex(_31);
- _25.before=_25.before.replace(_36,function(_37){
- if(/^\s*([*+-])/.test(_37)){
- _28=_4.$1;
- }
- _35=/[^\n]\n\n[^\n]/.test(_37)?1:0;
- return _2d(_37);
- });
- if(!_25.selection){
- _25.selection="List item";
- }
- var _38=_2a();
- var _39=1;
- _31=_6.regexToString(_27);
- _31.expression="^\n*"+_31.expression;
- _36=_6.stringToRegex(_31);
- _25.after=_25.after.replace(_36,function(_3a){
- _39=/[^\n]\n\n[^\n]/.test(_3a)?1:0;
- return _2d(_3a);
- });
- _25.trimWhitespace(true);
- _25.skipLines(_35,_39,true);
- _25.startTag=_38;
- var _3b=_38.replace(/./g," ");
- _8.wrap(_25,_2.wmd_env.lineLength-_3b.length);
- _25.selection=_25.selection.replace(/\n/g,"\n"+_3b);
- };
- _8.doHeading=function(_3c){
- _3c.selection=_3c.selection.replace(/\s+/g," ");
- _3c.selection=_3c.selection.replace(/(^\s+|\s+$)/g,"");
- var _3d=0;
- _3c.findTags(/#+[ ]*/,/[ ]*#+/);
- if(/#+/.test(_3c.startTag)){
- _3d=_4.lastMatch.length;
- }
- _3c.startTag=_3c.endTag="";
- _3c.findTags(null,/\s?(-+|=+)/);
- if(/=+/.test(_3c.endTag)){
- _3d=1;
- }
- if(/-+/.test(_3c.endTag)){
- _3d=2;
- }
- _3c.startTag=_3c.endTag="";
- _3c.skipLines(1,1);
- if(!_3c.selection){
- _3c.startTag="## ";
- _3c.selection="Heading";
- _3c.endTag=" ##";
- return;
- }
- var _3e=_3d==0?2:_3d-1;
- if(_3e){
- var _3f=_3e>=2?"-":"=";
- var _40=_3c.selection.length;
- if(_40>_2.wmd_env.lineLength){
- _40=_2.wmd_env.lineLength;
- }
- _3c.endTag="\n";
- while(_40--){
- _3c.endTag+=_3f;
- }
- }
- };
- _8.ol={};
- _8.ol.description="Numbered List <ol>";
- _8.ol.image="images/ol.png";
- _8.ol.key="o";
- _8.ol.textOp=function(_41){
- _8.doList(_41,true);
- };
- _8.ul={};
- _8.ul.description="Bulleted List <ul>";
- _8.ul.image="images/ul.png";
- _8.ul.key="u";
- _8.ul.textOp=function(_42){
- _8.doList(_42,false);
- };
- _8.h1={};
- _8.h1.description="Heading <h1>/<h2>";
- _8.h1.image="images/h1.png";
- _8.h1.key="h";
- _8.h1.textOp=_8.doHeading;
- _8.hr={};
- _8.hr.description="Horizontal Rule <hr>";
- _8.hr.image="images/hr.png";
- _8.hr.key="r";
- _8.hr.textOp=function(_43){
- _43.startTag="----------\n";
- _43.selection="";
- _43.skipLines(2,1,true);
- };
- };
- if(Attacklab.fileLoaded){
- Attacklab.fileLoaded("wmd-plus.js");
- }