/** * marked - A markdown parser (https://github.com/chjj/marked) * Copyright (c) 2011-2012, Christopher Jeffrey. (MIT Licensed) */ ;(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [^\0]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *([^\s]+)(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,paragraph:/^([^\n]+\n?(?!body))+\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,'gm') (/bull/g,block.bullet) ();block.list=replace(block.list) (/bull/g,block.bullet) ('hr',/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/) ();block.html=replace(block.html) ('comment',//) ('closed',/<(tag)[^\0]+?<\/\1>/) ('closing',/])*?>/) (/tag/g,tag()) ();block.paragraph=(function(){var paragraph=block.paragraph.source,body=[];(function push(rule){rule=block[rule]?block[rule].source:rule;body.push(rule.replace(/(^|[^\[])\^/g,'$1'));return push;}) ('hr') ('heading') ('lheading') ('blockquote') ('<'+tag()) ('def');return new RegExp(paragraph.replace('body',body.join('|')));})();block.normal={fences:block.fences,paragraph:block.paragraph};block.gfm={fences:/^ *``` *(\w+)? *\n([^\0]+?)\s*``` *(?:\n+|$)/,paragraph:/^/};block.gfm.paragraph=replace(block.paragraph) ('(?!','(?!'+block.gfm.fences.source.replace(/(^|[^\[])\^/g,'$1')+'|') ();block.lexer=function(src){var tokens=[];tokens.links={};src=src.replace(/\r\n|\r/g,'\n').replace(/\t/g,' ');return block.token(src,tokens,true);};block.token=function(src,tokens,top){var src=src.replace(/^ +$/gm,''),next,loose,cap,item,space,i,l;while(src){if(cap=block.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){tokens.push({type:'space'});}} if(cap=block.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,'');tokens.push({type:'code',text:!options.pedantic?cap.replace(/\n+$/,''):cap});continue;} if(cap=block.fences.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'code',lang:cap[1],text:cap[2]});continue;} if(cap=block.heading.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'heading',depth:cap[1].length,text:cap[2]});continue;} if(cap=block.lheading.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'heading',depth:cap[2]==='='?1:2,text:cap[1]});continue;} if(cap=block.hr.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'hr'});continue;} if(cap=block.blockquote.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'blockquote_start'});cap=cap[0].replace(/^ *> ?/gm,'');block.token(cap,tokens,top);tokens.push({type:'blockquote_end'});continue;} if(cap=block.list.exec(src)){src=src.substring(cap[0].length);tokens.push({type:'list_start',ordered:isFinite(cap[2])});cap=cap[0].match(block.item);next=false;l=cap.length;i=0;for(;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([^\0]+?)__(?!_)|^\*\*([^\0]+?)\*\*(?!\*)/,em:/^\b_((?:__|[^\0])+?)_\b|^\*((?:\*\*|[^\0])+?)\*(?!\*)/,code:/^(`+)([^\0]*?[^`])\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,text:/^[^\0]+?(?=[\\?(?:\s+['"]([^\0]*?)['"])?\s*/;inline.link=replace(inline.link) ('inside',inline._linkInside) ('href',inline._linkHref) ();inline.reflink=replace(inline.reflink) ('inside',inline._linkInside) ();inline.normal={url:inline.url,strong:inline.strong,em:inline.em,text:inline.text};inline.pedantic={strong:/^__(?=\S)([^\0]*?\S)__(?!_)|^\*\*(?=\S)([^\0]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([^\0]*?\S)_(?!_)|^\*(?=\S)([^\0]*?\S)\*(?!\*)/};inline.gfm={url:/^(https?:\/\/[^\s]+[^.,:;"')\]\s])/,text:/^[^\0]+?(?=[\\' +text +'';continue;} if(cap=inline.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='' +text +'';continue;} if(cap=inline.tag.exec(src)){src=src.substring(cap[0].length);out+=options.sanitize?escape(cap[0]):cap[0];continue;} if(cap=inline.link.exec(src)){src=src.substring(cap[0].length);out+=outputLink(cap,{href:cap[2],title:cap[3]});continue;} if((cap=inline.reflink.exec(src))||(cap=inline.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g,' ');link=links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue;} out+=outputLink(cap,link);continue;} if(cap=inline.strong.exec(src)){src=src.substring(cap[0].length);out+='' +inline.lexer(cap[2]||cap[1]) +'';continue;} if(cap=inline.em.exec(src)){src=src.substring(cap[0].length);out+='' +inline.lexer(cap[2]||cap[1]) +'';continue;} if(cap=inline.code.exec(src)){src=src.substring(cap[0].length);out+='' +escape(cap[2],true) +'';continue;} if(cap=inline.br.exec(src)){src=src.substring(cap[0].length);out+='
';continue;} if(cap=inline.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue;}} return out;};function outputLink(cap,link){if(cap[0][0]!=='!'){return'' +inline.lexer(cap[1]) +'';}else{return''
+escape(cap[1])
+'';}} var tokens,token;function next(){return token=tokens.pop();} function tok(){switch(token.type){case'space':{return'';} case'hr':{return'
\n';} case'heading':{return'' +inline.lexer(token.text) +'\n';} case'code':{if(options.highlight){token.code=options.highlight(token.text,token.lang);if(token.code!=null&&token.code!==token.text){token.escaped=true;token.text=token.code;}} if(!token.escaped){token.text=escape(token.text,true);} return'
'
+token.text
+'
\n';} case'blockquote_start':{var body='';while(next().type!=='blockquote_end'){body+=tok();} return'
\n' +body +'
\n';} case'list_start':{var type=token.ordered?'ol':'ul',body='';while(next().type!=='list_end'){body+=tok();} return'<' +type +'>\n' +body +'\n';} case'list_item_start':{var body='';while(next().type!=='list_item_end'){body+=token.type==='text'?parseText():tok();} return'
  • ' +body +'
  • \n';} case'loose_item_start':{var body='';while(next().type!=='list_item_end'){body+=tok();} return'
  • ' +body +'
  • \n';} case'html':{if(options.sanitize){return inline.lexer(token.text);} return!token.pre&&!options.pedantic?inline.lexer(token.text):token.text;} case'paragraph':{return'

    ' +inline.lexer(token.text) +'

    \n';} case'text':{return'

    ' +parseText() +'

    \n';}}} function parseText(){var body=token.text,top;while((top=tokens[tokens.length-1])&&top.type==='text'){body+='\n'+next().text;} return inline.lexer(body);} function parse(src){tokens=src.reverse();var out='';while(next()){out+=tok();} tokens=null;token=null;return out;} function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,'&').replace(//g,'>').replace(/"/g,'"').replace(/'/g,''');} function mangle(text){var out='',l=text.length,i=0,ch;for(;i0.5){ch='x'+ch.toString(16);} out+='&#'+ch+';';} return out;} function tag(){var tag='(?!(?:' +'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' +'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' +'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b';return tag;} function replace(regex,opt){regex=regex.source;opt=opt||'';return function self(name,val){if(!name)return new RegExp(regex,opt);regex=regex.replace(name,val.source||val);return self;};} function noop(){} noop.exec=noop;function marked(src,opt){setOptions(opt);return parse(block.lexer(src));} var options,defaults;function setOptions(opt){if(!opt)opt=defaults;if(options===opt)return;options=opt;if(options.gfm){block.fences=block.gfm.fences;block.paragraph=block.gfm.paragraph;inline.text=inline.gfm.text;inline.url=inline.gfm.url;}else{block.fences=block.normal.fences;block.paragraph=block.normal.paragraph;inline.text=inline.normal.text;inline.url=inline.normal.url;} if(options.pedantic){inline.em=inline.pedantic.em;inline.strong=inline.pedantic.strong;}else{inline.em=inline.normal.em;inline.strong=inline.normal.strong;}} marked.options=marked.setOptions=function(opt){defaults=opt;setOptions(opt);return marked;};marked.setOptions({gfm:true,pedantic:false,sanitize:false,highlight:null});marked.parser=function(src,opt){setOptions(opt);return parse(src);};marked.lexer=function(src,opt){setOptions(opt);return block.lexer(src);};marked.parse=marked;if(typeof module!=='undefined'){module.exports=marked;}else{this.marked=marked;}}).call(function(){return this||(typeof window!=='undefined'?window:global);}()); // Copyright (C) 2006 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. window['PR_SHOULD_USE_CONTINUATION']=true;var prettyPrintOne;var prettyPrint;(function(){var win=window;var FLOW_CONTROL_KEYWORDS=["break,continue,do,else,for,if,return,while"];var C_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default,"+"double,enum,extern,float,goto,int,long,register,short,signed,sizeof,"+"static,struct,switch,typedef,union,unsigned,void,volatile"];var COMMON_KEYWORDS=[C_KEYWORDS,"catch,class,delete,false,import,"+"new,operator,private,protected,public,this,throw,true,try,typeof"];var CPP_KEYWORDS=[COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool,"+"concept,concept_map,const_cast,constexpr,decltype,"+"dynamic_cast,explicit,export,friend,inline,late_check,"+"mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,"+"template,typeid,typename,using,virtual,where"];var JAVA_KEYWORDS=[COMMON_KEYWORDS,"abstract,boolean,byte,extends,final,finally,implements,import,"+"instanceof,null,native,package,strictfp,super,synchronized,throws,"+"transient"];var CSHARP_KEYWORDS=[JAVA_KEYWORDS,"as,base,by,checked,decimal,delegate,descending,dynamic,event,"+"fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,"+"lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,"+"sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,"+"var,virtual,where"];var COFFEE_KEYWORDS="all,and,by,catch,class,else,extends,false,finally,"+"for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,"+"throw,true,try,unless,until,when,while,yes";var JSCRIPT_KEYWORDS=[COMMON_KEYWORDS,"debugger,eval,export,function,get,null,set,undefined,var,with,"+"Infinity,NaN"];var PERL_KEYWORDS="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,"+"goto,if,import,last,local,my,next,no,our,print,package,redo,require,"+"sub,undef,unless,until,use,wantarray,while,BEGIN,END";var PYTHON_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"and,as,assert,class,def,del,"+"elif,except,exec,finally,from,global,import,in,is,lambda,"+"nonlocal,not,or,pass,print,raise,try,with,yield,"+"False,True,None"];var RUBY_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"alias,and,begin,case,class,"+"def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,"+"rescue,retry,self,super,then,true,undef,unless,until,when,yield,"+"BEGIN,END"];var SH_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"case,done,elif,esac,eval,fi,"+"function,in,local,set,then,until"];var ALL_KEYWORDS=[CPP_KEYWORDS,CSHARP_KEYWORDS,JSCRIPT_KEYWORDS,PERL_KEYWORDS+ PYTHON_KEYWORDS,RUBY_KEYWORDS,SH_KEYWORDS];var C_TYPES=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var PR_STRING='str';var PR_KEYWORD='kwd';var PR_COMMENT='com';var PR_TYPE='typ';var PR_LITERAL='lit';var PR_PUNCTUATION='pun';var PR_PLAIN='pln';var PR_TAG='tag';var PR_DECLARATION='dec';var PR_SOURCE='src';var PR_ATTRIB_NAME='atn';var PR_ATTRIB_VALUE='atv';var PR_NOCODE='nocode';var REGEXP_PRECEDER_PATTERN='(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*';function combinePrefixPatterns(regexs){var capturedGroupIndex=0;var needToFoldCase=false;var ignoreCase=false;for(var i=0,n=regexs.length;i122)){if(!(end<65||start>90)){ranges.push([Math.max(65,start)|32,Math.min(end,90)|32]);} if(!(end<97||start>122)){ranges.push([Math.max(97,start)&~32,Math.min(end,122)&~32]);}}}} ranges.sort(function(a,b){return(a[0]-b[0])||(b[1]-a[1]);});var consolidatedRanges=[];var lastRange=[];for(var i=0;irange[0]){if(range[1]+1>range[0]){out.push('-');} out.push(encodeEscape(range[1]));}} out.push(']');return out.join('');} function allowAnywhereFoldCaseAndRenumberGroups(regex){var parts=regex.source.match(new RegExp('(?:' +'\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' +'|\\\\u[A-Fa-f0-9]{4}' +'|\\\\x[A-Fa-f0-9]{2}' +'|\\\\[0-9]+' +'|\\\\[^ux0-9]' +'|\\(\\?[:!=]' +'|[\\(\\)\\^]' +'|[^\\x5B\\x5C\\(\\)\\^]+' +')','g'));var n=parts.length;var capturedGroups=[];for(var i=0,groupIndex=0;i=2&&ch0==='['){parts[i]=caseFoldCharset(p);}else if(ch0!=='\\'){parts[i]=p.replace(/[a-zA-Z]/g,function(ch){var cc=ch.charCodeAt(0);return'['+String.fromCharCode(cc&~32,cc|32)+']';});}}} return parts.join('');} var rewritten=[];for(var i=0,n=regexs.length;i=0;){shortcuts[shortcutChars.charAt(c)]=patternParts;}} var regex=patternParts[1];var k=''+regex;if(!regexKeys.hasOwnProperty(k)){allRegexs.push(regex);regexKeys[k]=null;}} allRegexs.push(/[\0-\uffff]/);tokenizer=combinePrefixPatterns(allRegexs);})();var nPatterns=fallthroughStylePatterns.length;var decorate=function(job){var sourceCode=job.sourceCode,basePos=job.basePos;var decorations=[basePos,PR_PLAIN];var pos=0;var tokens=sourceCode.match(tokenizer)||[];var styleCache={};for(var ti=0,nTokens=tokens.length;ti=5&&'lang-'===style.substring(0,5);if(isEmbedded&&!(match&&typeof match[1]==='string')){isEmbedded=false;style=PR_SOURCE;} if(!isEmbedded){styleCache[token]=style;}} var tokenStart=pos;pos+=token.length;if(!isEmbedded){decorations.push(basePos+tokenStart,style);}else{var embeddedSource=match[1];var embeddedSourceStart=token.indexOf(embeddedSource);var embeddedSourceEnd=embeddedSourceStart+embeddedSource.length;if(match[2]){embeddedSourceEnd=token.length-match[2].length;embeddedSourceStart=embeddedSourceEnd-embeddedSource.length;} var lang=style.substring(5);appendDecorations(basePos+tokenStart,token.substring(0,embeddedSourceStart),decorate,decorations);appendDecorations(basePos+tokenStart+embeddedSourceStart,embeddedSource,langHandlerForExtension(lang,embeddedSource),decorations);appendDecorations(basePos+tokenStart+embeddedSourceEnd,token.substring(embeddedSourceEnd),decorate,decorations);}} job.decorations=decorations;};return decorate;} function sourceDecorator(options){var shortcutStylePatterns=[],fallthroughStylePatterns=[];if(options['tripleQuotedStrings']){shortcutStylePatterns.push([PR_STRING,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,'\'"']);}else if(options['multiLineStrings']){shortcutStylePatterns.push([PR_STRING,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,'\'"`']);}else{shortcutStylePatterns.push([PR_STRING,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,'"\'']);} if(options['verbatimStrings']){fallthroughStylePatterns.push([PR_STRING,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);} var hc=options['hashComments'];if(hc){if(options['cStyleComments']){if(hc>1){shortcutStylePatterns.push([PR_COMMENT,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,'#']);}else{shortcutStylePatterns.push([PR_COMMENT,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,'#']);} fallthroughStylePatterns.push([PR_STRING,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null]);}else{shortcutStylePatterns.push([PR_COMMENT,/^#[^\r\n]*/,null,'#']);}} if(options['cStyleComments']){fallthroughStylePatterns.push([PR_COMMENT,/^\/\/[^\r\n]*/,null]);fallthroughStylePatterns.push([PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/,null]);} if(options['regexLiterals']){var REGEX_LITERAL=('/(?=[^/*])' +'(?:[^/\\x5B\\x5C]' +'|\\x5C[\\s\\S]' +'|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+' +'/');fallthroughStylePatterns.push(['lang-regex',new RegExp('^'+REGEXP_PRECEDER_PATTERN+'('+REGEX_LITERAL+')')]);} var types=options['types'];if(types){fallthroughStylePatterns.push([PR_TYPE,types]);} var keywords=(""+options['keywords']).replace(/^ | $/g,'');if(keywords.length){fallthroughStylePatterns.push([PR_KEYWORD,new RegExp('^(?:'+keywords.replace(/[\s,]+/g,'|')+')\\b'),null]);} shortcutStylePatterns.push([PR_PLAIN,/^\s+/,null,' \r\n\t\xA0']);var punctuation=/^.[^\s\w\.$@\'\"\`\/\\]*/;fallthroughStylePatterns.push([PR_LITERAL,/^@[a-z_$][a-z_$@0-9]*/i,null],[PR_TYPE,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[PR_PLAIN,/^[a-z_$][a-z_$@0-9]*/i,null],[PR_LITERAL,new RegExp('^(?:' +'0x[a-f0-9]+' +'|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)' +'(?:e[+\\-]?\\d+)?' +')' +'[a-z]*','i'),null,'0123456789'],[PR_PLAIN,/^\\[\s\S]?/,null],[PR_PUNCTUATION,punctuation,null]);return createSimpleLexer(shortcutStylePatterns,fallthroughStylePatterns);} var decorateSource=sourceDecorator({'keywords':ALL_KEYWORDS,'hashComments':true,'cStyleComments':true,'multiLineStrings':true,'regexLiterals':true});function numberLines(node,opt_startLineNum,isPreformatted){var nocode=/(?:^|\s)nocode(?:\s|$)/;var lineBreak=/\r\n?|\n/;var document=node.ownerDocument;var li=document.createElement('li');while(node.firstChild){li.appendChild(node.firstChild);} var listItems=[li];function walk(node){switch(node.nodeType){case 1:if(nocode.test(node.className)){break;} if('br'===node.nodeName){breakAfter(node);if(node.parentNode){node.parentNode.removeChild(node);}}else{for(var child=node.firstChild;child;child=child.nextSibling){walk(child);}} break;case 3:case 4:if(isPreformatted){var text=node.nodeValue;var match=text.match(lineBreak);if(match){var firstLine=text.substring(0,match.index);node.nodeValue=firstLine;var tail=text.substring(match.index+match[0].length);if(tail){var parent=node.parentNode;parent.insertBefore(document.createTextNode(tail),node.nextSibling);} breakAfter(node);if(!firstLine){node.parentNode.removeChild(node);}}} break;}} function breakAfter(lineEndNode){while(!lineEndNode.nextSibling){lineEndNode=lineEndNode.parentNode;if(!lineEndNode){return;}} function breakLeftOf(limit,copy){var rightSide=copy?limit.cloneNode(false):limit;var parent=limit.parentNode;if(parent){var parentClone=breakLeftOf(parent,1);var next=limit.nextSibling;parentClone.appendChild(rightSide);for(var sibling=next;sibling;sibling=next){next=sibling.nextSibling;parentClone.appendChild(sibling);}} return rightSide;} var copiedListItem=breakLeftOf(lineEndNode.nextSibling,0);for(var parent;(parent=copiedListItem.parentNode)&&parent.nodeType===1;){copiedListItem=parent;} listItems.push(copiedListItem);} for(var i=0;i=spanEnd){spanIndex+=2;} if(sourceIndex>=decEnd){decorationIndex+=2;}}}finally{if(sourceNode){sourceNode.style.display=oldDisplay;}}} var langHandlerRegistry={};function registerLangHandler(handler,fileExtensions){for(var i=fileExtensions.length;--i>=0;){var ext=fileExtensions[i];if(!langHandlerRegistry.hasOwnProperty(ext)){langHandlerRegistry[ext]=handler;}else if(win['console']){console['warn']('cannot override language handler %s',ext);}}} function langHandlerForExtension(extension,source){if(!(extension&&langHandlerRegistry.hasOwnProperty(extension))){extension=/^\s*]*(?:>|$)/],[PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],['lang-',/^<\?([\s\S]+?)(?:\?>|$)/],['lang-',/^<%([\s\S]+?)(?:%>|$)/],[PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],['lang-',/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],['lang-js',/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],['lang-css',/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],['lang-in.tag',/^(<\/?[a-z][^<>]*>)/i]]),['default-markup','htm','html','mxml','xhtml','xml','xsl']);registerLangHandler(createSimpleLexer([[PR_PLAIN,/^[\s]+/,null,' \t\r\n'],[PR_ATTRIB_VALUE,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,'\"\'']],[[PR_TAG,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[PR_ATTRIB_NAME,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],['lang-uq.val',/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[PR_PUNCTUATION,/^[=<>\/]+/],['lang-js',/^on\w+\s*=\s*\"([^\"]+)\"/i],['lang-js',/^on\w+\s*=\s*\'([^\']+)\'/i],['lang-js',/^on\w+\s*=\s*([^\"\'>\s]+)/i],['lang-css',/^style\s*=\s*\"([^\"]+)\"/i],['lang-css',/^style\s*=\s*\'([^\']+)\'/i],['lang-css',/^style\s*=\s*([^\"\'>\s]+)/i]]),['in.tag']);registerLangHandler(createSimpleLexer([],[[PR_ATTRIB_VALUE,/^[\s\S]+/]]),['uq.val']);registerLangHandler(sourceDecorator({'keywords':CPP_KEYWORDS,'hashComments':true,'cStyleComments':true,'types':C_TYPES}),['c','cc','cpp','cxx','cyc','m']);registerLangHandler(sourceDecorator({'keywords':'null,true,false'}),['json']);registerLangHandler(sourceDecorator({'keywords':CSHARP_KEYWORDS,'hashComments':true,'cStyleComments':true,'verbatimStrings':true,'types':C_TYPES}),['cs']);registerLangHandler(sourceDecorator({'keywords':JAVA_KEYWORDS,'cStyleComments':true}),['java']);registerLangHandler(sourceDecorator({'keywords':SH_KEYWORDS,'hashComments':true,'multiLineStrings':true}),['bsh','csh','sh']);registerLangHandler(sourceDecorator({'keywords':PYTHON_KEYWORDS,'hashComments':true,'multiLineStrings':true,'tripleQuotedStrings':true}),['cv','py']);registerLangHandler(sourceDecorator({'keywords':PERL_KEYWORDS,'hashComments':true,'multiLineStrings':true,'regexLiterals':true}),['perl','pl','pm']);registerLangHandler(sourceDecorator({'keywords':RUBY_KEYWORDS,'hashComments':true,'multiLineStrings':true,'regexLiterals':true}),['rb']);registerLangHandler(sourceDecorator({'keywords':JSCRIPT_KEYWORDS,'cStyleComments':true,'regexLiterals':true}),['js']);registerLangHandler(sourceDecorator({'keywords':COFFEE_KEYWORDS,'hashComments':3,'cStyleComments':true,'multilineStrings':true,'tripleQuotedStrings':true,'regexLiterals':true}),['coffee']);registerLangHandler(createSimpleLexer([],[[PR_STRING,/^[\s\S]+/]]),['regex']);function applyDecorator(job){var opt_langExtension=job.langExtension;try{var sourceAndSpans=extractSourceSpans(job.sourceNode,job.pre);var source=sourceAndSpans.sourceCode;job.sourceCode=source;job.spans=sourceAndSpans.spans;job.basePos=0;langHandlerForExtension(opt_langExtension,source)(job);recombineTagsAndDecorations(job);}catch(e){if(win['console']){console['log'](e&&e['stack']?e['stack']:e);}}} function prettyPrintOne(sourceCodeHtml,opt_langExtension,opt_numberLines){var container=document.createElement('pre');container.innerHTML=sourceCodeHtml;if(opt_numberLines){numberLines(container,opt_numberLines,true);} var job={langExtension:opt_langExtension,numberLines:opt_numberLines,sourceNode:container,pre:1};applyDecorator(job);return container.innerHTML;} function prettyPrint(opt_whenDone){function byTagName(tn){return document.getElementsByTagName(tn);} var codeSegments=[byTagName('pre'),byTagName('code'),byTagName('xmp')];var elements=[];for(var i=0;i stuff // // Use viewport so that Bootstrap is actually responsive on mobile var metaEl = document.createElement('meta'); metaEl.name = 'viewport'; metaEl.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'; if (document.head.firstChild) document.head.insertBefore(metaEl, document.head.firstChild); else document.head.appendChild(metaEl); // Get origin of script var origin = ''; for (var i = 0; i < scriptEls.length; i++) { if (scriptEls[i].src.match('strapdown')) { origin = scriptEls[i].src; } } var originBase = origin.substr(0, origin.lastIndexOf('/')); // Get theme var theme = markdownEl.getAttribute('theme') || 'bootstrap'; theme = theme.toLowerCase(); // Stylesheets var linkEl = document.createElement('link'); linkEl.href = originBase + '/themes/'+theme+'.min.css'; linkEl.rel = 'stylesheet'; document.head.appendChild(linkEl); var linkEl = document.createElement('link'); linkEl.href = originBase + '/strapdown.css'; linkEl.rel = 'stylesheet'; document.head.appendChild(linkEl); var linkEl = document.createElement('link'); linkEl.href = originBase + '/themes/bootstrap-responsive.min.css'; linkEl.rel = 'stylesheet'; document.head.appendChild(linkEl); ////////////////////////////////////////////////////////////////////// // // stuff // var markdown = markdownEl.textContent || markdownEl.innerText; var newNode = document.createElement('div'); newNode.className = 'container'; newNode.id = 'content'; document.body.replaceChild(newNode, markdownEl); // Insert navbar if there's none var newNode = document.createElement('div'); newNode.className = 'navbar navbar-fixed-top'; if (!navbarEl && titleEl) { newNode.innerHTML = ''; document.body.insertBefore(newNode, document.body.firstChild); var title = titleEl.innerHTML; var headlineEl = document.getElementById('headline'); if (headlineEl) headlineEl.innerHTML = title; } ////////////////////////////////////////////////////////////////////// // // Markdown! // // Generate Markdown var html = marked(markdown); document.getElementById('content').innerHTML = html; // Prettify var codeEls = document.getElementsByTagName('code'); for (var i=0, ii=codeEls.length; i