From c367a4b9a18530ac662bb67ca4b09419680f0c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Estev=C3=A3o=20Soares=20dos=20Santos?= Date: Sun, 18 Jan 2015 02:12:32 +0000 Subject: [PATCH] feat(uniqueHeaderId): add unique id prefix and suffix to headers If two headers have similar texts, the generated id could be equal. In order to prevent id clash: - A unique suffix is added if a header id already exists - Option to add a prefix to header id - Update of correspondent tests - (credits to nicovalencia) Closes #81, closes #82 --- dist/showdown.js | 39 ++++++++++++++++++++++++++++---- dist/showdown.js.map | 2 +- dist/showdown.min.js | 4 ++-- dist/showdown.min.js.map | 2 +- src/showdown.js | 15 +++++++++--- src/subParsers/headers.js | 22 +++++++++++++++++- test/cases/repeated-headers.html | 5 ++++ test/cases/repeated-headers.md | 5 ++++ 8 files changed, 81 insertions(+), 13 deletions(-) create mode 100644 test/cases/repeated-headers.html create mode 100644 test/cases/repeated-headers.md diff --git a/dist/showdown.js b/dist/showdown.js index f7f0afd5..dbec2e3b 100644 --- a/dist/showdown.js +++ b/dist/showdown.js @@ -1,4 +1,4 @@ -;/*! showdown 16-01-2015 */ +;/*! showdown 18-01-2015 */ (function(){ 'use strict'; /** @@ -9,7 +9,8 @@ var showdown = {}, parsers = {}, globalOptions = { - omitExtraWLInCodeBlocks: false + omitExtraWLInCodeBlocks: false, + prefixHeaderId: false }; /////////////////////////////////////////////////////////////////////////// @@ -32,10 +33,17 @@ showdown.extensions = {}; //Public methods showdown.setOption = function (key, value) { globalOptions[key] = value; - return this; }; +showdown.getOption = function (key) { + return globalOptions[key]; +}; + +showdown.getOptions = function () { + return globalOptions; +}; + /** * Static Method * @@ -100,7 +108,8 @@ showdown.Converter = function (converterOptions) { gHtmlBlocks: [], gUrls: {}, gTitles: {}, - gListLevel: 0 + gListLevel: 0, + hashLinkCounts: {} }; // attacklab: Replace ~ with ~T @@ -1028,6 +1037,8 @@ showdown.subParser('hashHTMLBlocks', function (text, options, globals) { showdown.subParser('headers', function (text, options, globals) { 'use strict'; + var prefixHeader = options.prefixHeaderId; + // Set text-style headers: // Header 1 // ======== @@ -1075,7 +1086,25 @@ showdown.subParser('headers', function (text, options, globals) { }); function headerId(m) { - return m.replace(/[^\w]/g, '').toLowerCase(); + var title, + escapedId = m.replace(/[^\w]/g, '').toLowerCase(); + + if (globals.hashLinkCounts[escapedId]) { + title = escapedId + '-' + (globals.hashLinkCounts[escapedId]++); + } else { + title = escapedId; + globals.hashLinkCounts[escapedId] = 1; + } + + // Prefix id to prevent causing inadvertent pre-existing style matches. + if (prefixHeader === true) { + prefixHeader = 'section'; + } + + if (showdown.helper.isString(prefixHeader)) { + return prefixHeader + title; + } + return title; } return text; diff --git a/dist/showdown.js.map b/dist/showdown.js.map index 7655b9b4..ee3f236b 100644 --- a/dist/showdown.js.map +++ b/dist/showdown.js.map @@ -1 +1 @@ -{"version":3,"sources":["..\\src\\showdown.js","..\\src\\helpers.js","..\\src\\subParsers\\anchors.js","..\\src\\subParsers\\autoLinks.js","..\\src\\subParsers\\blockGamut.js","..\\src\\subParsers\\blockQuotes.js","..\\src\\subParsers\\codeBlocks.js","..\\src\\subParsers\\codeSpans.js","..\\src\\subParsers\\detab.js","..\\src\\subParsers\\encodeAmpsAndAngles.js","..\\src\\subParsers\\encodeBackslashEscapes.js","..\\src\\subParsers\\encodeCode.js","..\\src\\subParsers\\encodeEmailAddress.js","..\\src\\subParsers\\escapeSpecialCharsWithinTagAttributes.js","..\\src\\subParsers\\githubCodeBlocks.js","..\\src\\subParsers\\hashBlock.js","..\\src\\subParsers\\hashElement.js","..\\src\\subParsers\\hashHTMLBlocks.js","..\\src\\subParsers\\headers.js","..\\src\\subParsers\\images.js","..\\src\\subParsers\\italicsAndBold.js","..\\src\\subParsers\\lists.js","..\\src\\subParsers\\outdent.js","..\\src\\subParsers\\paragraphs.js","..\\src\\subParsers\\spanGamut.js","..\\src\\subParsers\\stripBlankLines.js","..\\src\\subParsers\\stripLinkDefinitions.js","..\\src\\subParsers\\unescapeSpecialChars.js","..\\src\\loader.js"],"names":[],"mappings":"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","file":"showdown.js","sourcesContent":["/**\r\n * Created by Tivie on 06-01-2015.\r\n */\r\n\r\n// Private properties\r\nvar showdown = {},\r\n parsers = {},\r\n globalOptions = {\r\n omitExtraWLInCodeBlocks: false\r\n };\r\n\r\n///////////////////////////////////////////////////////////////////////////\r\n// Public API\r\n//\r\n/**\r\n * helper namespace\r\n * @type {{}}\r\n */\r\nshowdown.helper = {};\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////////\r\n// API\r\n//\r\n\r\n// Public properties\r\nshowdown.extensions = {};\r\n\r\n//Public methods\r\nshowdown.setOption = function (key, value) {\r\n globalOptions[key] = value;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Static Method\r\n *\r\n * subParser(name) - Get a registered subParser\r\n * subParser(name, func) - Register a subParser\r\n * @param {string} name\r\n * @param {function} [func]\r\n * @returns {*}\r\n */\r\nshowdown.subParser = function (name, func) {\r\n if (showdown.helper.isString(name)) {\r\n if (typeof func !== 'undefined') {\r\n parsers[name] = func;\r\n } else {\r\n if (parsers.hasOwnProperty(name)) {\r\n return parsers[name];\r\n } else {\r\n throw Error('SubParser named ' + name + ' not registered!');\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @param {object} [converterOptions]\r\n * @returns {{makeHtml: Function}}\r\n */\r\nshowdown.Converter = function (converterOptions) {\r\n\r\n converterOptions = converterOptions || {};\r\n\r\n var options = globalOptions,\r\n parserOrder = [\r\n 'detab',\r\n 'stripBlankLines',\r\n //runLanguageExtensions,\r\n 'githubCodeBlocks',\r\n 'hashHTMLBlocks',\r\n 'stripLinkDefinitions',\r\n 'blockGamut',\r\n 'unescapeSpecialChars'\r\n ];\r\n\r\n // Merge options\r\n if (typeof converterOptions === 'object') {\r\n for (var opt in converterOptions) {\r\n if (converterOptions.hasOwnProperty(opt)) {\r\n options[opt] = converterOptions[opt];\r\n }\r\n }\r\n }\r\n\r\n var makeHtml = function (text) {\r\n\r\n //check if text is not falsy\r\n if (!text) {\r\n return text;\r\n }\r\n\r\n var globals = {\r\n gHtmlBlocks: [],\r\n gUrls: {},\r\n gTitles: {},\r\n gListLevel: 0\r\n };\r\n\r\n // attacklab: Replace ~ with ~T\r\n // This lets us use tilde as an escape char to avoid md5 hashes\r\n // The choice of character is arbitrary; anything that isn't\r\n // magic in Markdown will work.\r\n text = text.replace(/~/g, '~T');\r\n\r\n // attacklab: Replace $ with ~D\r\n // RegExp interprets $ as a special character\r\n // when it's in a replacement string\r\n text = text.replace(/\\$/g, '~D');\r\n\r\n // Standardize line endings\r\n text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\r\n text = text.replace(/\\r/g, '\\n'); // Mac to Unix\r\n\r\n // Make sure text begins and ends with a couple of newlines:\r\n text = '\\n\\n' + text + '\\n\\n';\r\n\r\n // Run all registered parsers\r\n for (var i = 0; i < parserOrder.length; ++i) {\r\n var name = parserOrder[i];\r\n text = parsers[name](text, options, globals);\r\n }\r\n\r\n // attacklab: Restore dollar signs\r\n text = text.replace(/~D/g, '$$');\r\n\r\n // attacklab: Restore tildes\r\n text = text.replace(/~T/g, '~');\r\n\r\n // Run output modifiers\r\n //showdown.forEach(g_output_modifiers, function (x) {\r\n // text = _ExecuteExtension(x, text);\r\n //});\r\n\r\n return text;\r\n };\r\n\r\n\r\n return {\r\n makeHtml: makeHtml\r\n };\r\n};\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nfunction isString(a) {\r\n return (typeof a === 'string' || a instanceof String);\r\n}\r\n\r\nfunction forEach(obj, callback) {\r\n if (typeof obj.forEach === 'function') {\r\n obj.forEach(callback);\r\n } else {\r\n var i, len = obj.length;\r\n for (i = 0; i < len; i++) {\r\n callback(obj[i], i, obj);\r\n }\r\n }\r\n}\r\n\r\nfunction isArray(a) {\r\n return a.constructor === Array;\r\n}\r\n\r\nfunction isUndefined(value) {\r\n return typeof value === 'undefined';\r\n}\r\n\r\nvar escapeCharactersCallback = function (wholeMatch, m1) {\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return '~E' + charCodeToEscape + 'E';\r\n};\r\n\r\nvar escapeCharacters = function (text, charsToEscape, afterBackslash) {\r\n // First we have to escape the escape characters so that\r\n // we can build a character class out of them\r\n var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\r\n\r\n if (afterBackslash) {\r\n regexString = '\\\\\\\\' + regexString;\r\n }\r\n\r\n var regex = new RegExp(regexString, 'g');\r\n text = text.replace(regex, escapeCharactersCallback);\r\n\r\n return text;\r\n};\r\n\r\nif (!showdown.hasOwnProperty('helper')) {\r\n showdown.helper = {};\r\n}\r\n\r\n/**\r\n * isString helper function\r\n * @param a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isString = isString;\r\n\r\n/**\r\n * ForEach helper function\r\n * @param {*} obj\r\n * @param callback\r\n */\r\nshowdown.helper.forEach = forEach;\r\n\r\n/**\r\n * isArray helper function\r\n * @param {*} a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isArray = isArray;\r\n\r\n/**\r\n * Check if value is undefined\r\n *\r\n * @static\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\r\n */\r\nshowdown.helper.isUndefined = isUndefined;\r\n\r\n/**\r\n * Callback used to escape characters when passing through String.replace\r\n * @param {string} wholeMatch\r\n * @param {string} m1\r\n * @returns {string}\r\n */\r\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\r\n\r\n/**\r\n * Escape characters in a string\r\n *\r\n * @param {string} text\r\n * @param {string} charsToEscape\r\n * @param {boolean} afterBackslash\r\n * @returns {XML|string|void|*}\r\n */\r\nshowdown.helper.escapeCharacters = escapeCharacters;\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Turn Markdown link shortcuts into XHTML tags.\r\n */\r\nshowdown.subParser('anchors', function (text, config, globals) {\r\n 'use strict';\r\n\r\n var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n if (showdown.helper.isUndefined(m7)) {\r\n m7 = '';\r\n }\r\n wholeMatch = m1;\r\n var linkText = m2,\r\n linkId = m3.toLowerCase(),\r\n url = m4,\r\n title = m7;\r\n\r\n if (!url) {\r\n if (!linkId) {\r\n // lower-case and turn embedded newlines into spaces\r\n linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\r\n }\r\n url = '#' + linkId;\r\n\r\n if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\r\n url = globals.gUrls[linkId];\r\n if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\r\n title = globals.gTitles[linkId];\r\n }\r\n }\r\n else {\r\n if (wholeMatch.search(/\\(\\s*\\)$/m) > -1) {\r\n // Special case for explicit empty url\r\n url = '';\r\n } else {\r\n return wholeMatch;\r\n }\r\n }\r\n }\r\n\r\n url = showdown.helper.escapeCharacters(url, '*_');\r\n var result = '';\r\n\r\n return result;\r\n };\r\n\r\n // First, handle reference-style links: [link text] [id]\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t\t// allow brackets nested one level\r\n |\r\n [^\\[]\t\t\t// or anything else\r\n )*\r\n )\r\n \\]\r\n\r\n [ ]?\t\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t\t// pad remaining backreferences\r\n /g,_DoAnchors_callback);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeAnchorTag);\r\n\r\n //\r\n // Next, inline-style links: [link text](url \"optional title\")\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t// allow brackets nested one level\r\n |\r\n [^\\[\\]]\t\t\t// or anything else\r\n )\r\n )\r\n \\]\r\n \\(\t\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t\t// no id, so leave $3 empty\r\n ?\t\t\t\t// href = $4\r\n [ \\t]*\r\n (\t\t\t\t\t\t// $5\r\n (['\"])\t\t\t\t// quote char = $6\r\n (.*?)\t\t\t\t// Title = $7\r\n \\6\t\t\t\t\t// matching quote\r\n [ \\t]*\t\t\t\t// ignore any spaces/tabs between closing quote and )\r\n )?\t\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeAnchorTag);\r\n\r\n //\r\n // Last, handle reference-style shortcuts: [link text]\r\n // These must come last in case you've also got [link test][1]\r\n // or [link test](/foo)\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t \t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+)\t\t\t\t// link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()()\t\t\t\t\t// pad rest of backreferences\r\n /g, writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[([^\\[\\]]+)\\])()()()()()/g, writeAnchorTag);\r\n\r\n return text;\r\n\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('autoLinks', function (text) {\r\n 'use strict';\r\n\r\n text = text.replace(/<((https?|ftp|dict):[^'\">\\s]+)>/gi, \"$1\");\r\n\r\n // Email addresses: \r\n\r\n /*\r\n text = text.replace(/\r\n <\r\n (?:mailto:)?\r\n (\r\n [-.\\w]+\r\n \\@\r\n [-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+\r\n )\r\n >\r\n /gi, _DoAutoLinks_callback());\r\n */\r\n text = text.replace(/<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\r\n function (wholeMatch, m1) {\r\n var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1);\r\n return showdown.subParser('encodeEmailAddress')(unescapedStr);\r\n }\r\n );\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * These are all the transformations that form block-level\r\n * tags like paragraphs, headers, and list items.\r\n */\r\nshowdown.subParser('blockGamut', function (text, options, globals) {\r\n 'use strict';\r\n\r\n text = showdown.subParser('headers')(text, options, globals);\r\n\r\n // Do Horizontal Rules:\r\n var key = showdown.subParser('hashBlock')('
', options, globals);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\*[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\-[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\_[ ]?){3,}[ \\t]*$/gm, key);\r\n\r\n text = showdown.subParser('lists')(text, options, globals);\r\n text = showdown.subParser('codeBlocks')(text, options, globals);\r\n text = showdown.subParser('blockQuotes')(text, options, globals);\r\n\r\n // We already ran _HashHTMLBlocks() before, in Markdown(), but that\r\n // was to escape raw HTML in the original Markdown source. This time,\r\n // we're escaping the markup we've just created, so that we don't wrap\r\n //

tags around block-level tags.\r\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\r\n text = showdown.subParser('paragraphs')(text, options, globals);\r\n\r\n return text;\r\n});\r\n\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('blockQuotes', function (text, options, globals) {\r\n 'use strict';\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t\t// Wrap whole match in $1\r\n (\r\n ^[ \\t]*>[ \\t]?\t\t\t// '>' at the start of a line\r\n .+\\n\t\t\t\t\t// rest of the first line\r\n (.+\\n)*\t\t\t\t\t// subsequent consecutive lines\r\n \\n*\t\t\t\t\t\t// blanks\r\n )+\r\n )\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,\r\n function (wholeMatch, m1) {\r\n var bq = m1;\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, '~0'); // trim one level of quoting\r\n\r\n // attacklab: clean up hack\r\n bq = bq.replace(/~0/g, '');\r\n\r\n bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\r\n bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\r\n\r\n bq = bq.replace(/(^|\\n)/g, '$1 ');\r\n // These leading spaces screw with

 content, so we need to fix that:\r\n            bq = bq.replace(\r\n                /(\\s*
[^\\r]+?<\\/pre>)/gm,\r\n                function (wholeMatch, m1) {\r\n                    var pre = m1;\r\n                    // attacklab: hack around Konqueror 3.5.4 bug:\r\n                    pre = pre.replace(/^  /mg, '~0');\r\n                    pre = pre.replace(/~0/g, '');\r\n                    return pre;\r\n                });\r\n\r\n            return showdown.subParser('hashBlock')('
\\n' + bq + '\\n
', options, globals);\r\n });\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Process Markdown `
` blocks.\r\n */\r\nshowdown.subParser('codeBlocks', function (text, options, globals) {\r\n    'use strict';\r\n\r\n    /*\r\n     text = text.replace(text,\r\n     /(?:\\n\\n|^)\r\n     (\t\t\t\t\t\t\t\t// $1 = the code block -- one or more lines, starting with a space/tab\r\n     (?:\r\n     (?:[ ]{4}|\\t)\t\t\t// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width\r\n     .*\\n+\r\n     )+\r\n     )\r\n     (\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))\t// attacklab: g_tab_width\r\n     /g,function(){...});\r\n     */\r\n\r\n    // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n    text += '~0';\r\n\r\n    text = text.replace(/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g,\r\n        function (wholeMatch, m1, m2) {\r\n            var codeblock = m1,\r\n                nextChar = m2;\r\n\r\n            codeblock = showdown.subParser('outdent')(codeblock);\r\n            codeblock = showdown.subParser('encodeCode')(codeblock);\r\n            codeblock = showdown.subParser('detab')(codeblock);\r\n            codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\r\n            codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\r\n\r\n            codeblock = '
' + codeblock + '\\n
';\r\n\r\n return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n *\r\n * * Backtick quotes are used for spans.\r\n *\r\n * * You can use multiple backticks as the delimiters if you want to\r\n * include literal backticks in the code span. So, this input:\r\n *\r\n * Just type ``foo `bar` baz`` at the prompt.\r\n *\r\n * Will translate to:\r\n *\r\n *

Just type foo `bar` baz at the prompt.

\r\n *\r\n * There's no arbitrary limit to the number of backticks you\r\n * can use as delimters. If you need three consecutive backticks\r\n * in your code, use four for delimiters, etc.\r\n *\r\n * * You can use spaces to get literal backticks at the edges:\r\n *\r\n * ... type `` `bar` `` ...\r\n *\r\n * Turns to:\r\n *\r\n * ... type `bar` ...\r\n */\r\nshowdown.subParser('codeSpans', function (text) {\r\n 'use strict';\r\n\r\n /*\r\n text = text.replace(/\r\n (^|[^\\\\])\t\t\t\t\t// Character before opening ` can't be a backslash\r\n (`+)\t\t\t\t\t\t// $2 = Opening run of `\r\n (\t\t\t\t\t\t\t// $3 = The code block\r\n [^\\r]*?\r\n [^`]\t\t\t\t\t// attacklab: work around lack of lookbehind\r\n )\r\n \\2\t\t\t\t\t\t\t// Matching closer\r\n (?!`)\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\r\n function (wholeMatch, m1, m2, m3) {\r\n var c = m3;\r\n c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\r\n c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\r\n c = showdown.subParser('encodeCode')(c);\r\n return m1 + '' + c + '';\r\n });\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Convert all tabs to spaces\r\n */\r\nshowdown.subParser('detab', function (text) {\r\n 'use strict';\r\n\r\n // expand first n-1 tabs\r\n text = text.replace(/\\t(?=\\t)/g, ' '); // g_tab_width\r\n\r\n // replace the nth with two sentinels\r\n text = text.replace(/\\t/g, '~A~B');\r\n\r\n // use the sentinel to anchor our regex so it doesn't explode\r\n text = text.replace(/~B(.+?)~A/g,\r\n function (wholeMatch, m1) {\r\n var leadingText = m1,\r\n numSpaces = 4 - leadingText.length % 4; // g_tab_width\r\n\r\n // there *must* be a better way to do this:\r\n for (var i = 0; i < numSpaces; i++) {\r\n leadingText += ' ';\r\n }\r\n\r\n return leadingText;\r\n }\r\n );\r\n\r\n // clean up sentinels\r\n text = text.replace(/~A/g, ' '); // g_tab_width\r\n text = text.replace(/~B/g, '');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Smart processing for ampersands and angle brackets that need to be encoded.\r\n */\r\nshowdown.subParser('encodeAmpsAndAngles', function (text) {\r\n 'use strict';\r\n // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\r\n // http://bumppo.net/projects/amputator/\r\n text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&');\r\n\r\n // Encode naked <'s\r\n text = text.replace(/<(?![a-z\\/?\\$!])/gi, '<');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Returns the string, with after processing the following backslash escape sequences.\r\n *\r\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\r\n *\r\n * text = escapeCharacters(text,\"\\\\\",true);\r\n * text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\r\n *\r\n * ...but we're sidestepping its use of the (slow) RegExp constructor\r\n * as an optimization for Firefox. This function gets called a LOT.\r\n */\r\nshowdown.subParser('encodeBackslashEscapes', function (text) {\r\n 'use strict';\r\n text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\r\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+-.!])/g, showdown.helper.escapeCharactersCallback);\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Encode/escape certain characters inside Markdown code runs.\r\n * The point is that in code, these characters are literals,\r\n * and lose their special Markdown meanings.\r\n */\r\nshowdown.subParser('encodeCode', function (text) {\r\n 'use strict';\r\n\r\n // Encode all ampersands; HTML entities are not\r\n // entities within a Markdown code span.\r\n text = text.replace(/&/g, '&');\r\n\r\n // Do the angle bracket song and dance:\r\n text = text.replace(//g, '>');\r\n\r\n // Now, escape characters that are magic in Markdown:\r\n text = showdown.helper.escapeCharacters(text, '*_{}[]\\\\', false);\r\n\r\n // jj the line above breaks this:\r\n //---\r\n //* Item\r\n // 1. Subitem\r\n // special char: *\r\n // ---\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n\r\n/**\r\n * Input: an email address, e.g. \"foo@example.com\"\r\n *\r\n * Output: the email address as a mailto link, with each character\r\n * of the address encoded as either a decimal or hex entity, in\r\n * the hopes of foiling most address harvesting spam bots. E.g.:\r\n *\r\n * foo\r\n * @example.com\r\n *\r\n * Based on a filter by Matthew Wickline, posted to the BBEdit-Talk\r\n * mailing list: \r\n *\r\n */\r\nshowdown.subParser('encodeEmailAddress', function (addr) {\r\n 'use strict';\r\n\r\n var encode = [\r\n function (ch) {\r\n return '&#' + ch.charCodeAt(0) + ';';\r\n },\r\n function (ch) {\r\n return '&#x' + ch.charCodeAt(0).toString(16) + ';';\r\n },\r\n function (ch) {\r\n return ch;\r\n }\r\n ];\r\n\r\n addr = 'mailto:' + addr;\r\n\r\n addr = addr.replace(/./g, function (ch) {\r\n if (ch === '@') {\r\n // this *must* be encoded. I insist.\r\n ch = encode[Math.floor(Math.random() * 2)](ch);\r\n } else if (ch !== ':') {\r\n // leave ':' alone (to spot mailto: later)\r\n var r = Math.random();\r\n // roughly 10% raw, 45% hex, 45% dec\r\n ch = (\r\n r > 0.9 ? encode[2](ch) :\r\n r > 0.45 ? encode[1](ch) :\r\n encode[0](ch)\r\n );\r\n }\r\n return ch;\r\n });\r\n\r\n addr = '' + addr + '';\r\n addr = addr.replace(/\">.+:/g, '\">'); // strip the mailto: from the visible part\r\n\r\n return addr;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Within tags -- meaning between < and > -- encode [\\ ` * _] so they\r\n * don't conflict with their use in Markdown for code, italics and strong.\r\n */\r\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text) {\r\n 'use strict';\r\n\r\n // Build a regex to find HTML tags and comments. See Friedl's\r\n // \"Mastering Regular Expressions\", 2nd Ed., pp. 200-201.\r\n var regex = /(<[a-z\\/!$](\"[^\"]*\"|'[^']*'|[^'\">])*>|)/gi;\r\n\r\n text = text.replace(regex, function (wholeMatch) {\r\n var tag = wholeMatch.replace(/(.)<\\/?code>(?=.)/g, '$1`');\r\n tag = showdown.helper.escapeCharacters(tag, '\\\\`*_');\r\n return tag;\r\n });\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Handle github codeblocks prior to running HashHTML so that\r\n * HTML contained within the codeblock gets escaped properly\r\n * Example:\r\n * ```ruby\r\n * def hello_world(x)\r\n * puts \"Hello, #{x}\"\r\n * end\r\n * ```\r\n */\r\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\r\n 'use strict';\r\n\r\n text += '~0';\r\n\r\n text = text.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,\r\n function (wholeMatch, m1, m2) {\r\n var language = m1,\r\n codeblock = m2,\r\n end = '\\n';\r\n\r\n if (options.omitExtraWLInCodeBlocks) {\r\n end = '';\r\n }\r\n\r\n codeblock = showdown.subParser('encodeCode')(codeblock);\r\n codeblock = showdown.subParser('detab')(codeblock);\r\n codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\r\n codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\r\n\r\n codeblock = '
' + codeblock + end + '
';\r\n\r\n return showdown.subParser('hashBlock')(codeblock, options, globals);\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashBlock', function (text, options, globals) {\r\n 'use strict';\r\n text = text.replace(/(^\\n+|\\n+$)/g, '');\r\n return '\\n\\n~K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashElement', function (text, options, globals) {\r\n 'use strict';\r\n\r\n return function (wholeMatch, m1) {\r\n var blockText = m1;\r\n\r\n // Undo double lines\r\n blockText = blockText.replace(/\\n\\n/g, '\\n');\r\n blockText = blockText.replace(/^\\n/, '');\r\n\r\n // strip trailing blank lines\r\n blockText = blockText.replace(/\\n+$/g, '');\r\n\r\n // Replace the element text with a marker (\"~KxK\" where x is its key)\r\n blockText = '\\n\\n~K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\r\n\r\n return blockText;\r\n };\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashHTMLBlocks', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // attacklab: Double up blank lines to reduce lookaround\r\n text = text.replace(/\\n/g, '\\n\\n');\r\n\r\n // Hashify HTML blocks:\r\n // We only want to do this for block-level HTML tags, such as headers,\r\n // lists, and tables. That's because we still want to wrap

s around\r\n // \"paragraphs\" that are wrapped in non-block-level tags, such as anchors,\r\n // phrase emphasis, and spans. The list of tags we're looking for is\r\n // hard-coded:\r\n //var block_tags_a = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside';\r\n //var block_tags_b = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside';\r\n\r\n // First, look for nested blocks, e.g.:\r\n //

\r\n //
\r\n // tags for inner block must be indented.\r\n //
\r\n //
\r\n //\r\n // The outermost tags must start at the left margin for this to match, and\r\n // the inner nested divs must be indented.\r\n // We need to do this before the next, more liberal match, because the next\r\n // match will start at the first `
` and stop at the first `
`.\r\n\r\n // attacklab: This regex can be expensive when it fails.\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_a)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\\n\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b[^\\r]*?\\n<\\/\\2>[ \\t]*(?=\\n+))/gm, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n //\r\n // Now match more liberally, simply from `\\n` to `\\n`\r\n //\r\n\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_b)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\t\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\\b[^\\r]*?<\\/\\2>[ \\t]*(?=\\n+)\\n)/gm, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // Special case just for
. It was easier to make a special case than\r\n // to make the other regex more complicated.\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\r\n (<(hr)\t\t\t\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n ([^<>])*?\t\t\t//\r\n \\/?>)\t\t\t\t// the matching end tag\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(\\n[ ]{0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // Special case for standalone HTML comments:\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n \r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(\\n\\n[ ]{0,3}[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // PHP and ASP-style processor instructions ( and <%...%>)\r\n\r\n /*\r\n text = text.replace(/\r\n (?:\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n )\r\n (\t\t\t\t\t\t// save in $1\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n (?:\r\n <([?%])\t\t\t// $2\r\n [^\\r]*?\r\n \\2>\r\n )\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(?:\\n\\n)([ ]{0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // attacklab: Undo double lines (see comment at top of this function)\r\n text = text.replace(/\\n\\n/g, '\\n');\r\n return text;\r\n\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('headers', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // Set text-style headers:\r\n //\tHeader 1\r\n //\t========\r\n //\r\n //\tHeader 2\r\n //\t--------\r\n //\r\n text = text.replace(/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\r\n function (wholeMatch, m1) {\r\n return showdown.subParser('hashBlock')('

' +\r\n showdown.subParser('spanGamut')(m1, options, globals) + '

', options, globals);\r\n });\r\n\r\n text = text.replace(/^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm,\r\n function (matchFound, m1) {\r\n return showdown.subParser('hashBlock')('

' +\r\n showdown.subParser('spanGamut')(m1, options, globals) + '

', options, globals);\r\n });\r\n\r\n // atx-style headers:\r\n // # Header 1\r\n // ## Header 2\r\n // ## Header 2 with closing hashes ##\r\n // ...\r\n // ###### Header 6\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n ^(\\#{1,6})\t\t\t\t// $1 = string of #'s\r\n [ \\t]*\r\n (.+?)\t\t\t\t\t// $2 = Header text\r\n [ \\t]*\r\n \\#*\t\t\t\t\t\t// optional closing #'s (not counted)\r\n \\n+\r\n /gm, function() {...});\r\n */\r\n\r\n text = text.replace(/^(\\#{1,6})[ \\t]*(.+?)[ \\t]*\\#*\\n+/gm,\r\n function (wholeMatch, m1, m2) {\r\n var span = showdown.subParser('spanGamut')(m2, options, globals),\r\n header = '' + span + '';\r\n\r\n return showdown.subParser('hashBlock')(header, options, globals);\r\n });\r\n\r\n function headerId(m) {\r\n return m.replace(/[^\\w]/g, '').toLowerCase();\r\n }\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n\r\n/**\r\n * Turn Markdown image shortcuts into tags.\r\n */\r\nshowdown.subParser('images', function (text, options, globals) {\r\n 'use strict';\r\n\r\n var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n\r\n wholeMatch = m1;\r\n var altText = m2,\r\n linkId = m3.toLowerCase(),\r\n url = m4,\r\n title = m7,\r\n gUrls = globals.gUrls,\r\n gTitles = globals.gTitles;\r\n\r\n if (!title) {\r\n title = '';\r\n }\r\n\r\n if (url === '' || url === null) {\r\n if (linkId === '' || linkId === null) {\r\n // lower-case and turn embedded newlines into spaces\r\n linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\r\n }\r\n url = '#' + linkId;\r\n\r\n if (typeof gUrls[linkId] !== 'undefined') {\r\n url = gUrls[linkId];\r\n if (typeof gTitles[linkId] !== 'undefined') {\r\n title = gTitles[linkId];\r\n }\r\n }\r\n else {\r\n return wholeMatch;\r\n }\r\n }\r\n\r\n altText = altText.replace(/\"/g, '"');\r\n url = showdown.helper.escapeCharacters(url, '*_');\r\n var result = '\"'?\t\t\t// src url = $4\r\n [ \\t]*\r\n (\t\t\t\t\t// $5\r\n (['\"])\t\t\t// quote char = $6\r\n (.*?)\t\t\t// title = $7\r\n \\6\t\t\t\t// matching quote\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\]\\s?\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeImageTag);\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('italicsAndBold', function (text) {\r\n 'use strict';\r\n // must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g,\r\n '$2');\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g,\r\n '$2');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\r\n */\r\nshowdown.subParser('lists', function (text, options, globals) {\r\n 'use strict';\r\n\r\n /**\r\n * Process the contents of a single ordered or unordered list, splitting it\r\n * into individual list items.\r\n * @param listStr\r\n * @returns {string|*}\r\n */\r\n var processListItems = function (listStr) {\r\n // The $g_list_level global keeps track of when we're inside a list.\r\n // Each time we enter a list, we increment it; when we leave a list,\r\n // we decrement. If it's zero, we're not in a list anymore.\r\n //\r\n // We do this because when we're not inside a list, we want to treat\r\n // something like this:\r\n //\r\n // I recommend upgrading to version\r\n // 8. Oops, now this line is treated\r\n // as a sub-list.\r\n //\r\n // As a single paragraph, despite the fact that the second line starts\r\n // with a digit-period-space sequence.\r\n //\r\n // Whereas when we're inside a list (or sub-list), that line will be\r\n // treated as the start of a sub-list. What a kludge, huh? This is\r\n // an aspect of Markdown's syntax that's hard to parse perfectly\r\n // without resorting to mind-reading. Perhaps the solution is to\r\n // change the syntax rules such that sub-lists must start with a\r\n // starting cardinal number; e.g. \"1.\" or \"a.\".\r\n\r\n globals.gListLevel++;\r\n\r\n // trim trailing blank lines:\r\n listStr = listStr.replace(/\\n{2,}$/, '\\n');\r\n\r\n // attacklab: add sentinel to emulate \\z\r\n listStr += '~0';\r\n\r\n /*\r\n list_str = list_str.replace(/\r\n (\\n)?\t\t\t\t\t\t\t// leading line = $1\r\n (^[ \\t]*)\t\t\t\t\t\t// leading whitespace = $2\r\n ([*+-]|\\d+[.]) [ \\t]+\t\t\t// list marker = $3\r\n ([^\\r]+?\t\t\t\t\t\t// list item text = $4\r\n (\\n{1,2}))\r\n (?= \\n* (~0 | \\2 ([*+-]|\\d+[.]) [ \\t]+))\r\n /gm, function(){...});\r\n */\r\n listStr = listStr.replace(/(\\n)?(^[ \\t]*)([*+-]|\\d+[.])[ \\t]+([^\\r]+?(\\n{1,2}))(?=\\n*(~0|\\2([*+-]|\\d+[.])[ \\t]+))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n var item = showdown.subParser('outdent')(m4, options, globals);\r\n //m1 - LeadingLine\r\n\r\n if (m1 || (item.search(/\\n{2,}/) > -1)) {\r\n item = showdown.subParser('blockGamut')(item, options, globals);\r\n } else {\r\n // Recursion for sub-lists:\r\n item = showdown.subParser('lists')(item, options, globals);\r\n item = item.replace(/\\n$/, ''); // chomp(item)\r\n item = showdown.subParser('spanGamut')(item, options, globals);\r\n }\r\n\r\n return '
  • ' + item + '
  • \\n';\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n listStr = listStr.replace(/~0/g, '');\r\n\r\n globals.gListLevel--;\r\n return listStr;\r\n };\r\n\r\n\r\n // attacklab: add sentinel to hack around khtml/safari bug:\r\n // http://bugs.webkit.org/show_bug.cgi?id=11231\r\n text += '~0';\r\n\r\n // Re-usable pattern to match any entirel ul or ol list:\r\n\r\n /*\r\n var whole_list = /\r\n (\t\t\t\t\t\t\t\t\t// $1 = whole list\r\n (\t\t\t\t\t\t\t\t// $2\r\n [ ]{0,3}\t\t\t\t\t// attacklab: g_tab_width - 1\r\n ([*+-]|\\d+[.])\t\t\t\t// $3 = first list item marker\r\n [ \\t]+\r\n )\r\n [^\\r]+?\r\n (\t\t\t\t\t\t\t\t// $4\r\n ~0\t\t\t\t\t\t\t// sentinel for workaround; should be $\r\n |\r\n \\n{2,}\r\n (?=\\S)\r\n (?!\t\t\t\t\t\t\t// Negative lookahead for another list item marker\r\n [ \\t]*\r\n (?:[*+-]|\\d+[.])[ \\t]+\r\n )\r\n )\r\n )/g\r\n */\r\n var wholeList = /^(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm;\r\n\r\n if (globals.gListLevel) {\r\n text = text.replace(wholeList, function (wholeMatch, m1, m2) {\r\n var list = m1,\r\n listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\r\n\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n list = list.replace(/\\n{2,}/g, '\\n\\n\\n');\r\n\r\n var result = processListItems(list);\r\n\r\n // Trim any trailing whitespace, to put the closing ``\r\n // up on the preceding line, to get it past the current stupid\r\n // HTML block parser. This is a hack to work around the terrible\r\n // hack that is the HTML block parser.\r\n result = result.replace(/\\s+$/, '');\r\n result = '<' + listType + '>' + result + '\\n';\r\n return result;\r\n });\r\n } else {\r\n wholeList = /(\\n\\n|^\\n?)(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/g;\r\n\r\n text = text.replace(wholeList, function(wholeMatch,m1,m2,m3) {\r\n\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n var list = m2.replace(/\\n{2,}/g, '\\n\\n\\n'),\r\n listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol',\r\n result = processListItems(list);\r\n\r\n return m1 + '<' + listType + '>\\n' + result + '\\n';\r\n });\r\n }\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Remove one level of line-leading tabs or spaces\r\n */\r\nshowdown.subParser('outdent', function (text) {\r\n 'use strict';\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n text = text.replace(/^(\\t|[ ]{1,4})/gm, '~0'); // attacklab: g_tab_width\r\n\r\n // attacklab: clean up hack\r\n text = text.replace(/~0/g, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n *\r\n */\r\nshowdown.subParser('paragraphs', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // Strip leading and trailing lines:\r\n text = text.replace(/^\\n+/g, '');\r\n text = text.replace(/\\n+$/g, '');\r\n\r\n var grafs = text.split(/\\n{2,}/g),\r\n grafsOut = [];\r\n\r\n /** Wrap

    tags. */\r\n var end = grafs.length;\r\n for (var i = 0; i < end; i++) {\r\n var str = grafs[i];\r\n\r\n // if this is an HTML marker, copy it\r\n if (str.search(/~K(\\d+)K/g) >= 0) {\r\n grafsOut.push(str);\r\n }\r\n else if (str.search(/\\S/) >= 0) {\r\n str = showdown.subParser('spanGamut')(str, options, globals);\r\n str = str.replace(/^([ \\t]*)/g, '

    ');\r\n str += '

    ';\r\n grafsOut.push(str);\r\n }\r\n }\r\n\r\n /** Unhashify HTML blocks */\r\n end = grafsOut.length;\r\n for (i = 0; i < end; i++) {\r\n // if this is a marker for an html block...\r\n while (grafsOut[i].search(/~K(\\d+)K/) >= 0) {\r\n var blockText = globals.gHtmlBlocks[RegExp.$1];\r\n blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\r\n grafsOut[i] = grafsOut[i].replace(/~K\\d+K/, blockText);\r\n }\r\n }\r\n\r\n return grafsOut.join('\\n\\n');\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * These are all the transformations that occur *within* block-level\r\n * tags like paragraphs, headers, and list items.\r\n */\r\nshowdown.subParser('spanGamut', function (text, options, globals) {\r\n 'use strict';\r\n\r\n\r\n text = showdown.subParser('codeSpans')(text, options, globals);\r\n text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\r\n text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\r\n\r\n // Process anchor and image tags. Images must come first,\r\n // because ![foo][f] looks like an anchor.\r\n text = showdown.subParser('images')(text, options, globals);\r\n text = showdown.subParser('anchors')(text, options, globals);\r\n\r\n // Make links out of things like ``\r\n // Must come after _DoAnchors(), because you can use < and >\r\n // delimiters in inline links like [this]().\r\n text = showdown.subParser('autoLinks')(text, options, globals);\r\n text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\r\n text = showdown.subParser('italicsAndBold')(text, options, globals);\r\n\r\n // Do hard breaks:\r\n text = text.replace(/ +\\n/g, '
    \\n');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Strip any lines consisting only of spaces and tabs.\r\n * This makes subsequent regexs easier to write, because we can\r\n * match consecutive blank lines with /\\n+/ instead of something\r\n * contorted like /[ \\t]*\\n+/\r\n */\r\nshowdown.subParser('stripBlankLines', function (text) {\r\n 'use strict';\r\n return text.replace(/^[ \\t]+$/mg, '');\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Strips link definitions from text, stores the URLs and titles in\r\n * hash references.\r\n * Link defs are in the form: ^[id]: url \"optional title\"\r\n *\r\n * ^[ ]{0,3}\\[(.+)\\]: // id = $1 attacklab: g_tab_width - 1\r\n * [ \\t]*\r\n * \\n? // maybe *one* newline\r\n * [ \\t]*\r\n * ? // url = $2\r\n * [ \\t]*\r\n * \\n? // maybe one newline\r\n * [ \\t]*\r\n * (?:\r\n * (\\n*) // any lines skipped = $3 attacklab: lookbehind removed\r\n * [\"(]\r\n * (.+?) // title = $4\r\n * [\")]\r\n * [ \\t]*\r\n * )? // title is optional\r\n * (?:\\n+|$)\r\n * /gm,\r\n * function(){...});\r\n *\r\n */\r\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += '~0';\r\n\r\n text = text.replace(/^[ ]{0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n m1 = m1.toLowerCase();\r\n globals.gUrls[m1] = showdown.subParser('encodeAmpsAndAngles')(m2); // Link IDs are case-insensitive\r\n if (m3) {\r\n // Oops, found blank lines, so it's not a title.\r\n // Put back the parenthetical statement we stole.\r\n return m3 + m4;\r\n } else if (m4) {\r\n globals.gTitles[m1] = m4.replace(/\"/g, '"');\r\n }\r\n\r\n // Completely remove the definition from the text\r\n return '';\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Swap back in all the special characters we've hidden.\r\n */\r\nshowdown.subParser('unescapeSpecialChars', function (text) {\r\n 'use strict';\r\n\r\n text = text.replace(/~E(\\d+)E/g,\r\n function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n }\r\n );\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 15-01-2015.\r\n */\r\n\r\nvar root = this;\r\n\r\n// CommonJS/nodeJS Loader\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = showdown;\r\n}\r\n// AMD Loader\r\nelse if (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n return showdown;\r\n });\r\n}\r\n// Regular Browser loader\r\nelse {\r\n root.showdown = showdown;\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["..\\src\\showdown.js","..\\src\\helpers.js","..\\src\\subParsers\\anchors.js","..\\src\\subParsers\\autoLinks.js","..\\src\\subParsers\\blockGamut.js","..\\src\\subParsers\\blockQuotes.js","..\\src\\subParsers\\codeBlocks.js","..\\src\\subParsers\\codeSpans.js","..\\src\\subParsers\\detab.js","..\\src\\subParsers\\encodeAmpsAndAngles.js","..\\src\\subParsers\\encodeBackslashEscapes.js","..\\src\\subParsers\\encodeCode.js","..\\src\\subParsers\\encodeEmailAddress.js","..\\src\\subParsers\\escapeSpecialCharsWithinTagAttributes.js","..\\src\\subParsers\\githubCodeBlocks.js","..\\src\\subParsers\\hashBlock.js","..\\src\\subParsers\\hashElement.js","..\\src\\subParsers\\hashHTMLBlocks.js","..\\src\\subParsers\\headers.js","..\\src\\subParsers\\images.js","..\\src\\subParsers\\italicsAndBold.js","..\\src\\subParsers\\lists.js","..\\src\\subParsers\\outdent.js","..\\src\\subParsers\\paragraphs.js","..\\src\\subParsers\\spanGamut.js","..\\src\\subParsers\\stripBlankLines.js","..\\src\\subParsers\\stripLinkDefinitions.js","..\\src\\subParsers\\unescapeSpecialChars.js","..\\src\\loader.js"],"names":[],"mappings":"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","file":"showdown.js","sourcesContent":["/**\r\n * Created by Tivie on 06-01-2015.\r\n */\r\n\r\n// Private properties\r\nvar showdown = {},\r\n parsers = {},\r\n globalOptions = {\r\n omitExtraWLInCodeBlocks: false,\r\n prefixHeaderId: false\r\n };\r\n\r\n///////////////////////////////////////////////////////////////////////////\r\n// Public API\r\n//\r\n/**\r\n * helper namespace\r\n * @type {{}}\r\n */\r\nshowdown.helper = {};\r\n\r\n\r\n///////////////////////////////////////////////////////////////////////////\r\n// API\r\n//\r\n\r\n// Public properties\r\nshowdown.extensions = {};\r\n\r\n//Public methods\r\nshowdown.setOption = function (key, value) {\r\n globalOptions[key] = value;\r\n return this;\r\n};\r\n\r\nshowdown.getOption = function (key) {\r\n return globalOptions[key];\r\n};\r\n\r\nshowdown.getOptions = function () {\r\n return globalOptions;\r\n};\r\n\r\n/**\r\n * Static Method\r\n *\r\n * subParser(name) - Get a registered subParser\r\n * subParser(name, func) - Register a subParser\r\n * @param {string} name\r\n * @param {function} [func]\r\n * @returns {*}\r\n */\r\nshowdown.subParser = function (name, func) {\r\n if (showdown.helper.isString(name)) {\r\n if (typeof func !== 'undefined') {\r\n parsers[name] = func;\r\n } else {\r\n if (parsers.hasOwnProperty(name)) {\r\n return parsers[name];\r\n } else {\r\n throw Error('SubParser named ' + name + ' not registered!');\r\n }\r\n }\r\n }\r\n};\r\n\r\n/**\r\n *\r\n * @param {object} [converterOptions]\r\n * @returns {{makeHtml: Function}}\r\n */\r\nshowdown.Converter = function (converterOptions) {\r\n\r\n converterOptions = converterOptions || {};\r\n\r\n var options = globalOptions,\r\n parserOrder = [\r\n 'detab',\r\n 'stripBlankLines',\r\n //runLanguageExtensions,\r\n 'githubCodeBlocks',\r\n 'hashHTMLBlocks',\r\n 'stripLinkDefinitions',\r\n 'blockGamut',\r\n 'unescapeSpecialChars'\r\n ];\r\n\r\n // Merge options\r\n if (typeof converterOptions === 'object') {\r\n for (var opt in converterOptions) {\r\n if (converterOptions.hasOwnProperty(opt)) {\r\n options[opt] = converterOptions[opt];\r\n }\r\n }\r\n }\r\n\r\n var makeHtml = function (text) {\r\n\r\n //check if text is not falsy\r\n if (!text) {\r\n return text;\r\n }\r\n\r\n var globals = {\r\n gHtmlBlocks: [],\r\n gUrls: {},\r\n gTitles: {},\r\n gListLevel: 0,\r\n hashLinkCounts: {}\r\n };\r\n\r\n // attacklab: Replace ~ with ~T\r\n // This lets us use tilde as an escape char to avoid md5 hashes\r\n // The choice of character is arbitrary; anything that isn't\r\n // magic in Markdown will work.\r\n text = text.replace(/~/g, '~T');\r\n\r\n // attacklab: Replace $ with ~D\r\n // RegExp interprets $ as a special character\r\n // when it's in a replacement string\r\n text = text.replace(/\\$/g, '~D');\r\n\r\n // Standardize line endings\r\n text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\r\n text = text.replace(/\\r/g, '\\n'); // Mac to Unix\r\n\r\n // Make sure text begins and ends with a couple of newlines:\r\n text = '\\n\\n' + text + '\\n\\n';\r\n\r\n // Run all registered parsers\r\n for (var i = 0; i < parserOrder.length; ++i) {\r\n var name = parserOrder[i];\r\n text = parsers[name](text, options, globals);\r\n }\r\n\r\n // attacklab: Restore dollar signs\r\n text = text.replace(/~D/g, '$$');\r\n\r\n // attacklab: Restore tildes\r\n text = text.replace(/~T/g, '~');\r\n\r\n // Run output modifiers\r\n //showdown.forEach(g_output_modifiers, function (x) {\r\n // text = _ExecuteExtension(x, text);\r\n //});\r\n\r\n return text;\r\n };\r\n\r\n\r\n return {\r\n makeHtml: makeHtml\r\n };\r\n};\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nfunction isString(a) {\r\n return (typeof a === 'string' || a instanceof String);\r\n}\r\n\r\nfunction forEach(obj, callback) {\r\n if (typeof obj.forEach === 'function') {\r\n obj.forEach(callback);\r\n } else {\r\n var i, len = obj.length;\r\n for (i = 0; i < len; i++) {\r\n callback(obj[i], i, obj);\r\n }\r\n }\r\n}\r\n\r\nfunction isArray(a) {\r\n return a.constructor === Array;\r\n}\r\n\r\nfunction isUndefined(value) {\r\n return typeof value === 'undefined';\r\n}\r\n\r\nvar escapeCharactersCallback = function (wholeMatch, m1) {\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return '~E' + charCodeToEscape + 'E';\r\n};\r\n\r\nvar escapeCharacters = function (text, charsToEscape, afterBackslash) {\r\n // First we have to escape the escape characters so that\r\n // we can build a character class out of them\r\n var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\r\n\r\n if (afterBackslash) {\r\n regexString = '\\\\\\\\' + regexString;\r\n }\r\n\r\n var regex = new RegExp(regexString, 'g');\r\n text = text.replace(regex, escapeCharactersCallback);\r\n\r\n return text;\r\n};\r\n\r\nif (!showdown.hasOwnProperty('helper')) {\r\n showdown.helper = {};\r\n}\r\n\r\n/**\r\n * isString helper function\r\n * @param a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isString = isString;\r\n\r\n/**\r\n * ForEach helper function\r\n * @param {*} obj\r\n * @param callback\r\n */\r\nshowdown.helper.forEach = forEach;\r\n\r\n/**\r\n * isArray helper function\r\n * @param {*} a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isArray = isArray;\r\n\r\n/**\r\n * Check if value is undefined\r\n *\r\n * @static\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\r\n */\r\nshowdown.helper.isUndefined = isUndefined;\r\n\r\n/**\r\n * Callback used to escape characters when passing through String.replace\r\n * @param {string} wholeMatch\r\n * @param {string} m1\r\n * @returns {string}\r\n */\r\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\r\n\r\n/**\r\n * Escape characters in a string\r\n *\r\n * @param {string} text\r\n * @param {string} charsToEscape\r\n * @param {boolean} afterBackslash\r\n * @returns {XML|string|void|*}\r\n */\r\nshowdown.helper.escapeCharacters = escapeCharacters;\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Turn Markdown link shortcuts into XHTML tags.\r\n */\r\nshowdown.subParser('anchors', function (text, config, globals) {\r\n 'use strict';\r\n\r\n var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n if (showdown.helper.isUndefined(m7)) {\r\n m7 = '';\r\n }\r\n wholeMatch = m1;\r\n var linkText = m2,\r\n linkId = m3.toLowerCase(),\r\n url = m4,\r\n title = m7;\r\n\r\n if (!url) {\r\n if (!linkId) {\r\n // lower-case and turn embedded newlines into spaces\r\n linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\r\n }\r\n url = '#' + linkId;\r\n\r\n if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\r\n url = globals.gUrls[linkId];\r\n if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\r\n title = globals.gTitles[linkId];\r\n }\r\n }\r\n else {\r\n if (wholeMatch.search(/\\(\\s*\\)$/m) > -1) {\r\n // Special case for explicit empty url\r\n url = '';\r\n } else {\r\n return wholeMatch;\r\n }\r\n }\r\n }\r\n\r\n url = showdown.helper.escapeCharacters(url, '*_');\r\n var result = '';\r\n\r\n return result;\r\n };\r\n\r\n // First, handle reference-style links: [link text] [id]\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t\t// allow brackets nested one level\r\n |\r\n [^\\[]\t\t\t// or anything else\r\n )*\r\n )\r\n \\]\r\n\r\n [ ]?\t\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t\t// pad remaining backreferences\r\n /g,_DoAnchors_callback);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeAnchorTag);\r\n\r\n //\r\n // Next, inline-style links: [link text](url \"optional title\")\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t// allow brackets nested one level\r\n |\r\n [^\\[\\]]\t\t\t// or anything else\r\n )\r\n )\r\n \\]\r\n \\(\t\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t\t// no id, so leave $3 empty\r\n ?\t\t\t\t// href = $4\r\n [ \\t]*\r\n (\t\t\t\t\t\t// $5\r\n (['\"])\t\t\t\t// quote char = $6\r\n (.*?)\t\t\t\t// Title = $7\r\n \\6\t\t\t\t\t// matching quote\r\n [ \\t]*\t\t\t\t// ignore any spaces/tabs between closing quote and )\r\n )?\t\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeAnchorTag);\r\n\r\n //\r\n // Last, handle reference-style shortcuts: [link text]\r\n // These must come last in case you've also got [link test][1]\r\n // or [link test](/foo)\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t \t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+)\t\t\t\t// link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()()\t\t\t\t\t// pad rest of backreferences\r\n /g, writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[([^\\[\\]]+)\\])()()()()()/g, writeAnchorTag);\r\n\r\n return text;\r\n\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('autoLinks', function (text) {\r\n 'use strict';\r\n\r\n text = text.replace(/<((https?|ftp|dict):[^'\">\\s]+)>/gi, \"$1\");\r\n\r\n // Email addresses: \r\n\r\n /*\r\n text = text.replace(/\r\n <\r\n (?:mailto:)?\r\n (\r\n [-.\\w]+\r\n \\@\r\n [-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+\r\n )\r\n >\r\n /gi, _DoAutoLinks_callback());\r\n */\r\n text = text.replace(/<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\r\n function (wholeMatch, m1) {\r\n var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1);\r\n return showdown.subParser('encodeEmailAddress')(unescapedStr);\r\n }\r\n );\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * These are all the transformations that form block-level\r\n * tags like paragraphs, headers, and list items.\r\n */\r\nshowdown.subParser('blockGamut', function (text, options, globals) {\r\n 'use strict';\r\n\r\n text = showdown.subParser('headers')(text, options, globals);\r\n\r\n // Do Horizontal Rules:\r\n var key = showdown.subParser('hashBlock')('
    ', options, globals);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\*[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\-[ ]?){3,}[ \\t]*$/gm, key);\r\n text = text.replace(/^[ ]{0,2}([ ]?\\_[ ]?){3,}[ \\t]*$/gm, key);\r\n\r\n text = showdown.subParser('lists')(text, options, globals);\r\n text = showdown.subParser('codeBlocks')(text, options, globals);\r\n text = showdown.subParser('blockQuotes')(text, options, globals);\r\n\r\n // We already ran _HashHTMLBlocks() before, in Markdown(), but that\r\n // was to escape raw HTML in the original Markdown source. This time,\r\n // we're escaping the markup we've just created, so that we don't wrap\r\n //

    tags around block-level tags.\r\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\r\n text = showdown.subParser('paragraphs')(text, options, globals);\r\n\r\n return text;\r\n});\r\n\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('blockQuotes', function (text, options, globals) {\r\n 'use strict';\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t\t// Wrap whole match in $1\r\n (\r\n ^[ \\t]*>[ \\t]?\t\t\t// '>' at the start of a line\r\n .+\\n\t\t\t\t\t// rest of the first line\r\n (.+\\n)*\t\t\t\t\t// subsequent consecutive lines\r\n \\n*\t\t\t\t\t\t// blanks\r\n )+\r\n )\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,\r\n function (wholeMatch, m1) {\r\n var bq = m1;\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, '~0'); // trim one level of quoting\r\n\r\n // attacklab: clean up hack\r\n bq = bq.replace(/~0/g, '');\r\n\r\n bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\r\n bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\r\n\r\n bq = bq.replace(/(^|\\n)/g, '$1 ');\r\n // These leading spaces screw with

     content, so we need to fix that:\r\n            bq = bq.replace(\r\n                /(\\s*
    [^\\r]+?<\\/pre>)/gm,\r\n                function (wholeMatch, m1) {\r\n                    var pre = m1;\r\n                    // attacklab: hack around Konqueror 3.5.4 bug:\r\n                    pre = pre.replace(/^  /mg, '~0');\r\n                    pre = pre.replace(/~0/g, '');\r\n                    return pre;\r\n                });\r\n\r\n            return showdown.subParser('hashBlock')('
    \\n' + bq + '\\n
    ', options, globals);\r\n });\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Process Markdown `
    ` blocks.\r\n */\r\nshowdown.subParser('codeBlocks', function (text, options, globals) {\r\n    'use strict';\r\n\r\n    /*\r\n     text = text.replace(text,\r\n     /(?:\\n\\n|^)\r\n     (\t\t\t\t\t\t\t\t// $1 = the code block -- one or more lines, starting with a space/tab\r\n     (?:\r\n     (?:[ ]{4}|\\t)\t\t\t// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width\r\n     .*\\n+\r\n     )+\r\n     )\r\n     (\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))\t// attacklab: g_tab_width\r\n     /g,function(){...});\r\n     */\r\n\r\n    // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n    text += '~0';\r\n\r\n    text = text.replace(/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g,\r\n        function (wholeMatch, m1, m2) {\r\n            var codeblock = m1,\r\n                nextChar = m2;\r\n\r\n            codeblock = showdown.subParser('outdent')(codeblock);\r\n            codeblock = showdown.subParser('encodeCode')(codeblock);\r\n            codeblock = showdown.subParser('detab')(codeblock);\r\n            codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\r\n            codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\r\n\r\n            codeblock = '
    ' + codeblock + '\\n
    ';\r\n\r\n return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n *\r\n * * Backtick quotes are used for spans.\r\n *\r\n * * You can use multiple backticks as the delimiters if you want to\r\n * include literal backticks in the code span. So, this input:\r\n *\r\n * Just type ``foo `bar` baz`` at the prompt.\r\n *\r\n * Will translate to:\r\n *\r\n *

    Just type foo `bar` baz at the prompt.

    \r\n *\r\n * There's no arbitrary limit to the number of backticks you\r\n * can use as delimters. If you need three consecutive backticks\r\n * in your code, use four for delimiters, etc.\r\n *\r\n * * You can use spaces to get literal backticks at the edges:\r\n *\r\n * ... type `` `bar` `` ...\r\n *\r\n * Turns to:\r\n *\r\n * ... type `bar` ...\r\n */\r\nshowdown.subParser('codeSpans', function (text) {\r\n 'use strict';\r\n\r\n /*\r\n text = text.replace(/\r\n (^|[^\\\\])\t\t\t\t\t// Character before opening ` can't be a backslash\r\n (`+)\t\t\t\t\t\t// $2 = Opening run of `\r\n (\t\t\t\t\t\t\t// $3 = The code block\r\n [^\\r]*?\r\n [^`]\t\t\t\t\t// attacklab: work around lack of lookbehind\r\n )\r\n \\2\t\t\t\t\t\t\t// Matching closer\r\n (?!`)\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\r\n function (wholeMatch, m1, m2, m3) {\r\n var c = m3;\r\n c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\r\n c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\r\n c = showdown.subParser('encodeCode')(c);\r\n return m1 + '' + c + '';\r\n });\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Convert all tabs to spaces\r\n */\r\nshowdown.subParser('detab', function (text) {\r\n 'use strict';\r\n\r\n // expand first n-1 tabs\r\n text = text.replace(/\\t(?=\\t)/g, ' '); // g_tab_width\r\n\r\n // replace the nth with two sentinels\r\n text = text.replace(/\\t/g, '~A~B');\r\n\r\n // use the sentinel to anchor our regex so it doesn't explode\r\n text = text.replace(/~B(.+?)~A/g,\r\n function (wholeMatch, m1) {\r\n var leadingText = m1,\r\n numSpaces = 4 - leadingText.length % 4; // g_tab_width\r\n\r\n // there *must* be a better way to do this:\r\n for (var i = 0; i < numSpaces; i++) {\r\n leadingText += ' ';\r\n }\r\n\r\n return leadingText;\r\n }\r\n );\r\n\r\n // clean up sentinels\r\n text = text.replace(/~A/g, ' '); // g_tab_width\r\n text = text.replace(/~B/g, '');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Smart processing for ampersands and angle brackets that need to be encoded.\r\n */\r\nshowdown.subParser('encodeAmpsAndAngles', function (text) {\r\n 'use strict';\r\n // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\r\n // http://bumppo.net/projects/amputator/\r\n text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&');\r\n\r\n // Encode naked <'s\r\n text = text.replace(/<(?![a-z\\/?\\$!])/gi, '<');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Returns the string, with after processing the following backslash escape sequences.\r\n *\r\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\r\n *\r\n * text = escapeCharacters(text,\"\\\\\",true);\r\n * text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\r\n *\r\n * ...but we're sidestepping its use of the (slow) RegExp constructor\r\n * as an optimization for Firefox. This function gets called a LOT.\r\n */\r\nshowdown.subParser('encodeBackslashEscapes', function (text) {\r\n 'use strict';\r\n text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\r\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+-.!])/g, showdown.helper.escapeCharactersCallback);\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Encode/escape certain characters inside Markdown code runs.\r\n * The point is that in code, these characters are literals,\r\n * and lose their special Markdown meanings.\r\n */\r\nshowdown.subParser('encodeCode', function (text) {\r\n 'use strict';\r\n\r\n // Encode all ampersands; HTML entities are not\r\n // entities within a Markdown code span.\r\n text = text.replace(/&/g, '&');\r\n\r\n // Do the angle bracket song and dance:\r\n text = text.replace(//g, '>');\r\n\r\n // Now, escape characters that are magic in Markdown:\r\n text = showdown.helper.escapeCharacters(text, '*_{}[]\\\\', false);\r\n\r\n // jj the line above breaks this:\r\n //---\r\n //* Item\r\n // 1. Subitem\r\n // special char: *\r\n // ---\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n\r\n/**\r\n * Input: an email address, e.g. \"foo@example.com\"\r\n *\r\n * Output: the email address as a mailto link, with each character\r\n * of the address encoded as either a decimal or hex entity, in\r\n * the hopes of foiling most address harvesting spam bots. E.g.:\r\n *\r\n * foo\r\n * @example.com\r\n *\r\n * Based on a filter by Matthew Wickline, posted to the BBEdit-Talk\r\n * mailing list: \r\n *\r\n */\r\nshowdown.subParser('encodeEmailAddress', function (addr) {\r\n 'use strict';\r\n\r\n var encode = [\r\n function (ch) {\r\n return '&#' + ch.charCodeAt(0) + ';';\r\n },\r\n function (ch) {\r\n return '&#x' + ch.charCodeAt(0).toString(16) + ';';\r\n },\r\n function (ch) {\r\n return ch;\r\n }\r\n ];\r\n\r\n addr = 'mailto:' + addr;\r\n\r\n addr = addr.replace(/./g, function (ch) {\r\n if (ch === '@') {\r\n // this *must* be encoded. I insist.\r\n ch = encode[Math.floor(Math.random() * 2)](ch);\r\n } else if (ch !== ':') {\r\n // leave ':' alone (to spot mailto: later)\r\n var r = Math.random();\r\n // roughly 10% raw, 45% hex, 45% dec\r\n ch = (\r\n r > 0.9 ? encode[2](ch) :\r\n r > 0.45 ? encode[1](ch) :\r\n encode[0](ch)\r\n );\r\n }\r\n return ch;\r\n });\r\n\r\n addr = '' + addr + '';\r\n addr = addr.replace(/\">.+:/g, '\">'); // strip the mailto: from the visible part\r\n\r\n return addr;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Within tags -- meaning between < and > -- encode [\\ ` * _] so they\r\n * don't conflict with their use in Markdown for code, italics and strong.\r\n */\r\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text) {\r\n 'use strict';\r\n\r\n // Build a regex to find HTML tags and comments. See Friedl's\r\n // \"Mastering Regular Expressions\", 2nd Ed., pp. 200-201.\r\n var regex = /(<[a-z\\/!$](\"[^\"]*\"|'[^']*'|[^'\">])*>|)/gi;\r\n\r\n text = text.replace(regex, function (wholeMatch) {\r\n var tag = wholeMatch.replace(/(.)<\\/?code>(?=.)/g, '$1`');\r\n tag = showdown.helper.escapeCharacters(tag, '\\\\`*_');\r\n return tag;\r\n });\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Handle github codeblocks prior to running HashHTML so that\r\n * HTML contained within the codeblock gets escaped properly\r\n * Example:\r\n * ```ruby\r\n * def hello_world(x)\r\n * puts \"Hello, #{x}\"\r\n * end\r\n * ```\r\n */\r\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\r\n 'use strict';\r\n\r\n text += '~0';\r\n\r\n text = text.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,\r\n function (wholeMatch, m1, m2) {\r\n var language = m1,\r\n codeblock = m2,\r\n end = '\\n';\r\n\r\n if (options.omitExtraWLInCodeBlocks) {\r\n end = '';\r\n }\r\n\r\n codeblock = showdown.subParser('encodeCode')(codeblock);\r\n codeblock = showdown.subParser('detab')(codeblock);\r\n codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\r\n codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\r\n\r\n codeblock = '
    ' + codeblock + end + '
    ';\r\n\r\n return showdown.subParser('hashBlock')(codeblock, options, globals);\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashBlock', function (text, options, globals) {\r\n 'use strict';\r\n text = text.replace(/(^\\n+|\\n+$)/g, '');\r\n return '\\n\\n~K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashElement', function (text, options, globals) {\r\n 'use strict';\r\n\r\n return function (wholeMatch, m1) {\r\n var blockText = m1;\r\n\r\n // Undo double lines\r\n blockText = blockText.replace(/\\n\\n/g, '\\n');\r\n blockText = blockText.replace(/^\\n/, '');\r\n\r\n // strip trailing blank lines\r\n blockText = blockText.replace(/\\n+$/g, '');\r\n\r\n // Replace the element text with a marker (\"~KxK\" where x is its key)\r\n blockText = '\\n\\n~K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\r\n\r\n return blockText;\r\n };\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('hashHTMLBlocks', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // attacklab: Double up blank lines to reduce lookaround\r\n text = text.replace(/\\n/g, '\\n\\n');\r\n\r\n // Hashify HTML blocks:\r\n // We only want to do this for block-level HTML tags, such as headers,\r\n // lists, and tables. That's because we still want to wrap

    s around\r\n // \"paragraphs\" that are wrapped in non-block-level tags, such as anchors,\r\n // phrase emphasis, and spans. The list of tags we're looking for is\r\n // hard-coded:\r\n //var block_tags_a = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside';\r\n //var block_tags_b = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside';\r\n\r\n // First, look for nested blocks, e.g.:\r\n //

    \r\n //
    \r\n // tags for inner block must be indented.\r\n //
    \r\n //
    \r\n //\r\n // The outermost tags must start at the left margin for this to match, and\r\n // the inner nested divs must be indented.\r\n // We need to do this before the next, more liberal match, because the next\r\n // match will start at the first `
    ` and stop at the first `
    `.\r\n\r\n // attacklab: This regex can be expensive when it fails.\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_a)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\\n\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b[^\\r]*?\\n<\\/\\2>[ \\t]*(?=\\n+))/gm, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n //\r\n // Now match more liberally, simply from `\\n` to `\\n`\r\n //\r\n\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_b)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\t\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\\b[^\\r]*?<\\/\\2>[ \\t]*(?=\\n+)\\n)/gm, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // Special case just for
    . It was easier to make a special case than\r\n // to make the other regex more complicated.\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\r\n (<(hr)\t\t\t\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n ([^<>])*?\t\t\t//\r\n \\/?>)\t\t\t\t// the matching end tag\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(\\n[ ]{0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // Special case for standalone HTML comments:\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n \r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(\\n\\n[ ]{0,3}[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // PHP and ASP-style processor instructions ( and <%...%>)\r\n\r\n /*\r\n text = text.replace(/\r\n (?:\r\n \\n\\n\t\t\t\t// Starting after a blank line\r\n )\r\n (\t\t\t\t\t\t// save in $1\r\n [ ]{0,3}\t\t\t// attacklab: g_tab_width - 1\r\n (?:\r\n <([?%])\t\t\t// $2\r\n [^\\r]*?\r\n \\2>\r\n )\r\n [ \\t]*\r\n (?=\\n{2,})\t\t\t// followed by a blank line\r\n )\r\n /g,showdown.subParser('hashElement')(text, options, globals));\r\n */\r\n text = text.replace(/(?:\\n\\n)([ ]{0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g, showdown.subParser('hashElement')(text, options, globals));\r\n\r\n // attacklab: Undo double lines (see comment at top of this function)\r\n text = text.replace(/\\n\\n/g, '\\n');\r\n return text;\r\n\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\nshowdown.subParser('headers', function (text, options, globals) {\r\n 'use strict';\r\n\r\n var prefixHeader = options.prefixHeaderId;\r\n\r\n // Set text-style headers:\r\n //\tHeader 1\r\n //\t========\r\n //\r\n //\tHeader 2\r\n //\t--------\r\n //\r\n text = text.replace(/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\r\n function (wholeMatch, m1) {\r\n return showdown.subParser('hashBlock')('

    ' +\r\n showdown.subParser('spanGamut')(m1, options, globals) + '

    ', options, globals);\r\n });\r\n\r\n text = text.replace(/^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm,\r\n function (matchFound, m1) {\r\n return showdown.subParser('hashBlock')('

    ' +\r\n showdown.subParser('spanGamut')(m1, options, globals) + '

    ', options, globals);\r\n });\r\n\r\n // atx-style headers:\r\n // # Header 1\r\n // ## Header 2\r\n // ## Header 2 with closing hashes ##\r\n // ...\r\n // ###### Header 6\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n ^(\\#{1,6})\t\t\t\t// $1 = string of #'s\r\n [ \\t]*\r\n (.+?)\t\t\t\t\t// $2 = Header text\r\n [ \\t]*\r\n \\#*\t\t\t\t\t\t// optional closing #'s (not counted)\r\n \\n+\r\n /gm, function() {...});\r\n */\r\n\r\n text = text.replace(/^(\\#{1,6})[ \\t]*(.+?)[ \\t]*\\#*\\n+/gm,\r\n function (wholeMatch, m1, m2) {\r\n var span = showdown.subParser('spanGamut')(m2, options, globals),\r\n header = '' + span + '';\r\n\r\n return showdown.subParser('hashBlock')(header, options, globals);\r\n });\r\n\r\n function headerId(m) {\r\n var title,\r\n escapedId = m.replace(/[^\\w]/g, '').toLowerCase();\r\n\r\n if (globals.hashLinkCounts[escapedId]) {\r\n title = escapedId + '-' + (globals.hashLinkCounts[escapedId]++);\r\n } else {\r\n title = escapedId;\r\n globals.hashLinkCounts[escapedId] = 1;\r\n }\r\n\r\n // Prefix id to prevent causing inadvertent pre-existing style matches.\r\n if (prefixHeader === true) {\r\n prefixHeader = 'section';\r\n }\r\n\r\n if (showdown.helper.isString(prefixHeader)) {\r\n return prefixHeader + title;\r\n }\r\n return title;\r\n }\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n\r\n/**\r\n * Turn Markdown image shortcuts into tags.\r\n */\r\nshowdown.subParser('images', function (text, options, globals) {\r\n 'use strict';\r\n\r\n var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n\r\n wholeMatch = m1;\r\n var altText = m2,\r\n linkId = m3.toLowerCase(),\r\n url = m4,\r\n title = m7,\r\n gUrls = globals.gUrls,\r\n gTitles = globals.gTitles;\r\n\r\n if (!title) {\r\n title = '';\r\n }\r\n\r\n if (url === '' || url === null) {\r\n if (linkId === '' || linkId === null) {\r\n // lower-case and turn embedded newlines into spaces\r\n linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\r\n }\r\n url = '#' + linkId;\r\n\r\n if (typeof gUrls[linkId] !== 'undefined') {\r\n url = gUrls[linkId];\r\n if (typeof gTitles[linkId] !== 'undefined') {\r\n title = gTitles[linkId];\r\n }\r\n }\r\n else {\r\n return wholeMatch;\r\n }\r\n }\r\n\r\n altText = altText.replace(/\"/g, '"');\r\n url = showdown.helper.escapeCharacters(url, '*_');\r\n var result = '\"'?\t\t\t// src url = $4\r\n [ \\t]*\r\n (\t\t\t\t\t// $5\r\n (['\"])\t\t\t// quote char = $6\r\n (.*?)\t\t\t// title = $7\r\n \\6\t\t\t\t// matching quote\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\]\\s?\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeImageTag);\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\nshowdown.subParser('italicsAndBold', function (text) {\r\n 'use strict';\r\n // must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g,\r\n '$2');\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g,\r\n '$2');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\r\n */\r\nshowdown.subParser('lists', function (text, options, globals) {\r\n 'use strict';\r\n\r\n /**\r\n * Process the contents of a single ordered or unordered list, splitting it\r\n * into individual list items.\r\n * @param listStr\r\n * @returns {string|*}\r\n */\r\n var processListItems = function (listStr) {\r\n // The $g_list_level global keeps track of when we're inside a list.\r\n // Each time we enter a list, we increment it; when we leave a list,\r\n // we decrement. If it's zero, we're not in a list anymore.\r\n //\r\n // We do this because when we're not inside a list, we want to treat\r\n // something like this:\r\n //\r\n // I recommend upgrading to version\r\n // 8. Oops, now this line is treated\r\n // as a sub-list.\r\n //\r\n // As a single paragraph, despite the fact that the second line starts\r\n // with a digit-period-space sequence.\r\n //\r\n // Whereas when we're inside a list (or sub-list), that line will be\r\n // treated as the start of a sub-list. What a kludge, huh? This is\r\n // an aspect of Markdown's syntax that's hard to parse perfectly\r\n // without resorting to mind-reading. Perhaps the solution is to\r\n // change the syntax rules such that sub-lists must start with a\r\n // starting cardinal number; e.g. \"1.\" or \"a.\".\r\n\r\n globals.gListLevel++;\r\n\r\n // trim trailing blank lines:\r\n listStr = listStr.replace(/\\n{2,}$/, '\\n');\r\n\r\n // attacklab: add sentinel to emulate \\z\r\n listStr += '~0';\r\n\r\n /*\r\n list_str = list_str.replace(/\r\n (\\n)?\t\t\t\t\t\t\t// leading line = $1\r\n (^[ \\t]*)\t\t\t\t\t\t// leading whitespace = $2\r\n ([*+-]|\\d+[.]) [ \\t]+\t\t\t// list marker = $3\r\n ([^\\r]+?\t\t\t\t\t\t// list item text = $4\r\n (\\n{1,2}))\r\n (?= \\n* (~0 | \\2 ([*+-]|\\d+[.]) [ \\t]+))\r\n /gm, function(){...});\r\n */\r\n listStr = listStr.replace(/(\\n)?(^[ \\t]*)([*+-]|\\d+[.])[ \\t]+([^\\r]+?(\\n{1,2}))(?=\\n*(~0|\\2([*+-]|\\d+[.])[ \\t]+))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n var item = showdown.subParser('outdent')(m4, options, globals);\r\n //m1 - LeadingLine\r\n\r\n if (m1 || (item.search(/\\n{2,}/) > -1)) {\r\n item = showdown.subParser('blockGamut')(item, options, globals);\r\n } else {\r\n // Recursion for sub-lists:\r\n item = showdown.subParser('lists')(item, options, globals);\r\n item = item.replace(/\\n$/, ''); // chomp(item)\r\n item = showdown.subParser('spanGamut')(item, options, globals);\r\n }\r\n\r\n return '
  • ' + item + '
  • \\n';\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n listStr = listStr.replace(/~0/g, '');\r\n\r\n globals.gListLevel--;\r\n return listStr;\r\n };\r\n\r\n\r\n // attacklab: add sentinel to hack around khtml/safari bug:\r\n // http://bugs.webkit.org/show_bug.cgi?id=11231\r\n text += '~0';\r\n\r\n // Re-usable pattern to match any entirel ul or ol list:\r\n\r\n /*\r\n var whole_list = /\r\n (\t\t\t\t\t\t\t\t\t// $1 = whole list\r\n (\t\t\t\t\t\t\t\t// $2\r\n [ ]{0,3}\t\t\t\t\t// attacklab: g_tab_width - 1\r\n ([*+-]|\\d+[.])\t\t\t\t// $3 = first list item marker\r\n [ \\t]+\r\n )\r\n [^\\r]+?\r\n (\t\t\t\t\t\t\t\t// $4\r\n ~0\t\t\t\t\t\t\t// sentinel for workaround; should be $\r\n |\r\n \\n{2,}\r\n (?=\\S)\r\n (?!\t\t\t\t\t\t\t// Negative lookahead for another list item marker\r\n [ \\t]*\r\n (?:[*+-]|\\d+[.])[ \\t]+\r\n )\r\n )\r\n )/g\r\n */\r\n var wholeList = /^(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm;\r\n\r\n if (globals.gListLevel) {\r\n text = text.replace(wholeList, function (wholeMatch, m1, m2) {\r\n var list = m1,\r\n listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\r\n\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n list = list.replace(/\\n{2,}/g, '\\n\\n\\n');\r\n\r\n var result = processListItems(list);\r\n\r\n // Trim any trailing whitespace, to put the closing ``\r\n // up on the preceding line, to get it past the current stupid\r\n // HTML block parser. This is a hack to work around the terrible\r\n // hack that is the HTML block parser.\r\n result = result.replace(/\\s+$/, '');\r\n result = '<' + listType + '>' + result + '\\n';\r\n return result;\r\n });\r\n } else {\r\n wholeList = /(\\n\\n|^\\n?)(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/g;\r\n\r\n text = text.replace(wholeList, function(wholeMatch,m1,m2,m3) {\r\n\r\n // Turn double returns into triple returns, so that we can make a\r\n // paragraph for the last item in a list, if necessary:\r\n var list = m2.replace(/\\n{2,}/g, '\\n\\n\\n'),\r\n listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol',\r\n result = processListItems(list);\r\n\r\n return m1 + '<' + listType + '>\\n' + result + '\\n';\r\n });\r\n }\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Remove one level of line-leading tabs or spaces\r\n */\r\nshowdown.subParser('outdent', function (text) {\r\n 'use strict';\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n text = text.replace(/^(\\t|[ ]{1,4})/gm, '~0'); // attacklab: g_tab_width\r\n\r\n // attacklab: clean up hack\r\n text = text.replace(/~0/g, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n *\r\n */\r\nshowdown.subParser('paragraphs', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // Strip leading and trailing lines:\r\n text = text.replace(/^\\n+/g, '');\r\n text = text.replace(/\\n+$/g, '');\r\n\r\n var grafs = text.split(/\\n{2,}/g),\r\n grafsOut = [];\r\n\r\n /** Wrap

    tags. */\r\n var end = grafs.length;\r\n for (var i = 0; i < end; i++) {\r\n var str = grafs[i];\r\n\r\n // if this is an HTML marker, copy it\r\n if (str.search(/~K(\\d+)K/g) >= 0) {\r\n grafsOut.push(str);\r\n }\r\n else if (str.search(/\\S/) >= 0) {\r\n str = showdown.subParser('spanGamut')(str, options, globals);\r\n str = str.replace(/^([ \\t]*)/g, '

    ');\r\n str += '

    ';\r\n grafsOut.push(str);\r\n }\r\n }\r\n\r\n /** Unhashify HTML blocks */\r\n end = grafsOut.length;\r\n for (i = 0; i < end; i++) {\r\n // if this is a marker for an html block...\r\n while (grafsOut[i].search(/~K(\\d+)K/) >= 0) {\r\n var blockText = globals.gHtmlBlocks[RegExp.$1];\r\n blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\r\n grafsOut[i] = grafsOut[i].replace(/~K\\d+K/, blockText);\r\n }\r\n }\r\n\r\n return grafsOut.join('\\n\\n');\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * These are all the transformations that occur *within* block-level\r\n * tags like paragraphs, headers, and list items.\r\n */\r\nshowdown.subParser('spanGamut', function (text, options, globals) {\r\n 'use strict';\r\n\r\n\r\n text = showdown.subParser('codeSpans')(text, options, globals);\r\n text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\r\n text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\r\n\r\n // Process anchor and image tags. Images must come first,\r\n // because ![foo][f] looks like an anchor.\r\n text = showdown.subParser('images')(text, options, globals);\r\n text = showdown.subParser('anchors')(text, options, globals);\r\n\r\n // Make links out of things like ``\r\n // Must come after _DoAnchors(), because you can use < and >\r\n // delimiters in inline links like [this]().\r\n text = showdown.subParser('autoLinks')(text, options, globals);\r\n text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\r\n text = showdown.subParser('italicsAndBold')(text, options, globals);\r\n\r\n // Do hard breaks:\r\n text = text.replace(/ +\\n/g, '
    \\n');\r\n\r\n return text;\r\n\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Strip any lines consisting only of spaces and tabs.\r\n * This makes subsequent regexs easier to write, because we can\r\n * match consecutive blank lines with /\\n+/ instead of something\r\n * contorted like /[ \\t]*\\n+/\r\n */\r\nshowdown.subParser('stripBlankLines', function (text) {\r\n 'use strict';\r\n return text.replace(/^[ \\t]+$/mg, '');\r\n});\r\n","/**\r\n * Created by Estevao on 11-01-2015.\r\n */\r\n\r\n/**\r\n * Strips link definitions from text, stores the URLs and titles in\r\n * hash references.\r\n * Link defs are in the form: ^[id]: url \"optional title\"\r\n *\r\n * ^[ ]{0,3}\\[(.+)\\]: // id = $1 attacklab: g_tab_width - 1\r\n * [ \\t]*\r\n * \\n? // maybe *one* newline\r\n * [ \\t]*\r\n * ? // url = $2\r\n * [ \\t]*\r\n * \\n? // maybe one newline\r\n * [ \\t]*\r\n * (?:\r\n * (\\n*) // any lines skipped = $3 attacklab: lookbehind removed\r\n * [\"(]\r\n * (.+?) // title = $4\r\n * [\")]\r\n * [ \\t]*\r\n * )? // title is optional\r\n * (?:\\n+|$)\r\n * /gm,\r\n * function(){...});\r\n *\r\n */\r\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\r\n 'use strict';\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += '~0';\r\n\r\n text = text.replace(/^[ ]{0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n m1 = m1.toLowerCase();\r\n globals.gUrls[m1] = showdown.subParser('encodeAmpsAndAngles')(m2); // Link IDs are case-insensitive\r\n if (m3) {\r\n // Oops, found blank lines, so it's not a title.\r\n // Put back the parenthetical statement we stole.\r\n return m3 + m4;\r\n } else if (m4) {\r\n globals.gTitles[m1] = m4.replace(/\"/g, '"');\r\n }\r\n\r\n // Completely remove the definition from the text\r\n return '';\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 12-01-2015.\r\n */\r\n\r\n/**\r\n * Swap back in all the special characters we've hidden.\r\n */\r\nshowdown.subParser('unescapeSpecialChars', function (text) {\r\n 'use strict';\r\n\r\n text = text.replace(/~E(\\d+)E/g,\r\n function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n }\r\n );\r\n return text;\r\n});\r\n","/**\r\n * Created by Estevao on 15-01-2015.\r\n */\r\n\r\nvar root = this;\r\n\r\n// CommonJS/nodeJS Loader\r\nif (typeof module !== 'undefined' && module.exports) {\r\n module.exports = showdown;\r\n}\r\n// AMD Loader\r\nelse if (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n return showdown;\r\n });\r\n}\r\n// Regular Browser loader\r\nelse {\r\n root.showdown = showdown;\r\n}\r\n"]} \ No newline at end of file diff --git a/dist/showdown.min.js b/dist/showdown.min.js index 9bd6f2e1..b95e39d2 100644 --- a/dist/showdown.min.js +++ b/dist/showdown.min.js @@ -1,4 +1,4 @@ -/*! showdown 16-01-2015 */ +/*! showdown 18-01-2015 */ -(function(){"use strict";function a(a){return"string"==typeof a||a instanceof String}function b(a,b){if("function"==typeof a.forEach)a.forEach(b);else{var c,d=a.length;for(c=0;d>c;c++)b(a[c],c,a)}}function c(a){return a.constructor===Array}function d(a){return"undefined"==typeof a}var e={},f={},g={omitExtraWLInCodeBlocks:!1};e.helper={},e.extensions={},e.setOption=function(a,b){return g[a]=b,this},e.subParser=function(a,b){if(e.helper.isString(a)){if("undefined"==typeof b){if(f.hasOwnProperty(a))return f[a];throw Error("SubParser named "+a+" not registered!")}f[a]=b}},e.Converter=function(a){a=a||{};var b=g,c=["detab","stripBlankLines","githubCodeBlocks","hashHTMLBlocks","stripLinkDefinitions","blockGamut","unescapeSpecialChars"];if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);var e=function(a){if(!a)return a;var d={gHtmlBlocks:[],gUrls:{},gTitles:{},gListLevel:0};a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),a="\n\n"+a+"\n\n";for(var e=0;e-1))return a;m=""}else m=c.gUrls[l],e.helper.isUndefined(c.gTitles[l])||(n=c.gTitles[l]);m=e.helper.escapeCharacters(m,"*_");var o='"};return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,d),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,d),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,d)}),e.subParser("autoLinks",function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'$1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){var c=e.subParser("unescapeSpecialChars")(b);return e.subParser("encodeEmailAddress")(c)})}),e.subParser("blockGamut",function(a,b,c){a=e.subParser("headers")(a,b,c);var d=e.subParser("hashBlock")("
    ",b,c);return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,d),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,d),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,d),a=e.subParser("lists")(a,b,c),a=e.subParser("codeBlocks")(a,b,c),a=e.subParser("blockQuotes")(a,b,c),a=e.subParser("hashHTMLBlocks")(a,b,c),a=e.subParser("paragraphs")(a,b,c)}),e.subParser("blockQuotes",function(a,b,c){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,d){var f=d;return f=f.replace(/^[ \t]*>[ \t]?/gm,"~0"),f=f.replace(/~0/g,""),f=f.replace(/^[ \t]+$/gm,""),f=e.subParser("blockGamut")(f,b,c),f=f.replace(/(^|\n)/g,"$1 "),f=f.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,"~0"),c=c.replace(/~0/g,"")}),e.subParser("hashBlock")("
    \n"+f+"\n
    ",b,c)})}),e.subParser("codeBlocks",function(a,b,c){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,d,f){var g=d,h=f;return g=e.subParser("outdent")(g),g=e.subParser("encodeCode")(g),g=e.subParser("detab")(g),g=g.replace(/^\n+/g,""),g=g.replace(/\n+$/g,""),g="
    "+g+"\n
    ",e.subParser("hashBlock")(g,b,c)+h}),a=a.replace(/~0/,"")}),e.subParser("codeSpans",function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=e.subParser("encodeCode")(f),b+""+f+""})}),e.subParser("detab",function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;d>e;e++)c+=" ";return c}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")}),e.subParser("encodeAmpsAndAngles",function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")}),e.subParser("encodeBackslashEscapes",function(a){return a=a.replace(/\\(\\)/g,e.helper.escapeCharactersCallback),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,e.helper.escapeCharactersCallback)}),e.subParser("encodeCode",function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=e.helper.escapeCharacters(a,"*_{}[]\\",!1)}),e.subParser("encodeEmailAddress",function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"===a)a=b[Math.floor(2*Math.random())](a);else if(":"!==a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">')}),e.subParser("escapeSpecialCharsWithinTagAttributes",function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=e.helper.escapeCharacters(b,"\\`*_")})}),e.subParser("githubCodeBlocks",function(a,b,c){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,d,f){var g=d,h=f,i="\n";return b.omitExtraWLInCodeBlocks&&(i=""),h=e.subParser("encodeCode")(h),h=e.subParser("detab")(h),h=h.replace(/^\n+/g,""),h=h.replace(/\n+$/g,""),h="
    "+h+i+"
    ",e.subParser("hashBlock")(h,b,c)}),a=a.replace(/~0/,"")}),e.subParser("hashBlock",function(a,b,c){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(c.gHtmlBlocks.push(a)-1)+"K\n\n"}),e.subParser("hashElement",function(a,b,c){return function(a,b){var d=b;return d=d.replace(/\n\n/g,"\n"),d=d.replace(/^\n/,""),d=d.replace(/\n+$/g,""),d="\n\n~K"+(c.gHtmlBlocks.push(d)-1)+"K\n\n"}}),e.subParser("hashHTMLBlocks",function(a,b,c){return a=a.replace(/\n/g,"\n\n"),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,e.subParser("hashElement")(a,b,c)),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,e.subParser("hashElement")(a,b,c)),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/\n\n/g,"\n")}),e.subParser("headers",function(a,b,c){function d(a){return a.replace(/[^\w]/g,"").toLowerCase()}return a=a.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(a,f){return e.subParser("hashBlock")('

    '+e.subParser("spanGamut")(f,b,c)+"

    ",b,c)}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,f){return e.subParser("hashBlock")('

    '+e.subParser("spanGamut")(f,b,c)+"

    ",b,c)}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,f,g){var h=e.subParser("spanGamut")(g,b,c),i="'+h+"";return e.subParser("hashBlock")(i,b,c)})}),e.subParser("images",function(a,b,c){var d=function(a,b,d,f,g,h,j,k){a=b;var l=d,m=f.toLowerCase(),n=g,o=k,p=c.gUrls,q=c.gTitles;if(o||(o=""),""===n||null===n){if((""===m||null===m)&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,"undefined"==typeof p[m])return a;n=p[m],"undefined"!=typeof q[m]&&(o=q[m])}l=l.replace(/"/g,"""),n=e.helper.escapeCharacters(n,"*_");var r=''+l+'?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,d)}),e.subParser("italicsAndBold",function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")}),e.subParser("lists",function(a,b,c){var d=function(a){return c.gListLevel++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,d,f,g,h){var i=e.subParser("outdent")(h,b,c);return d||i.search(/\n{2,}/)>-1?i=e.subParser("blockGamut")(i,b,c):(i=e.subParser("lists")(i,b,c),i=i.replace(/\n$/,""),i=e.subParser("spanGamut")(i,b,c)),"
  • "+i+"
  • \n"}),a=a.replace(/~0/g,""),c.gListLevel--,a};a+="~0";var f=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return c.gListLevel?a=a.replace(f,function(a,b,c){var e=b,f=c.search(/[*+-]/g)>-1?"ul":"ol";e=e.replace(/\n{2,}/g,"\n\n\n");var g=d(e);return g=g.replace(/\s+$/,""),g="<"+f+">"+g+"\n"}):(f=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(f,function(a,b,c,e){var f=c.replace(/\n{2,}/g,"\n\n\n"),g=e.search(/[*+-]/g)>-1?"ul":"ol",h=d(f);return b+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")}),e.subParser("outdent",function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")}),e.subParser("paragraphs",function(a,b,c){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var d=a.split(/\n{2,}/g),f=[],g=d.length,h=0;g>h;h++){var i=d[h];i.search(/~K(\d+)K/g)>=0?f.push(i):i.search(/\S/)>=0&&(i=e.subParser("spanGamut")(i,b,c),i=i.replace(/^([ \t]*)/g,"

    "),i+="

    ",f.push(i))}for(g=f.length,h=0;g>h;h++)for(;f[h].search(/~K(\d+)K/)>=0;){var j=c.gHtmlBlocks[RegExp.$1];j=j.replace(/\$/g,"$$$$"),f[h]=f[h].replace(/~K\d+K/,j)}return f.join("\n\n")}),e.subParser("spanGamut",function(a,b,c){return a=e.subParser("codeSpans")(a,b,c),a=e.subParser("escapeSpecialCharsWithinTagAttributes")(a,b,c),a=e.subParser("encodeBackslashEscapes")(a,b,c),a=e.subParser("images")(a,b,c),a=e.subParser("anchors")(a,b,c),a=e.subParser("autoLinks")(a,b,c),a=e.subParser("encodeAmpsAndAngles")(a,b,c),a=e.subParser("italicsAndBold")(a,b,c),a=a.replace(/ +\n/g,"
    \n")}),e.subParser("stripBlankLines",function(a){return a.replace(/^[ \t]+$/gm,"")}),e.subParser("stripLinkDefinitions",function(a,b,c){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,b,d,f,g){return b=b.toLowerCase(),c.gUrls[b]=e.subParser("encodeAmpsAndAngles")(d),f?f+g:(g&&(c.gTitles[b]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")}),e.subParser("unescapeSpecialChars",function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})});var j=this;"undefined"!=typeof module&&module.exports?module.exports=e:"function"==typeof define&&define.amd?define("showdown",function(){return e}):j.showdown=e}).call(this); +(function(){"use strict";function a(a){return"string"==typeof a||a instanceof String}function b(a,b){if("function"==typeof a.forEach)a.forEach(b);else{var c,d=a.length;for(c=0;d>c;c++)b(a[c],c,a)}}function c(a){return a.constructor===Array}function d(a){return"undefined"==typeof a}var e={},f={},g={omitExtraWLInCodeBlocks:!1,prefixHeaderId:!1};e.helper={},e.extensions={},e.setOption=function(a,b){return g[a]=b,this},e.getOption=function(a){return g[a]},e.getOptions=function(){return g},e.subParser=function(a,b){if(e.helper.isString(a)){if("undefined"==typeof b){if(f.hasOwnProperty(a))return f[a];throw Error("SubParser named "+a+" not registered!")}f[a]=b}},e.Converter=function(a){a=a||{};var b=g,c=["detab","stripBlankLines","githubCodeBlocks","hashHTMLBlocks","stripLinkDefinitions","blockGamut","unescapeSpecialChars"];if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);var e=function(a){if(!a)return a;var d={gHtmlBlocks:[],gUrls:{},gTitles:{},gListLevel:0,hashLinkCounts:{}};a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),a="\n\n"+a+"\n\n";for(var e=0;e-1))return a;m=""}else m=c.gUrls[l],e.helper.isUndefined(c.gTitles[l])||(n=c.gTitles[l]);m=e.helper.escapeCharacters(m,"*_");var o='"};return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,d),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,d),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,d)}),e.subParser("autoLinks",function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'$1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){var c=e.subParser("unescapeSpecialChars")(b);return e.subParser("encodeEmailAddress")(c)})}),e.subParser("blockGamut",function(a,b,c){a=e.subParser("headers")(a,b,c);var d=e.subParser("hashBlock")("
    ",b,c);return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,d),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,d),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,d),a=e.subParser("lists")(a,b,c),a=e.subParser("codeBlocks")(a,b,c),a=e.subParser("blockQuotes")(a,b,c),a=e.subParser("hashHTMLBlocks")(a,b,c),a=e.subParser("paragraphs")(a,b,c)}),e.subParser("blockQuotes",function(a,b,c){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,d){var f=d;return f=f.replace(/^[ \t]*>[ \t]?/gm,"~0"),f=f.replace(/~0/g,""),f=f.replace(/^[ \t]+$/gm,""),f=e.subParser("blockGamut")(f,b,c),f=f.replace(/(^|\n)/g,"$1 "),f=f.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,"~0"),c=c.replace(/~0/g,"")}),e.subParser("hashBlock")("
    \n"+f+"\n
    ",b,c)})}),e.subParser("codeBlocks",function(a,b,c){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,d,f){var g=d,h=f;return g=e.subParser("outdent")(g),g=e.subParser("encodeCode")(g),g=e.subParser("detab")(g),g=g.replace(/^\n+/g,""),g=g.replace(/\n+$/g,""),g="
    "+g+"\n
    ",e.subParser("hashBlock")(g,b,c)+h}),a=a.replace(/~0/,"")}),e.subParser("codeSpans",function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=e.subParser("encodeCode")(f),b+""+f+""})}),e.subParser("detab",function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;d>e;e++)c+=" ";return c}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")}),e.subParser("encodeAmpsAndAngles",function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")}),e.subParser("encodeBackslashEscapes",function(a){return a=a.replace(/\\(\\)/g,e.helper.escapeCharactersCallback),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,e.helper.escapeCharactersCallback)}),e.subParser("encodeCode",function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=e.helper.escapeCharacters(a,"*_{}[]\\",!1)}),e.subParser("encodeEmailAddress",function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"===a)a=b[Math.floor(2*Math.random())](a);else if(":"!==a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">')}),e.subParser("escapeSpecialCharsWithinTagAttributes",function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=e.helper.escapeCharacters(b,"\\`*_")})}),e.subParser("githubCodeBlocks",function(a,b,c){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,d,f){var g=d,h=f,i="\n";return b.omitExtraWLInCodeBlocks&&(i=""),h=e.subParser("encodeCode")(h),h=e.subParser("detab")(h),h=h.replace(/^\n+/g,""),h=h.replace(/\n+$/g,""),h="
    "+h+i+"
    ",e.subParser("hashBlock")(h,b,c)}),a=a.replace(/~0/,"")}),e.subParser("hashBlock",function(a,b,c){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(c.gHtmlBlocks.push(a)-1)+"K\n\n"}),e.subParser("hashElement",function(a,b,c){return function(a,b){var d=b;return d=d.replace(/\n\n/g,"\n"),d=d.replace(/^\n/,""),d=d.replace(/\n+$/g,""),d="\n\n~K"+(c.gHtmlBlocks.push(d)-1)+"K\n\n"}}),e.subParser("hashHTMLBlocks",function(a,b,c){return a=a.replace(/\n/g,"\n\n"),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,e.subParser("hashElement")(a,b,c)),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,e.subParser("hashElement")(a,b,c)),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,e.subParser("hashElement")(a,b,c)),a=a.replace(/\n\n/g,"\n")}),e.subParser("headers",function(a,b,c){function d(a){var b,d=a.replace(/[^\w]/g,"").toLowerCase();return c.hashLinkCounts[d]?b=d+"-"+c.hashLinkCounts[d]++:(b=d,c.hashLinkCounts[d]=1),f===!0&&(f="section"),e.helper.isString(f)?f+b:b}var f=b.prefixHeaderId;return a=a.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(a,f){return e.subParser("hashBlock")('

    '+e.subParser("spanGamut")(f,b,c)+"

    ",b,c)}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,f){return e.subParser("hashBlock")('

    '+e.subParser("spanGamut")(f,b,c)+"

    ",b,c)}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,f,g){var h=e.subParser("spanGamut")(g,b,c),i="'+h+"";return e.subParser("hashBlock")(i,b,c)})}),e.subParser("images",function(a,b,c){var d=function(a,b,d,f,g,h,j,k){a=b;var l=d,m=f.toLowerCase(),n=g,o=k,p=c.gUrls,q=c.gTitles;if(o||(o=""),""===n||null===n){if((""===m||null===m)&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,"undefined"==typeof p[m])return a;n=p[m],"undefined"!=typeof q[m]&&(o=q[m])}l=l.replace(/"/g,"""),n=e.helper.escapeCharacters(n,"*_");var r=''+l+'?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,d)}),e.subParser("italicsAndBold",function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")}),e.subParser("lists",function(a,b,c){var d=function(a){return c.gListLevel++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,d,f,g,h){var i=e.subParser("outdent")(h,b,c);return d||i.search(/\n{2,}/)>-1?i=e.subParser("blockGamut")(i,b,c):(i=e.subParser("lists")(i,b,c),i=i.replace(/\n$/,""),i=e.subParser("spanGamut")(i,b,c)),"
  • "+i+"
  • \n"}),a=a.replace(/~0/g,""),c.gListLevel--,a};a+="~0";var f=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return c.gListLevel?a=a.replace(f,function(a,b,c){var e=b,f=c.search(/[*+-]/g)>-1?"ul":"ol";e=e.replace(/\n{2,}/g,"\n\n\n");var g=d(e);return g=g.replace(/\s+$/,""),g="<"+f+">"+g+"\n"}):(f=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(f,function(a,b,c,e){var f=c.replace(/\n{2,}/g,"\n\n\n"),g=e.search(/[*+-]/g)>-1?"ul":"ol",h=d(f);return b+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")}),e.subParser("outdent",function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")}),e.subParser("paragraphs",function(a,b,c){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var d=a.split(/\n{2,}/g),f=[],g=d.length,h=0;g>h;h++){var i=d[h];i.search(/~K(\d+)K/g)>=0?f.push(i):i.search(/\S/)>=0&&(i=e.subParser("spanGamut")(i,b,c),i=i.replace(/^([ \t]*)/g,"

    "),i+="

    ",f.push(i))}for(g=f.length,h=0;g>h;h++)for(;f[h].search(/~K(\d+)K/)>=0;){var j=c.gHtmlBlocks[RegExp.$1];j=j.replace(/\$/g,"$$$$"),f[h]=f[h].replace(/~K\d+K/,j)}return f.join("\n\n")}),e.subParser("spanGamut",function(a,b,c){return a=e.subParser("codeSpans")(a,b,c),a=e.subParser("escapeSpecialCharsWithinTagAttributes")(a,b,c),a=e.subParser("encodeBackslashEscapes")(a,b,c),a=e.subParser("images")(a,b,c),a=e.subParser("anchors")(a,b,c),a=e.subParser("autoLinks")(a,b,c),a=e.subParser("encodeAmpsAndAngles")(a,b,c),a=e.subParser("italicsAndBold")(a,b,c),a=a.replace(/ +\n/g,"
    \n")}),e.subParser("stripBlankLines",function(a){return a.replace(/^[ \t]+$/gm,"")}),e.subParser("stripLinkDefinitions",function(a,b,c){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,b,d,f,g){return b=b.toLowerCase(),c.gUrls[b]=e.subParser("encodeAmpsAndAngles")(d),f?f+g:(g&&(c.gTitles[b]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")}),e.subParser("unescapeSpecialChars",function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})});var j=this;"undefined"!=typeof module&&module.exports?module.exports=e:"function"==typeof define&&define.amd?define("showdown",function(){return e}):j.showdown=e}).call(this); //# sourceMappingURL=showdown.min.js.map \ No newline at end of file diff --git a/dist/showdown.min.js.map b/dist/showdown.min.js.map index ce0f7b9c..71a943d7 100644 --- a/dist/showdown.min.js.map +++ b/dist/showdown.min.js.map @@ -1 +1 @@ -{"version":3,"file":"showdown.min.js","sources":["showdown.js"],"names":["isString","a","String","forEach","obj","callback","i","len","length","isArray","constructor","Array","isUndefined","value","showdown","parsers","globalOptions","omitExtraWLInCodeBlocks","helper","extensions","setOption","key","this","subParser","name","func","hasOwnProperty","Error","Converter","converterOptions","options","parserOrder","opt","makeHtml","text","globals","gHtmlBlocks","gUrls","gTitles","gListLevel","replace","escapeCharactersCallback","wholeMatch","m1","charCodeToEscape","charCodeAt","escapeCharacters","charsToEscape","afterBackslash","regexString","regex","RegExp","config","writeAnchorTag","m2","m3","m4","m5","m6","m7","linkText","linkId","toLowerCase","url","title","search","result","unescapedStr","bq","pre","codeblock","nextChar","c","leadingText","numSpaces","addr","encode","ch","toString","Math","floor","random","r","tag","language","end","push","blockText","headerId","m","matchFound","span","header","writeImageTag","altText","processListItems","listStr","item","wholeList","list","listType","grafs","split","grafsOut","str","$1","join","charCodeToReplace","parseInt","fromCharCode","root","module","exports","define","amd","call"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"showdown.min.js","sources":["showdown.js"],"names":["isString","a","String","forEach","obj","callback","i","len","length","isArray","constructor","Array","isUndefined","value","showdown","parsers","globalOptions","omitExtraWLInCodeBlocks","prefixHeaderId","helper","extensions","setOption","key","this","getOption","getOptions","subParser","name","func","hasOwnProperty","Error","Converter","converterOptions","options","parserOrder","opt","makeHtml","text","globals","gHtmlBlocks","gUrls","gTitles","gListLevel","hashLinkCounts","replace","escapeCharactersCallback","wholeMatch","m1","charCodeToEscape","charCodeAt","escapeCharacters","charsToEscape","afterBackslash","regexString","regex","RegExp","config","writeAnchorTag","m2","m3","m4","m5","m6","m7","linkText","linkId","toLowerCase","url","title","search","result","unescapedStr","bq","pre","codeblock","nextChar","c","leadingText","numSpaces","addr","encode","ch","toString","Math","floor","random","r","tag","language","end","push","blockText","headerId","m","escapedId","prefixHeader","matchFound","span","header","writeImageTag","altText","processListItems","listStr","item","wholeList","list","listType","grafs","split","grafsOut","str","$1","join","charCodeToReplace","parseInt","fromCharCode","root","module","exports","define","amd","call"],"mappings":"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"} \ No newline at end of file diff --git a/src/showdown.js b/src/showdown.js index ef17ba9b..0ff94bd3 100644 --- a/src/showdown.js +++ b/src/showdown.js @@ -6,7 +6,8 @@ var showdown = {}, parsers = {}, globalOptions = { - omitExtraWLInCodeBlocks: false + omitExtraWLInCodeBlocks: false, + prefixHeaderId: false }; /////////////////////////////////////////////////////////////////////////// @@ -29,10 +30,17 @@ showdown.extensions = {}; //Public methods showdown.setOption = function (key, value) { globalOptions[key] = value; - return this; }; +showdown.getOption = function (key) { + return globalOptions[key]; +}; + +showdown.getOptions = function () { + return globalOptions; +}; + /** * Static Method * @@ -97,7 +105,8 @@ showdown.Converter = function (converterOptions) { gHtmlBlocks: [], gUrls: {}, gTitles: {}, - gListLevel: 0 + gListLevel: 0, + hashLinkCounts: {} }; // attacklab: Replace ~ with ~T diff --git a/src/subParsers/headers.js b/src/subParsers/headers.js index 8af27392..80cc1d37 100644 --- a/src/subParsers/headers.js +++ b/src/subParsers/headers.js @@ -5,6 +5,8 @@ showdown.subParser('headers', function (text, options, globals) { 'use strict'; + var prefixHeader = options.prefixHeaderId; + // Set text-style headers: // Header 1 // ======== @@ -52,7 +54,25 @@ showdown.subParser('headers', function (text, options, globals) { }); function headerId(m) { - return m.replace(/[^\w]/g, '').toLowerCase(); + var title, + escapedId = m.replace(/[^\w]/g, '').toLowerCase(); + + if (globals.hashLinkCounts[escapedId]) { + title = escapedId + '-' + (globals.hashLinkCounts[escapedId]++); + } else { + title = escapedId; + globals.hashLinkCounts[escapedId] = 1; + } + + // Prefix id to prevent causing inadvertent pre-existing style matches. + if (prefixHeader === true) { + prefixHeader = 'section'; + } + + if (showdown.helper.isString(prefixHeader)) { + return prefixHeader + title; + } + return title; } return text; diff --git a/test/cases/repeated-headers.html b/test/cases/repeated-headers.html new file mode 100644 index 00000000..97acc54c --- /dev/null +++ b/test/cases/repeated-headers.html @@ -0,0 +1,5 @@ +

    Same Title

    + +

    some text

    + +

    Same Title

    diff --git a/test/cases/repeated-headers.md b/test/cases/repeated-headers.md new file mode 100644 index 00000000..43693188 --- /dev/null +++ b/test/cases/repeated-headers.md @@ -0,0 +1,5 @@ +# Same Title + +some text + +# Same Title