{"version":3,"sources":["webpack:///./node_modules/markdown-it/lib/common/utils.js","webpack:///./node_modules/markdown-it/lib/index.js","webpack:///./node_modules/markdown-it/lib/helpers/index.js","webpack:///./node_modules/markdown-it/lib/common/html_re.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_title.js","webpack:///./node_modules/markdown-it/lib/common/entities.js","webpack:///./node_modules/markdown-it/index.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_label.js","webpack:///./node_modules/markdown-it/lib/common/html_blocks.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_destination.js"],"names":["_class","obj","Object","prototype","toString","call","isString","_hasOwnProperty","hasOwnProperty","has","object","key","assign","sources","Array","slice","arguments","forEach","source","TypeError","keys","arrayReplaceAt","src","pos","newElements","concat","isValidEntityCode","c","fromCodePoint","surrogate1","surrogate2","String","fromCharCode","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","RegExp","DIGITAL_ENTITY_TEST_RE","entities","replaceEntityPattern","match","name","code","charCodeAt","test","toLowerCase","parseInt","unescapeMd","str","indexOf","replace","unescapeAll","escaped","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","ch","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","UNICODE_PUNCT_RE","isPunctChar","isMdAsciiPunct","normalizeReference","trim","toUpperCase","exports","lib","mdurl","ucmicro","utils","helpers","Renderer","ParserCore","ParserBlock","ParserInline","LinkifyIt","punycode","config","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","url","RECODE_HOSTNAME_FOR","normalizeLink","parsed","parse","hostname","protocol","toASCII","er","encode","format","normalizeLinkText","toUnicode","decode","MarkdownIt","presetName","options","this","inline","block","core","renderer","linkify","configure","set","presets","self","Error","components","rules","ruler","enableOnly","rules2","ruler2","enable","list","ignoreInvalid","result","isArray","chain","missed","filter","length","disable","use","plugin","args","apply","env","state","State","process","tokens","render","parseInline","inlineMode","renderInline","module","parseLinkLabel","parseLinkDestination","parseLinkTitle","attr_name","unquoted","single_quoted","double_quoted","attr_value","attribute","open_tag","close_tag","comment","processing","declaration","cdata","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","max","marker","lines","start","ok","disableNested","level","found","prevPos","labelEnd","posMax","oldPos","md","skipToken"],"mappings":"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","file":"js/chunk-76b0b918.90424096.js","sourcesContent":["// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16)\n :\n parseInt(name.slice(1), 10);\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\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 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // use .toUpperCase() instead of .toLowerCase()\n // here to avoid a conflict with Object.prototype\n // members (most notably, `__proto__`)\n return str.trim().replace(/\\s+/g, ' ').toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n","// Main parser class\n\n'use strict';\n\n\nvar utils = require('./common/utils');\nvar helpers = require('./helpers');\nvar Renderer = require('./renderer');\nvar ParserCore = require('./parser_core');\nvar ParserBlock = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt = require('linkify-it');\nvar mdurl = require('mdurl');\nvar punycode = require('punycode');\n\n\nvar config = {\n 'default': require('./presets/default'),\n zero: require('./presets/zero'),\n commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with `):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
' +\n *                hljs.highlight(lang, str, true).value +\n *                '
';\n * } catch (__) {}\n * }\n *\n * return '
' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = helpers;\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you with - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and returns list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n","// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle = require('./parse_link_title');\n","// Regexps to match html elements\n\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?].*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n","// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/maps/entities.json');\n","'use strict';\n\n\nmodule.exports = require('./lib/');\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n","// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'meta',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'pre',\n 'section',\n 'source',\n 'title',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n","// Parse link destination\n//\n'use strict';\n\n\nvar isSpace = require('../common/utils').isSpace;\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */ || isSpace(code)) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 1) { break; }\n }\n\n if (code === 0x29 /* ) */) {\n level--;\n if (level < 0) { break; }\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n};\n"],"sourceRoot":""}