{"version":3,"sources":["webpack:///./node_modules/markdown-it/lib/token.js","webpack:///./node_modules/markdown-it/lib/rules_inline/state_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text_collapse.js","webpack:///./node_modules/markdown-it/lib/rules_inline/newline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/strikethrough.js","webpack:///./node_modules/markdown-it/lib/rules_inline/image.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text.js","webpack:///./node_modules/markdown-it/lib/rules_inline/html_inline.js","webpack:///./node_modules/markdown-it/lib/rules_inline/link.js"],"names":["Token","type","tag","nesting","this","attrs","map","level","children","content","markup","info","meta","block","hidden","prototype","attrIndex","name","i","len","length","attrPush","attrData","push","attrSet","value","idx","attrGet","attrJoin","module","exports","isWhiteSpace","isPunctChar","isMdAsciiPunct","StateInline","src","md","env","outTokens","tokens","pos","posMax","pending","pendingLevel","cache","delimiters","pushPending","token","scanDelims","start","canSplitWord","lastChar","nextChar","count","can_open","can_close","isLastWhiteSpace","isLastPunctChar","isNextWhiteSpace","isNextPunctChar","left_flanking","right_flanking","max","marker","charCodeAt","String","fromCharCode","state","curr","last","silent","pmax","replace","slice","tokenize","scanned","ch","jump","end","open","close","postProcess","j","startDelim","endDelim","loneMarkers","pop","parseLinkLabel","parseLinkDestination","parseLinkTitle","normalizeReference","isSpace","code","label","labelEnd","labelStart","ref","res","title","href","oldPos","ok","normalizeLink","str","validateLink","references","inline","parse","isTerminatorChar","HTML_TAG_RE","isLetter","lc","match","options","html"],"mappings":"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","file":"js/chunk-5b965444.c7a0f711.js","sourcesContent":["// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n","// Inline parser state\n\n'use strict';\n\n\nvar Token = require('../token');\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n this.cache = {}; // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n\n this.delimiters = []; // Emphasis-like delimiters\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n\n if (nesting < 0) { this.level--; }\n token.level = this.level;\n if (nesting > 0) { this.level++; }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n","// Merge adjacent text nodes into one, and re-calculate all token levels\n//\n'use strict';\n\n\nmodule.exports = function text_collapse(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels\n level += tokens[curr].nesting;\n tokens[curr].level = level;\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n};\n","// Proceess '\\n'\n\n'use strict';\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n state.pending = state.pending.replace(/ +$/, '');\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && state.src.charCodeAt(pos) === 0x20) { pos++; }\n\n state.pos = pos;\n return true;\n};\n","// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n jump: i,\n token: state.tokens.length - 1,\n level: state.level,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n};\n","// Process ![image]( \"title\")\n\n'use strict';\n\nvar parseLinkLabel = require('../helpers/parse_link_label');\nvar parseLinkDestination = require('../helpers/parse_link_destination');\nvar parseLinkTitle = require('../helpers/parse_link_title');\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n};*/\n","// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n }\n state.pos += match[0].length;\n return true;\n};\n","// Process [link]( \"stuff\")\n\n'use strict';\n\nvar parseLinkLabel = require('../helpers/parse_link_label');\nvar parseLinkDestination = require('../helpers/parse_link_destination');\nvar parseLinkTitle = require('../helpers/parse_link_title');\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n title,\n token,\n href = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.md.inline.tokenize(state);\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n"],"sourceRoot":""}