1 <html><head><title>Roo/Markdown.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">//
3 * marked - a markdown parser
4 * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
5 * https://github.com/chjj/marked
11 * Roo.Markdown - is a very crude wrapper around marked..
15 * alert( Roo.Markdown.toHtml("Markdown *rocks*.") );
17 * Note: move the sample code to the bottom of this
18 * file before uncommenting it.
22 </span><span class="jsdoc-var">Roo.Markdown </span><span class="jsdoc-syntax">= {};
23 </span><span class="jsdoc-var">Roo.Markdown.toHtml </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
25 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Markdown.marked.setOptions</span><span class="jsdoc-syntax">({
26 </span><span class="jsdoc-var">renderer</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Markdown.marked.Renderer</span><span class="jsdoc-syntax">(),
27 </span><span class="jsdoc-var">gfm</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
28 </span><span class="jsdoc-var">tables</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
29 </span><span class="jsdoc-var">breaks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
30 </span><span class="jsdoc-var">pedantic</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
31 </span><span class="jsdoc-var">sanitize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
32 </span><span class="jsdoc-var">smartLists</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
33 </span><span class="jsdoc-var">smartypants</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false
34 </span><span class="jsdoc-syntax">});
35 </span><span class="jsdoc-comment">// A FEW HACKS!!?
37 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.replace</span><span class="jsdoc-syntax">(/\\\n/g,</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">);
38 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.Markdown.marked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
40 </span><span class="jsdoc-comment">//
43 // Wraps all "globals" so that the only thing
44 // exposed is makeHtml().
46 </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
48 </span><span class="jsdoc-comment">/**
58 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">escape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">encode</span><span class="jsdoc-syntax">) {
59 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html
60 .replace</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">encode </span><span class="jsdoc-syntax">? /&(?!#?\w+;)/g : /&/g, </span><span class="jsdoc-string">'&amp;'</span><span class="jsdoc-syntax">)
61 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/</g, </span><span class="jsdoc-string">'&lt;'</span><span class="jsdoc-syntax">)
62 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/>/g, </span><span class="jsdoc-string">'&gt;'</span><span class="jsdoc-syntax">)
63 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/"/g, </span><span class="jsdoc-string">'&quot;'</span><span class="jsdoc-syntax">)
64 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">'&#39;'</span><span class="jsdoc-syntax">);
67 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">unescape </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">) {
68 </span><span class="jsdoc-comment">// explicitly match decimal, hex, and named HTML entities
69 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html.replace</span><span class="jsdoc-syntax">(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
70 </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.toLowerCase</span><span class="jsdoc-syntax">();
71 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'colon'</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">':'</span><span class="jsdoc-syntax">; }
72 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(0) === </span><span class="jsdoc-string">'#'</span><span class="jsdoc-syntax">) {
73 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n.charAt</span><span class="jsdoc-syntax">(1) === </span><span class="jsdoc-string">'x'
74 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">parseInt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(2), 16))
75 : </span><span class="jsdoc-var">String.fromCharCode</span><span class="jsdoc-syntax">(+</span><span class="jsdoc-var">n.substring</span><span class="jsdoc-syntax">(1));
77 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
81 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">replace </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">) {
82 </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.source</span><span class="jsdoc-syntax">;
83 </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
84 </span><span class="jsdoc-keyword">return function </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">) {
85 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">regex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">); }
86 </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.source </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">;
87 </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">val.replace</span><span class="jsdoc-syntax">(/(^|[^\[])\^/g, </span><span class="jsdoc-string">'$1'</span><span class="jsdoc-syntax">);
88 </span><span class="jsdoc-var">regex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">regex.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">);
89 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">self</span><span class="jsdoc-syntax">;
94 </span><span class="jsdoc-comment">/**
97 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">noop </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">() {}
98 </span><span class="jsdoc-var">noop.exec </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">;
100 </span><span class="jsdoc-comment">/**
103 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">merge </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">) {
104 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 1
105 , </span><span class="jsdoc-var">target
106 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">;
108 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">arguments.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
109 </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
110 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">key </span><span class="jsdoc-keyword">in </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">) {
111 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Object.prototype.hasOwnProperty.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">)) {
112 </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">target</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">key</span><span class="jsdoc-syntax">];
117 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">obj</span><span class="jsdoc-syntax">;
121 </span><span class="jsdoc-comment">/**
122 * Block-Level Grammar
128 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">block </span><span class="jsdoc-syntax">= {
129 </span><span class="jsdoc-var">newline</span><span class="jsdoc-syntax">: /^\n+/,
130 </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">: /^( {4}[^\n]+\n*)+/,
131 </span><span class="jsdoc-var">fences</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">,
132 </span><span class="jsdoc-var">hr</span><span class="jsdoc-syntax">: /^( *[-*_]){3,} *(?:\n+|$)/,
133 </span><span class="jsdoc-var">heading</span><span class="jsdoc-syntax">: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
134 </span><span class="jsdoc-var">nptable</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">,
135 </span><span class="jsdoc-var">lheading</span><span class="jsdoc-syntax">: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
136 </span><span class="jsdoc-var">blockquote</span><span class="jsdoc-syntax">: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,
137 </span><span class="jsdoc-var">list</span><span class="jsdoc-syntax">: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
138 </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,
139 </span><span class="jsdoc-var">def</span><span class="jsdoc-syntax">: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
140 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">,
141 </span><span class="jsdoc-var">paragraph</span><span class="jsdoc-syntax">: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
142 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: /^[^\n]+/
145 </span><span class="jsdoc-var">block.bullet </span><span class="jsdoc-syntax">= /(?:[*+-]|\d+\.)/;
146 </span><span class="jsdoc-var">block.item </span><span class="jsdoc-syntax">= /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
147 </span><span class="jsdoc-var">block.item </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.item</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'gm'</span><span class="jsdoc-syntax">)
148 (/bull/g, </span><span class="jsdoc-var">block.bullet</span><span class="jsdoc-syntax">)
151 </span><span class="jsdoc-var">block.list </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.list</span><span class="jsdoc-syntax">)
152 (/bull/g, </span><span class="jsdoc-var">block.bullet</span><span class="jsdoc-syntax">)
153 (</span><span class="jsdoc-string">'hr'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))'</span><span class="jsdoc-syntax">)
154 (</span><span class="jsdoc-string">'def'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'\\n+(?=' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">block.def.source </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">')'</span><span class="jsdoc-syntax">)
157 </span><span class="jsdoc-var">block.blockquote </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.blockquote</span><span class="jsdoc-syntax">)
158 (</span><span class="jsdoc-string">'def'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.def</span><span class="jsdoc-syntax">)
161 </span><span class="jsdoc-var">block._tag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'(?!(?:'
162 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
163 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
164 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'</span><span class="jsdoc-syntax">;
166 </span><span class="jsdoc-var">block.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.html</span><span class="jsdoc-syntax">)
167 (</span><span class="jsdoc-string">'comment'</span><span class="jsdoc-syntax">, /<!--[\s\S]*?-->/)
168 (</span><span class="jsdoc-string">'closed'</span><span class="jsdoc-syntax">, /<(tag)[\s\S]+?<\/\1>/)
169 (</span><span class="jsdoc-string">'closing'</span><span class="jsdoc-syntax">, /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
170 (/tag/g, </span><span class="jsdoc-var">block._tag</span><span class="jsdoc-syntax">)
173 </span><span class="jsdoc-var">block.paragraph </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.paragraph</span><span class="jsdoc-syntax">)
174 (</span><span class="jsdoc-string">'hr'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.hr</span><span class="jsdoc-syntax">)
175 (</span><span class="jsdoc-string">'heading'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.heading</span><span class="jsdoc-syntax">)
176 (</span><span class="jsdoc-string">'lheading'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.lheading</span><span class="jsdoc-syntax">)
177 (</span><span class="jsdoc-string">'blockquote'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.blockquote</span><span class="jsdoc-syntax">)
178 (</span><span class="jsdoc-string">'tag'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'<' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">block._tag</span><span class="jsdoc-syntax">)
179 (</span><span class="jsdoc-string">'def'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">block.def</span><span class="jsdoc-syntax">)
182 </span><span class="jsdoc-comment">/**
183 * Normal Block Grammar
186 </span><span class="jsdoc-var">block.normal </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">block</span><span class="jsdoc-syntax">);
188 </span><span class="jsdoc-comment">/**
192 </span><span class="jsdoc-var">block.gfm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">block.normal</span><span class="jsdoc-syntax">, {
193 </span><span class="jsdoc-var">fences</span><span class="jsdoc-syntax">: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,
194 </span><span class="jsdoc-var">paragraph</span><span class="jsdoc-syntax">: /^/,
195 </span><span class="jsdoc-var">heading</span><span class="jsdoc-syntax">: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/
198 </span><span class="jsdoc-var">block.gfm.paragraph </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">block.paragraph</span><span class="jsdoc-syntax">)
199 (</span><span class="jsdoc-string">'(?!'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'(?!'
200 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">block.gfm.fences.source.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\\1'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'\\2'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'|'
201 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">block.list.source.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\\1'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'\\3'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-string">'|'</span><span class="jsdoc-syntax">)
204 </span><span class="jsdoc-comment">/**
205 * GFM + Tables Block Grammar
208 </span><span class="jsdoc-var">block.tables </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">block.gfm</span><span class="jsdoc-syntax">, {
209 </span><span class="jsdoc-var">nptable</span><span class="jsdoc-syntax">: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
210 </span><span class="jsdoc-var">table</span><span class="jsdoc-syntax">: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
213 </span><span class="jsdoc-comment">/**
217 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Lexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
218 </span><span class="jsdoc-var">this.tokens </span><span class="jsdoc-syntax">= [];
219 </span><span class="jsdoc-var">this.tokens.links </span><span class="jsdoc-syntax">= {};
220 </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">;
221 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">block.normal</span><span class="jsdoc-syntax">;
223 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.gfm</span><span class="jsdoc-syntax">) {
224 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.tables</span><span class="jsdoc-syntax">) {
225 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">block.tables</span><span class="jsdoc-syntax">;
226 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
227 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">block.gfm</span><span class="jsdoc-syntax">;
232 </span><span class="jsdoc-comment">/**
236 </span><span class="jsdoc-var">Lexer.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">block</span><span class="jsdoc-syntax">;
238 </span><span class="jsdoc-comment">/**
242 </span><span class="jsdoc-var">Lexer.lex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
243 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Lexer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
244 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">lexer.lex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">);
247 </span><span class="jsdoc-comment">/**
251 </span><span class="jsdoc-var">Lexer.prototype.lex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
252 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src
253 .replace</span><span class="jsdoc-syntax">(/\r\n|\r/g, </span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">)
254 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\t/g, </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">)
255 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\u00a0/g, </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">)
256 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\u2424/g, </span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">);
258 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.token</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
261 </span><span class="jsdoc-comment">/**
265 </span><span class="jsdoc-var">Lexer.prototype.token </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bq</span><span class="jsdoc-syntax">) {
266 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.replace</span><span class="jsdoc-syntax">(/^ +$/gm, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)
267 , </span><span class="jsdoc-var">next
268 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">loose
269 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cap
270 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bull
271 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">b
272 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">item
273 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">space
274 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i
275 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">;
277 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
278 </span><span class="jsdoc-comment">// newline
279 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.newline.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
280 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
281 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">> 1) {
282 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
283 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'space'
284 </span><span class="jsdoc-syntax">});
288 </span><span class="jsdoc-comment">// code
289 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.code.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
290 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
291 </span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ {4}/gm, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
292 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
293 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'code'</span><span class="jsdoc-syntax">,
294 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: !</span><span class="jsdoc-var">this.options.pedantic
295 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">cap.replace</span><span class="jsdoc-syntax">(/\n+$/, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)
296 : </span><span class="jsdoc-var">cap
297 </span><span class="jsdoc-syntax">});
298 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
301 </span><span class="jsdoc-comment">// fences (gfm)
302 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.fences.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
303 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
304 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
305 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'code'</span><span class="jsdoc-syntax">,
306 </span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2],
307 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[3] || </span><span class="jsdoc-string">''
308 </span><span class="jsdoc-syntax">});
309 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
312 </span><span class="jsdoc-comment">// heading
313 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.heading.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
314 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
315 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
316 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'heading'</span><span class="jsdoc-syntax">,
317 </span><span class="jsdoc-var">depth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">,
318 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2]
320 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
323 </span><span class="jsdoc-comment">// table no leading pipe (gfm)
324 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">top </span><span class="jsdoc-syntax">&& (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.nptable.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
325 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
327 </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= {
328 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
329 </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *| *\| *$/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */),
330 </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *|\| *$/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */),
331 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[3]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\n$/, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">)
334 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">item.align.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
335 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(/^ *-+: *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
336 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'right'</span><span class="jsdoc-syntax">;
337 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(/^ *:-+: *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
338 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'center'</span><span class="jsdoc-syntax">;
339 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(/^ *:-+ *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
340 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">;
341 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
342 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
346 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">item.cells.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
347 </span><span class="jsdoc-var">item.cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">item.cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */);
350 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">);
352 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
355 </span><span class="jsdoc-comment">// lheading
356 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.lheading.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
357 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
358 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
359 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'heading'</span><span class="jsdoc-syntax">,
360 </span><span class="jsdoc-var">depth</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2] === </span><span class="jsdoc-string">'=' </span><span class="jsdoc-syntax">? 1 : 2,
361 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]
363 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
366 </span><span class="jsdoc-comment">// hr
367 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.hr.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
368 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
369 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
370 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'hr'
371 </span><span class="jsdoc-syntax">});
372 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
375 </span><span class="jsdoc-comment">// blockquote
376 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.blockquote.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
377 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
379 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
380 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'blockquote_start'
381 </span><span class="jsdoc-syntax">});
383 </span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *> ?/gm, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
385 </span><span class="jsdoc-comment">// Pass `top` to keep the current
386 // "toplevel" state. This is exactly
387 // how markdown.pl works.
388 </span><span class="jsdoc-var">this.token</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
390 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
391 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'blockquote_end'
392 </span><span class="jsdoc-syntax">});
394 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
397 </span><span class="jsdoc-comment">// list
398 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.list.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
399 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
400 </span><span class="jsdoc-var">bull </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2];
402 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
403 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'list_start'</span><span class="jsdoc-syntax">,
404 </span><span class="jsdoc-var">ordered</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">bull.length </span><span class="jsdoc-syntax">> 1
407 </span><span class="jsdoc-comment">// Get each top-level item.
408 </span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.match</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rules.item</span><span class="jsdoc-syntax">);
410 </span><span class="jsdoc-var">next </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
411 </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap.length</span><span class="jsdoc-syntax">;
412 </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
414 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
415 </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
417 </span><span class="jsdoc-comment">// Remove the list item's bullet
418 // so it is seen as the next token.
419 </span><span class="jsdoc-var">space </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">item.length</span><span class="jsdoc-syntax">;
420 </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">item.replace</span><span class="jsdoc-syntax">(/^ *([*+-]|\d+\.) +/, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
422 </span><span class="jsdoc-comment">// Outdent whatever the
423 // list item contains. Hacky.
424 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(~</span><span class="jsdoc-var">item.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n '</span><span class="jsdoc-syntax">)) {
425 </span><span class="jsdoc-var">space </span><span class="jsdoc-syntax">-= </span><span class="jsdoc-var">item.length</span><span class="jsdoc-syntax">;
426 </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= !</span><span class="jsdoc-var">this.options.pedantic
427 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">item.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">RegExp</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'^ {1,' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">space </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'}'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'gm'</span><span class="jsdoc-syntax">), </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)
428 : </span><span class="jsdoc-var">item.replace</span><span class="jsdoc-syntax">(/^ {1,4}/gm, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
431 </span><span class="jsdoc-comment">// Determine whether the next list item belongs here.
432 // Backpedal if it does not belong in this list.
433 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.smartLists </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">- 1) {
434 </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">block.bullet.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ 1])[0];
435 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">bull </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">b </span><span class="jsdoc-syntax">&& !(</span><span class="jsdoc-var">bull.length </span><span class="jsdoc-syntax">> 1 && </span><span class="jsdoc-var">b.length </span><span class="jsdoc-syntax">> 1)) {
436 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap.slice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+ 1)</span><span class="jsdoc-var">.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">;
437 </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">- 1;
441 </span><span class="jsdoc-comment">// Determine whether item is loose or not.
442 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
443 // for discount behavior.
444 </span><span class="jsdoc-var">loose </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">next </span><span class="jsdoc-syntax">|| /\n\n(?!\s*$)/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">);
445 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">- 1) {
446 </span><span class="jsdoc-var">next </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">item.charAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.length </span><span class="jsdoc-syntax">- 1) === </span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">;
447 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">loose</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-var">loose </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">next</span><span class="jsdoc-syntax">; }
450 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
451 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">loose
452 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'loose_item_start'
453 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'list_item_start'
454 </span><span class="jsdoc-syntax">});
456 </span><span class="jsdoc-comment">// Recurse.
457 </span><span class="jsdoc-var">this.token</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">bq</span><span class="jsdoc-syntax">);
459 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
460 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'list_item_end'
461 </span><span class="jsdoc-syntax">});
464 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
465 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'list_end'
466 </span><span class="jsdoc-syntax">});
468 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
471 </span><span class="jsdoc-comment">// html
472 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.html.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
473 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
474 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
475 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.options.sanitize
476 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'paragraph'
477 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'html'</span><span class="jsdoc-syntax">,
478 </span><span class="jsdoc-var">pre</span><span class="jsdoc-syntax">: !</span><span class="jsdoc-var">this.options.sanitizer
479 </span><span class="jsdoc-syntax">&& (</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1] === </span><span class="jsdoc-string">'pre' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1] === </span><span class="jsdoc-string">'script' </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1] === </span><span class="jsdoc-string">'style'</span><span class="jsdoc-syntax">),
480 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]
482 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
485 </span><span class="jsdoc-comment">// def
486 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((!</span><span class="jsdoc-var">bq </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">top</span><span class="jsdoc-syntax">) && (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.def.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
487 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
488 </span><span class="jsdoc-var">this.tokens.links</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.toLowerCase</span><span class="jsdoc-syntax">()] = {
489 </span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2],
490 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[3]
492 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
495 </span><span class="jsdoc-comment">// table (gfm)
496 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">top </span><span class="jsdoc-syntax">&& (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.table.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
497 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
499 </span><span class="jsdoc-var">item </span><span class="jsdoc-syntax">= {
500 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">,
501 </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *| *\| *$/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */),
502 </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *|\| *$/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */),
503 </span><span class="jsdoc-var">cells</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[3]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/(?: *\| *)?\n$/, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">)
506 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">item.align.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
507 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(/^ *-+: *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
508 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'right'</span><span class="jsdoc-syntax">;
509 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(/^ *:-+: *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
510 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'center'</span><span class="jsdoc-syntax">;
511 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(/^ *:-+ *$/</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">])) {
512 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">;
513 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
514 </span><span class="jsdoc-var">item.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
518 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">item.cells.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
519 </span><span class="jsdoc-var">item.cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">item.cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]
520 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/^ *\| *| *\| *$/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)
521 </span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(/ *\| */);
524 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">item</span><span class="jsdoc-syntax">);
526 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
529 </span><span class="jsdoc-comment">// top-level paragraph
530 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">top </span><span class="jsdoc-syntax">&& (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.paragraph.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
531 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
532 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
533 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'paragraph'</span><span class="jsdoc-syntax">,
534 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.length </span><span class="jsdoc-syntax">- 1) === </span><span class="jsdoc-string">'\n'
535 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.slice</span><span class="jsdoc-syntax">(0, -1)
536 : </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]
538 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
541 </span><span class="jsdoc-comment">// text
542 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.text.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
543 </span><span class="jsdoc-comment">// Top-level should never reach here.
544 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
545 </span><span class="jsdoc-var">this.tokens.push</span><span class="jsdoc-syntax">({
546 </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'text'</span><span class="jsdoc-syntax">,
547 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]
549 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
552 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
553 </span><span class="jsdoc-keyword">throw new
554 </span><span class="jsdoc-var">Error</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Infinite loop on byte: ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">src.charCodeAt</span><span class="jsdoc-syntax">(0));
558 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.tokens</span><span class="jsdoc-syntax">;
561 </span><span class="jsdoc-comment">/**
562 * Inline-Level Grammar
565 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">inline </span><span class="jsdoc-syntax">= {
566 </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">: /^\\([\\`*{}\[\]()#+\-.!_>])/,
567 </span><span class="jsdoc-var">autolink</span><span class="jsdoc-syntax">: /^<([^ >]+(@|:\/)[^ >]+)>/,
568 </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">,
569 </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
570 </span><span class="jsdoc-var">link</span><span class="jsdoc-syntax">: /^!?\[(inside)\]\(href\)/,
571 </span><span class="jsdoc-var">reflink</span><span class="jsdoc-syntax">: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
572 </span><span class="jsdoc-var">nolink</span><span class="jsdoc-syntax">: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
573 </span><span class="jsdoc-var">strong</span><span class="jsdoc-syntax">: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
574 </span><span class="jsdoc-var">em</span><span class="jsdoc-syntax">: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
575 </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
576 </span><span class="jsdoc-var">br</span><span class="jsdoc-syntax">: /^ {2,}\n(?!\s*$)/,
577 </span><span class="jsdoc-var">del</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">noop</span><span class="jsdoc-syntax">,
578 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
581 </span><span class="jsdoc-var">inline._inside </span><span class="jsdoc-syntax">= /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
582 </span><span class="jsdoc-var">inline._href </span><span class="jsdoc-syntax">= /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
584 </span><span class="jsdoc-var">inline.link </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.link</span><span class="jsdoc-syntax">)
585 (</span><span class="jsdoc-string">'inside'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">inline._inside</span><span class="jsdoc-syntax">)
586 (</span><span class="jsdoc-string">'href'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">inline._href</span><span class="jsdoc-syntax">)
589 </span><span class="jsdoc-var">inline.reflink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.reflink</span><span class="jsdoc-syntax">)
590 (</span><span class="jsdoc-string">'inside'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">inline._inside</span><span class="jsdoc-syntax">)
593 </span><span class="jsdoc-comment">/**
594 * Normal Inline Grammar
597 </span><span class="jsdoc-var">inline.normal </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">inline</span><span class="jsdoc-syntax">);
599 </span><span class="jsdoc-comment">/**
600 * Pedantic Inline Grammar
603 </span><span class="jsdoc-var">inline.pedantic </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">inline.normal</span><span class="jsdoc-syntax">, {
604 </span><span class="jsdoc-var">strong</span><span class="jsdoc-syntax">: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
605 </span><span class="jsdoc-var">em</span><span class="jsdoc-syntax">: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
608 </span><span class="jsdoc-comment">/**
612 </span><span class="jsdoc-var">inline.gfm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">inline.normal</span><span class="jsdoc-syntax">, {
613 </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.escape</span><span class="jsdoc-syntax">)(</span><span class="jsdoc-string">'])'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'~|])'</span><span class="jsdoc-syntax">)(),
614 </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
615 </span><span class="jsdoc-var">del</span><span class="jsdoc-syntax">: /^~~(?=\S)([\s\S]*?\S)~~/,
616 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.text</span><span class="jsdoc-syntax">)
617 (</span><span class="jsdoc-string">']|'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'~]|'</span><span class="jsdoc-syntax">)
618 (</span><span class="jsdoc-string">'|'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'|https?://|'</span><span class="jsdoc-syntax">)
622 </span><span class="jsdoc-comment">/**
623 * GFM + Line Breaks Inline Grammar
626 </span><span class="jsdoc-var">inline.breaks </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">inline.gfm</span><span class="jsdoc-syntax">, {
627 </span><span class="jsdoc-var">br</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.br</span><span class="jsdoc-syntax">)(</span><span class="jsdoc-string">'{2,}'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'*'</span><span class="jsdoc-syntax">)(),
628 </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">inline.gfm.text</span><span class="jsdoc-syntax">)(</span><span class="jsdoc-string">'{2,}'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'*'</span><span class="jsdoc-syntax">)()
631 </span><span class="jsdoc-comment">/**
632 * Inline Lexer & Compiler
635 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">InlineLexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
636 </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">;
637 </span><span class="jsdoc-var">this.links </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">;
638 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline.normal</span><span class="jsdoc-syntax">;
639 </span><span class="jsdoc-var">this.renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.renderer </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Renderer</span><span class="jsdoc-syntax">;
640 </span><span class="jsdoc-var">this.renderer.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options</span><span class="jsdoc-syntax">;
642 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.links</span><span class="jsdoc-syntax">) {
643 </span><span class="jsdoc-keyword">throw new
644 </span><span class="jsdoc-var">Error</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Tokens array requires a `links` property.'</span><span class="jsdoc-syntax">);
647 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.gfm</span><span class="jsdoc-syntax">) {
648 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.breaks</span><span class="jsdoc-syntax">) {
649 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline.breaks</span><span class="jsdoc-syntax">;
650 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
651 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline.gfm</span><span class="jsdoc-syntax">;
653 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.pedantic</span><span class="jsdoc-syntax">) {
654 </span><span class="jsdoc-var">this.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline.pedantic</span><span class="jsdoc-syntax">;
658 </span><span class="jsdoc-comment">/**
659 * Expose Inline Rules
662 </span><span class="jsdoc-var">InlineLexer.rules </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">inline</span><span class="jsdoc-syntax">;
664 </span><span class="jsdoc-comment">/**
665 * Static Lexing/Compiling Method
668 </span><span class="jsdoc-var">InlineLexer.output </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
669 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">InlineLexer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">);
670 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">);
673 </span><span class="jsdoc-comment">/**
677 </span><span class="jsdoc-var">InlineLexer.prototype.output </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
678 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''
679 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">link
680 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text
681 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">href
682 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">;
684 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
685 </span><span class="jsdoc-comment">// escape
686 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.escape.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
687 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
688 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1];
689 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
692 </span><span class="jsdoc-comment">// autolink
693 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.autolink.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
694 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
695 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2] === </span><span class="jsdoc-string">'@'</span><span class="jsdoc-syntax">) {
696 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(6) === </span><span class="jsdoc-string">':'
697 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.mangle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(7))
698 : </span><span class="jsdoc-var">this.mangle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]);
699 </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.mangle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mailto:'</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
700 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
701 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]);
702 </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
704 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.link</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
705 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
708 </span><span class="jsdoc-comment">// url (gfm)
709 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">&& (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.url.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
710 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
711 </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]);
712 </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
713 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.link</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
714 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
717 </span><span class="jsdoc-comment">// tag
718 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.tag.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
719 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">&& /^<a /i</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0])) {
720 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
721 } </span><span class="jsdoc-keyword">else if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">&& /^<\/a>/i</span><span class="jsdoc-var">.test</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0])) {
722 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
724 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
725 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.options.sanitize
726 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.options.sanitizer
727 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.options.sanitizer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0])
728 : </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0])
729 : </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0];
730 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
733 </span><span class="jsdoc-comment">// link
734 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.link.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
735 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
736 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
737 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.outputLink</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">, {
738 </span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2],
739 </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[3]
741 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
742 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
745 </span><span class="jsdoc-comment">// reflink, nolink
746 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.reflink.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))
747 || (</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.nolink.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">))) {
748 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
749 </span><span class="jsdoc-var">link </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2] || </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1])</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\s+/g, </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">);
750 </span><span class="jsdoc-var">link </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.links</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">link.toLowerCase</span><span class="jsdoc-syntax">()];
751 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">link </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">link.href</span><span class="jsdoc-syntax">) {
752 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(0);
753 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.substring</span><span class="jsdoc-syntax">(1) + </span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">;
754 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
756 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
757 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.outputLink</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">link</span><span class="jsdoc-syntax">);
758 </span><span class="jsdoc-var">this.inLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
759 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
762 </span><span class="jsdoc-comment">// strong
763 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.strong.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
764 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
765 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.strong</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2] || </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]));
766 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
769 </span><span class="jsdoc-comment">// em
770 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.em.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
771 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
772 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.em</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2] || </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]));
773 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
776 </span><span class="jsdoc-comment">// code
777 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.code.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
778 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
779 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.codespan</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[2], </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">));
780 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
783 </span><span class="jsdoc-comment">// br
784 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.br.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
785 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
786 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.br</span><span class="jsdoc-syntax">();
787 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
790 </span><span class="jsdoc-comment">// del (gfm)
791 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.del.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
792 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
793 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.del</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]));
794 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
797 </span><span class="jsdoc-comment">// text
798 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rules.text.exec</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">)) {
799 </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.substring</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">);
800 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.text</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.smartypants</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0])));
801 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
804 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
805 </span><span class="jsdoc-keyword">throw new
806 </span><span class="jsdoc-var">Error</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Infinite loop on byte: ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">src.charCodeAt</span><span class="jsdoc-syntax">(0));
810 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
813 </span><span class="jsdoc-comment">/**
817 </span><span class="jsdoc-var">InlineLexer.prototype.outputLink </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">link</span><span class="jsdoc-syntax">) {
818 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">link.href</span><span class="jsdoc-syntax">)
819 , </span><span class="jsdoc-var">title </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">link.title </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">link.title</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
821 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.charAt</span><span class="jsdoc-syntax">(0) !== </span><span class="jsdoc-string">'!'
822 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.renderer.link</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]))
823 : </span><span class="jsdoc-var">this.renderer.image</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cap</span><span class="jsdoc-syntax">[1]));
826 </span><span class="jsdoc-comment">/**
827 * Smartypants Transformations
830 </span><span class="jsdoc-var">InlineLexer.prototype.smartypants </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
831 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.options.smartypants</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">; }
832 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text
833 </span><span class="jsdoc-comment">// em-dashes
834 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/---/g, </span><span class="jsdoc-string">'\u2014'</span><span class="jsdoc-syntax">)
835 </span><span class="jsdoc-comment">// en-dashes
836 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/--/g, </span><span class="jsdoc-string">'\u2013'</span><span class="jsdoc-syntax">)
837 </span><span class="jsdoc-comment">// opening singles
838 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/(^|[-\u2014/(\[{"\s])'/g, </span><span class="jsdoc-string">'$1\u2018'</span><span class="jsdoc-syntax">)
839 </span><span class="jsdoc-comment">// closing singles & apostrophes
840 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">'\u2019'</span><span class="jsdoc-syntax">)
841 </span><span class="jsdoc-comment">// opening doubles
842 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/(^|[-\u2014/(\[{\u2018\s])"/g, </span><span class="jsdoc-string">'$1\u201c'</span><span class="jsdoc-syntax">)
843 </span><span class="jsdoc-comment">// closing doubles
844 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/"/g, </span><span class="jsdoc-string">'\u201d'</span><span class="jsdoc-syntax">)
845 </span><span class="jsdoc-comment">// ellipses
846 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/\.{3}/g, </span><span class="jsdoc-string">'\u2026'</span><span class="jsdoc-syntax">);
849 </span><span class="jsdoc-comment">/**
853 </span><span class="jsdoc-var">InlineLexer.prototype.mangle </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
854 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.options.mangle</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">; }
855 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''
856 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.length
857 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0
858 , </span><span class="jsdoc-var">ch</span><span class="jsdoc-syntax">;
860 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
861 </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">text.charCodeAt</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
862 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Math.random</span><span class="jsdoc-syntax">() > 0.5) {
863 </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'x' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">ch.toString</span><span class="jsdoc-syntax">(16);
865 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'&#' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">ch </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">';'</span><span class="jsdoc-syntax">;
868 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
871 </span><span class="jsdoc-comment">/**
879 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
880 </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| {};
883 </span><span class="jsdoc-var">Renderer.prototype.code </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">escaped</span><span class="jsdoc-syntax">) {
884 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.highlight</span><span class="jsdoc-syntax">) {
885 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.highlight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">);
886 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">) {
887 </span><span class="jsdoc-var">escaped </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
888 </span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
890 } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
891 </span><span class="jsdoc-comment">// hack!!! - it's already escapeD?
892 </span><span class="jsdoc-var">escaped </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
895 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">) {
896 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<pre><code>'
897 </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">escaped </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">))
898 + </span><span class="jsdoc-string">'\n</code></pre>'</span><span class="jsdoc-syntax">;
901 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<pre><code class="'
902 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.options.langPrefix
903 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">lang</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)
904 + </span><span class="jsdoc-string">'">'
905 </span><span class="jsdoc-syntax">+ (</span><span class="jsdoc-var">escaped </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">))
906 + </span><span class="jsdoc-string">'\n</code></pre>\n'</span><span class="jsdoc-syntax">;
909 </span><span class="jsdoc-var">Renderer.prototype.blockquote </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">quote</span><span class="jsdoc-syntax">) {
910 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<blockquote>\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">quote </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</blockquote>\n'</span><span class="jsdoc-syntax">;
913 </span><span class="jsdoc-var">Renderer.prototype.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">) {
914 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">;
917 </span><span class="jsdoc-var">Renderer.prototype.heading </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">level</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">raw</span><span class="jsdoc-syntax">) {
918 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<h'
919 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">level
920 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' id="'
921 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.options.headerPrefix
922 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">raw.toLowerCase</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/[^\w]+/g, </span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">)
923 + </span><span class="jsdoc-string">'">'
924 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text
925 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</h'
926 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">level
927 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'>\n'</span><span class="jsdoc-syntax">;
930 </span><span class="jsdoc-var">Renderer.prototype.hr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
931 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.options.xhtml </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'<hr/>\n' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'<hr>\n'</span><span class="jsdoc-syntax">;
934 </span><span class="jsdoc-var">Renderer.prototype.list </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ordered</span><span class="jsdoc-syntax">) {
935 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ordered </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'ol' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">;
936 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'>\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'>\n'</span><span class="jsdoc-syntax">;
939 </span><span class="jsdoc-var">Renderer.prototype.listitem </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
940 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<li>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</li>\n'</span><span class="jsdoc-syntax">;
943 </span><span class="jsdoc-var">Renderer.prototype.paragraph </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
944 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<p>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</p>\n'</span><span class="jsdoc-syntax">;
947 </span><span class="jsdoc-var">Renderer.prototype.table </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">) {
948 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<table class="table table-striped">\n'
949 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'<thead>\n'
950 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">header
951 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</thead>\n'
952 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'<tbody>\n'
953 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">body
954 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</tbody>\n'
955 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</table>\n'</span><span class="jsdoc-syntax">;
958 </span><span class="jsdoc-var">Renderer.prototype.tablerow </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">content</span><span class="jsdoc-syntax">) {
959 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<tr>\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</tr>\n'</span><span class="jsdoc-syntax">;
962 </span><span class="jsdoc-var">Renderer.prototype.tablecell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">content</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">flags</span><span class="jsdoc-syntax">) {
963 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">flags.header </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'th' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'td'</span><span class="jsdoc-syntax">;
964 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">flags.align
965 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'<' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' style="text-align:' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">flags.align </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'">'
966 </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'<' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'>'</span><span class="jsdoc-syntax">;
967 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">content </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">type </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'>\n'</span><span class="jsdoc-syntax">;
970 </span><span class="jsdoc-comment">// span level renderer
971 </span><span class="jsdoc-var">Renderer.prototype.strong </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
972 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<strong>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</strong>'</span><span class="jsdoc-syntax">;
975 </span><span class="jsdoc-var">Renderer.prototype.em </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
976 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<em>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</em>'</span><span class="jsdoc-syntax">;
979 </span><span class="jsdoc-var">Renderer.prototype.codespan </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
980 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<code>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</code>'</span><span class="jsdoc-syntax">;
983 </span><span class="jsdoc-var">Renderer.prototype.br </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
984 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.options.xhtml </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'<br/>' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'<br>'</span><span class="jsdoc-syntax">;
987 </span><span class="jsdoc-var">Renderer.prototype.del </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
988 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<del>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</del>'</span><span class="jsdoc-syntax">;
991 </span><span class="jsdoc-var">Renderer.prototype.link </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
992 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.options.sanitize</span><span class="jsdoc-syntax">) {
993 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
994 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">prot </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">decodeURIComponent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">unescape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">))
995 </span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/[^\w:]/g, </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)
996 </span><span class="jsdoc-var">.toLowerCase</span><span class="jsdoc-syntax">();
997 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
998 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1000 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">prot.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'javascript:'</span><span class="jsdoc-syntax">) === 0 || </span><span class="jsdoc-var">prot.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'vbscript:'</span><span class="jsdoc-syntax">) === 0) {
1001 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1004 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'<a href="' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
1005 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">) {
1006 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' title="' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">title </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
1008 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'>' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'</a>'</span><span class="jsdoc-syntax">;
1009 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
1012 </span><span class="jsdoc-var">Renderer.prototype.image </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">href</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
1013 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'<img src="' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'" alt="' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
1014 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">title</span><span class="jsdoc-syntax">) {
1015 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' title="' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">title </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
1017 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.options.xhtml </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'/>' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'>'</span><span class="jsdoc-syntax">;
1018 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
1021 </span><span class="jsdoc-var">Renderer.prototype.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">) {
1022 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
1025 </span><span class="jsdoc-comment">/**
1026 * Parsing & Compiling
1032 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">Parser</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">) {
1033 </span><span class="jsdoc-var">this.tokens </span><span class="jsdoc-syntax">= [];
1034 </span><span class="jsdoc-var">this.token </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
1035 </span><span class="jsdoc-var">this.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">options </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">;
1036 </span><span class="jsdoc-var">this.options.renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.renderer </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Renderer</span><span class="jsdoc-syntax">;
1037 </span><span class="jsdoc-var">this.renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options.renderer</span><span class="jsdoc-syntax">;
1038 </span><span class="jsdoc-var">this.renderer.options </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.options</span><span class="jsdoc-syntax">;
1041 </span><span class="jsdoc-comment">/**
1042 * Static Parse Method
1045 </span><span class="jsdoc-var">Parser.parse </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">renderer</span><span class="jsdoc-syntax">) {
1046 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">parser </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Parser</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">renderer</span><span class="jsdoc-syntax">);
1047 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">parser.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">);
1050 </span><span class="jsdoc-comment">/**
1054 </span><span class="jsdoc-var">Parser.prototype.parse </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">) {
1055 </span><span class="jsdoc-var">this.inline </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">InlineLexer</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src.links</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.options</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.renderer</span><span class="jsdoc-syntax">);
1056 </span><span class="jsdoc-var">this.tokens </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">src.reverse</span><span class="jsdoc-syntax">();
1058 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1059 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()) {
1060 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tok</span><span class="jsdoc-syntax">();
1063 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
1066 </span><span class="jsdoc-comment">/**
1070 </span><span class="jsdoc-var">Parser.prototype.next </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
1071 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.token </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tokens.pop</span><span class="jsdoc-syntax">();
1074 </span><span class="jsdoc-comment">/**
1075 * Preview Next Token
1078 </span><span class="jsdoc-var">Parser.prototype.peek </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
1079 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.tokens</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.tokens.length </span><span class="jsdoc-syntax">- 1] || 0;
1082 </span><span class="jsdoc-comment">/**
1086 </span><span class="jsdoc-var">Parser.prototype.parseText </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
1087 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">;
1089 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.peek</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'text'</span><span class="jsdoc-syntax">) {
1090 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'\n' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.text</span><span class="jsdoc-syntax">;
1093 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
1096 </span><span class="jsdoc-comment">/**
1097 * Parse Current Token
1100 </span><span class="jsdoc-var">Parser.prototype.tok </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
1101 </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.type</span><span class="jsdoc-syntax">) {
1102 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'space'</span><span class="jsdoc-syntax">: {
1103 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1105 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'hr'</span><span class="jsdoc-syntax">: {
1106 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.hr</span><span class="jsdoc-syntax">();
1108 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'heading'</span><span class="jsdoc-syntax">: {
1109 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.heading</span><span class="jsdoc-syntax">(
1110 </span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">),
1111 </span><span class="jsdoc-var">this.token.depth</span><span class="jsdoc-syntax">,
1112 </span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">);
1114 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'code'</span><span class="jsdoc-syntax">: {
1115 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.code</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">,
1116 </span><span class="jsdoc-var">this.token.lang</span><span class="jsdoc-syntax">,
1117 </span><span class="jsdoc-var">this.token.escaped</span><span class="jsdoc-syntax">);
1119 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'table'</span><span class="jsdoc-syntax">: {
1120 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''
1121 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''
1122 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i
1123 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">row
1124 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cell
1125 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">flags
1126 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">;
1128 </span><span class="jsdoc-comment">// header
1129 </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1130 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.token.header.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
1131 </span><span class="jsdoc-var">flags </span><span class="jsdoc-syntax">= { </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.token.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] };
1132 </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.tablecell</span><span class="jsdoc-syntax">(
1133 </span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.header</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]),
1134 { </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.token.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] }
1137 </span><span class="jsdoc-var">header </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.tablerow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">);
1139 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.token.cells.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
1140 </span><span class="jsdoc-var">row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.token.cells</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
1142 </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1143 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">j </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">row.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">++) {
1144 </span><span class="jsdoc-var">cell </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.tablecell</span><span class="jsdoc-syntax">(
1145 </span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">row</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">]),
1146 { </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">align</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.token.align</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">j</span><span class="jsdoc-syntax">] }
1150 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.renderer.tablerow</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cell</span><span class="jsdoc-syntax">);
1152 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.table</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
1154 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'blockquote_start'</span><span class="jsdoc-syntax">: {
1155 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1157 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'blockquote_end'</span><span class="jsdoc-syntax">) {
1158 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tok</span><span class="jsdoc-syntax">();
1161 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.blockquote</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
1163 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'list_start'</span><span class="jsdoc-syntax">: {
1164 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''
1165 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ordered </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.token.ordered</span><span class="jsdoc-syntax">;
1167 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'list_end'</span><span class="jsdoc-syntax">) {
1168 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tok</span><span class="jsdoc-syntax">();
1171 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.list</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ordered</span><span class="jsdoc-syntax">);
1173 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'list_item_start'</span><span class="jsdoc-syntax">: {
1174 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1176 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'list_item_end'</span><span class="jsdoc-syntax">) {
1177 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.token.type </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'text'
1178 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.parseText</span><span class="jsdoc-syntax">()
1179 : </span><span class="jsdoc-var">this.tok</span><span class="jsdoc-syntax">();
1182 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.listitem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
1184 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'loose_item_start'</span><span class="jsdoc-syntax">: {
1185 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
1187 </span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.next</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'list_item_end'</span><span class="jsdoc-syntax">) {
1188 </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.tok</span><span class="jsdoc-syntax">();
1191 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.listitem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
1193 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'html'</span><span class="jsdoc-syntax">: {
1194 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= !</span><span class="jsdoc-var">this.token.pre </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.options.pedantic
1195 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">)
1196 : </span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">;
1197 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.html</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">);
1199 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'paragraph'</span><span class="jsdoc-syntax">: {
1200 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.paragraph</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.inline.output</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.token.text</span><span class="jsdoc-syntax">));
1202 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'text'</span><span class="jsdoc-syntax">: {
1203 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.renderer.paragraph</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parseText</span><span class="jsdoc-syntax">());
1209 </span><span class="jsdoc-comment">/**
1215 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">marked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
1216 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'function'</span><span class="jsdoc-syntax">) {
1217 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">) {
1218 </span><span class="jsdoc-var">callback </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">;
1219 </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
1222 </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| {});
1224 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">highlight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">opt.highlight
1225 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tokens
1226 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pending
1227 </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0;
1229 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
1230 </span><span class="jsdoc-var">tokens </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Lexer.lex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">)
1231 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
1232 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
1235 </span><span class="jsdoc-var">pending </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tokens.length</span><span class="jsdoc-syntax">;
1236 </span><span class="jsdoc-comment">/**
1239 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">done </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">) {
1240 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">) {
1241 </span><span class="jsdoc-var">opt.highlight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">highlight</span><span class="jsdoc-syntax">;
1242 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">);
1245 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">;
1247 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
1248 </span><span class="jsdoc-var">out </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Parser.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tokens</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">);
1249 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
1250 </span><span class="jsdoc-var">err </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
1253 </span><span class="jsdoc-var">opt.highlight </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">highlight</span><span class="jsdoc-syntax">;
1255 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">err
1256 </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">)
1257 : </span><span class="jsdoc-var">callback</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">out</span><span class="jsdoc-syntax">);
1260 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">highlight </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">highlight.length </span><span class="jsdoc-syntax">< 3) {
1261 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">();
1264 </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">opt.highlight</span><span class="jsdoc-syntax">;
1266 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">pending</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">(); }
1268 </span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">tokens.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
1269 (</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">token</span><span class="jsdoc-syntax">) {
1270 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">token.type </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-string">'code'</span><span class="jsdoc-syntax">) {
1271 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">--</span><span class="jsdoc-var">pending </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">();
1273 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">highlight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">token.text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">token.lang</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">) {
1274 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">err</span><span class="jsdoc-syntax">); }
1275 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">== </span><span class="jsdoc-keyword">null </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">code </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">token.text</span><span class="jsdoc-syntax">) {
1276 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">--</span><span class="jsdoc-var">pending </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">();
1278 </span><span class="jsdoc-var">token.text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">code</span><span class="jsdoc-syntax">;
1279 </span><span class="jsdoc-var">token.escaped </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
1280 --</span><span class="jsdoc-var">pending </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">done</span><span class="jsdoc-syntax">();
1282 })(</span><span class="jsdoc-var">tokens</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
1285 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
1287 </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
1288 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">); }
1289 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Parser.parse</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Lexer.lex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">src</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">), </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">);
1290 } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
1291 </span><span class="jsdoc-var">e.message </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">'\nPlease report this to https://github.com/chjj/marked.'</span><span class="jsdoc-syntax">;
1292 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">opt </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.silent</span><span class="jsdoc-syntax">) {
1293 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'<p>An error occured:</p><pre>'
1294 </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">escape</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.message </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)
1295 + </span><span class="jsdoc-string">'</pre>'</span><span class="jsdoc-syntax">;
1297 </span><span class="jsdoc-keyword">throw </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">;
1301 </span><span class="jsdoc-comment">/**
1305 </span><span class="jsdoc-var">marked.options </span><span class="jsdoc-syntax">=
1306 </span><span class="jsdoc-var">marked.setOptions </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">) {
1307 </span><span class="jsdoc-var">merge</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">marked.defaults</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">opt</span><span class="jsdoc-syntax">);
1308 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">marked</span><span class="jsdoc-syntax">;
1311 </span><span class="jsdoc-var">marked.defaults </span><span class="jsdoc-syntax">= {
1312 </span><span class="jsdoc-var">gfm</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
1313 </span><span class="jsdoc-var">tables</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
1314 </span><span class="jsdoc-var">breaks</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1315 </span><span class="jsdoc-var">pedantic</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1316 </span><span class="jsdoc-var">sanitize</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1317 </span><span class="jsdoc-var">sanitizer</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
1318 </span><span class="jsdoc-var">mangle</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
1319 </span><span class="jsdoc-var">smartLists</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1320 </span><span class="jsdoc-var">silent</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1321 </span><span class="jsdoc-var">highlight</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">,
1322 </span><span class="jsdoc-var">langPrefix</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'lang-'</span><span class="jsdoc-syntax">,
1323 </span><span class="jsdoc-var">smartypants</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
1324 </span><span class="jsdoc-var">headerPrefix</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
1325 </span><span class="jsdoc-var">renderer</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Renderer</span><span class="jsdoc-syntax">,
1326 </span><span class="jsdoc-var">xhtml</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false
1327 </span><span class="jsdoc-syntax">};
1329 </span><span class="jsdoc-comment">/**
1333 </span><span class="jsdoc-var">marked.Parser </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Parser</span><span class="jsdoc-syntax">;
1334 </span><span class="jsdoc-var">marked.parser </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Parser.parse</span><span class="jsdoc-syntax">;
1336 </span><span class="jsdoc-var">marked.Renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Renderer</span><span class="jsdoc-syntax">;
1338 </span><span class="jsdoc-var">marked.Lexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Lexer</span><span class="jsdoc-syntax">;
1339 </span><span class="jsdoc-var">marked.lexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Lexer.lex</span><span class="jsdoc-syntax">;
1341 </span><span class="jsdoc-var">marked.InlineLexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">InlineLexer</span><span class="jsdoc-syntax">;
1342 </span><span class="jsdoc-var">marked.inlineLexer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">InlineLexer.output</span><span class="jsdoc-syntax">;
1344 </span><span class="jsdoc-var">marked.parse </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">marked</span><span class="jsdoc-syntax">;
1346 </span><span class="jsdoc-var">Roo.Markdown.marked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">marked</span><span class="jsdoc-syntax">;
1348 })();</span></code></body></html>