diff --git a/dist/showdown.js b/dist/showdown.js index 1c23ba77..12401e63 100644 --- a/dist/showdown.js +++ b/dist/showdown.js @@ -159,15 +159,29 @@ showdown.Converter = function (converterOptions) { }; /** - * Created by Estevao on 11-01-2015. + * showdownjs helper functions */ -function isString(a) { +if (!showdown.hasOwnProperty('helper')) { + showdown.helper = {}; +} + +/** + * Check if var is string + * @param {string} a + * @returns {boolean} + */ +showdown.helper.isString = function isString(a) { 'use strict'; return (typeof a === 'string' || a instanceof String); -} +}; -function forEach(obj, callback) { +/** + * ForEach helper function + * @param {*} obj + * @param {function} callback + */ +showdown.helper.forEach = function forEach(obj, callback) { 'use strict'; if (typeof obj.forEach === 'function') { obj.forEach(callback); @@ -177,64 +191,17 @@ function forEach(obj, callback) { callback(obj[i], i, obj); } } -} - -function isArray(a) { - 'use strict'; - return a.constructor === Array; -} - -function isUndefined(value) { - 'use strict'; - return typeof value === 'undefined'; -} - -var escapeCharactersCallback = function (wholeMatch, m1) { - 'use strict'; - var charCodeToEscape = m1.charCodeAt(0); - return '~E' + charCodeToEscape + 'E'; -}; - -var escapeCharacters = function (text, charsToEscape, afterBackslash) { - 'use strict'; - // First we have to escape the escape characters so that - // we can build a character class out of them - var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])'; - - if (afterBackslash) { - regexString = '\\\\' + regexString; - } - - var regex = new RegExp(regexString, 'g'); - text = text.replace(regex, escapeCharactersCallback); - - return text; }; -if (!showdown.hasOwnProperty('helper')) { - showdown.helper = {}; -} - -/** - * isString helper function - * @param a - * @returns {boolean} - */ -showdown.helper.isString = isString; - -/** - * ForEach helper function - * @param {*} obj - * @param callback - */ -showdown.helper.forEach = forEach; - /** * isArray helper function * @param {*} a * @returns {boolean} */ -showdown.helper.isArray = isArray; +showdown.helper.isArray = function isArray(a) { + 'use strict'; + return a.constructor === Array; +}; /** * Check if value is undefined @@ -243,7 +210,16 @@ showdown.helper.isArray = isArray; * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. */ -showdown.helper.isUndefined = isUndefined; +showdown.helper.isUndefined = function isUndefined(value) { + 'use strict'; + return typeof value === 'undefined'; +}; + +function escapeCharactersCallback(wholeMatch, m1) { + 'use strict'; + var charCodeToEscape = m1.charCodeAt(0); + return '~E' + charCodeToEscape + 'E'; +} /** * Callback used to escape characters when passing through String.replace @@ -261,11 +237,21 @@ showdown.helper.escapeCharactersCallback = escapeCharactersCallback; * @param {boolean} afterBackslash * @returns {XML|string|void|*} */ -showdown.helper.escapeCharacters = escapeCharacters; +showdown.helper.escapeCharacters = function escapeCharacters(text, charsToEscape, afterBackslash) { + 'use strict'; + // First we have to escape the escape characters so that + // we can build a character class out of them + var regexString = '([' + charsToEscape.replace(/([\[\]\\])/g, '\\$1') + '])'; -/** - * Created by Estevao on 11-01-2015. - */ + if (afterBackslash) { + regexString = '\\\\' + regexString; + } + + var regex = new RegExp(regexString, 'g'); + text = text.replace(regex, escapeCharactersCallback); + + return text; +}; /** * Turn Markdown link shortcuts into XHTML tags. @@ -305,12 +291,12 @@ showdown.subParser('anchors', function (text, config, globals) { } } - url = showdown.helper.escapeCharacters(url, '*_'); + url = showdown.helper.escapeCharacters(url, '*_', false); var result = '` blocks. */ @@ -561,10 +531,6 @@ showdown.subParser('codeBlocks', function (text, options, globals) { return text; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * * * Backtick quotes are used for spans. @@ -618,10 +584,6 @@ showdown.subParser('codeSpans', function (text) { }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Convert all tabs to spaces */ @@ -655,10 +617,6 @@ showdown.subParser('detab', function (text) { }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Smart processing for ampersands and angle brackets that need to be encoded. */ @@ -674,10 +632,6 @@ showdown.subParser('encodeAmpsAndAngles', function (text) { return text; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Returns the string, with after processing the following backslash escape sequences. * @@ -696,10 +650,6 @@ showdown.subParser('encodeBackslashEscapes', function (text) { return text; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Encode/escape certain characters inside Markdown code runs. * The point is that in code, these characters are literals, @@ -729,10 +679,6 @@ showdown.subParser('encodeCode', function (text) { return text; }); -/** - * Created by Estevao on 12-01-2015. - */ - /** * Input: an email address, e.g. "foo@example.com" * @@ -786,10 +732,6 @@ showdown.subParser('encodeEmailAddress', function (addr) { return addr; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Within tags -- meaning between < and > -- encode [\ ` * _] so they * don't conflict with their use in Markdown for code, italics and strong. @@ -803,17 +745,13 @@ showdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text) { text = text.replace(regex, function (wholeMatch) { var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g, '$1`'); - tag = showdown.helper.escapeCharacters(tag, '\\`*_'); + tag = showdown.helper.escapeCharacters(tag, '\\`*_', false); return tag; }); return text; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Handle github codeblocks prior to running HashHTML so that * HTML contained within the codeblock gets escaped properly @@ -855,20 +793,12 @@ showdown.subParser('githubCodeBlocks', function (text, options, globals) { }); -/** - * Created by Estevao on 11-01-2015. - */ - showdown.subParser('hashBlock', function (text, options, globals) { 'use strict'; text = text.replace(/(^\n+|\n+$)/g, ''); return '\n\n~K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\n\n'; }); -/** - * Created by Estevao on 11-01-2015. - */ - showdown.subParser('hashElement', function (text, options, globals) { 'use strict'; @@ -889,10 +819,6 @@ showdown.subParser('hashElement', function (text, options, globals) { }; }); -/** - * Created by Estevao on 11-01-2015. - */ - showdown.subParser('hashHTMLBlocks', function (text, options, globals) { 'use strict'; @@ -1027,10 +953,6 @@ showdown.subParser('hashHTMLBlocks', function (text, options, globals) { }); -/** - * Created by Estevao on 11-01-2015. - */ - showdown.subParser('headers', function (text, options, globals) { 'use strict'; @@ -1105,10 +1027,6 @@ showdown.subParser('headers', function (text, options, globals) { return text; }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Turn Markdown image shortcuts into tags. */ @@ -1147,7 +1065,7 @@ showdown.subParser('images', function (text, options, globals) { } altText = altText.replace(/"/g, '"'); - url = showdown.helper.escapeCharacters(url, '*_'); + url = showdown.helper.escapeCharacters(url, '*_', false); var result = '' + altText + ' must go first: @@ -1226,10 +1140,6 @@ showdown.subParser('italicsAndBold', function (text) { return text; }); -/** - * Created by Estevao on 12-01-2015. - */ - /** * Form HTML ordered (numbered) and unordered (bulleted) lists. */ @@ -1239,7 +1149,7 @@ showdown.subParser('lists', function (text, options, globals) { /** * Process the contents of a single ordered or unordered list, splitting it * into individual list items. - * @param listStr + * @param {string} listStr * @returns {string|*} */ var processListItems = function (listStr) { @@ -1375,10 +1285,6 @@ showdown.subParser('lists', function (text, options, globals) { return text; }); -/** - * Created by Estevao on 12-01-2015. - */ - /** * Remove one level of line-leading tabs or spaces */ @@ -1395,10 +1301,6 @@ showdown.subParser('outdent', function (text) { return text; }); -/** - * Created by Estevao on 12-01-2015. - */ - /** * */ @@ -1409,10 +1311,10 @@ showdown.subParser('paragraphs', function (text, options, globals) { text = text.replace(/^\n+/g, ''); text = text.replace(/\n+$/g, ''); - var grafs = text.split(/\n{2,}/g), grafsOut = []; + var grafs = text.split(/\n{2,}/g), + grafsOut = [], + end = grafs.length; // Wrap

tags - /** Wrap

tags. */ - var end = grafs.length; for (var i = 0; i < end; i++) { var str = grafs[i]; @@ -1441,10 +1343,6 @@ showdown.subParser('paragraphs', function (text, options, globals) { return grafsOut.join('\n\n'); }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * These are all the transformations that occur *within* block-level * tags like paragraphs, headers, and list items. @@ -1475,10 +1373,6 @@ showdown.subParser('spanGamut', function (text, options, globals) { }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Strip any lines consisting only of spaces and tabs. * This makes subsequent regexs easier to write, because we can @@ -1490,10 +1384,6 @@ showdown.subParser('stripBlankLines', function (text) { return text.replace(/^[ \t]+$/mg, ''); }); -/** - * Created by Estevao on 11-01-2015. - */ - /** * Strips link definitions from text, stores the URLs and titles in * hash references. @@ -1549,10 +1439,6 @@ showdown.subParser('stripLinkDefinitions', function (text, options, globals) { return text; }); -/** - * Created by Estevao on 12-01-2015. - */ - /** * Swap back in all the special characters we've hidden. */ @@ -1566,25 +1452,21 @@ showdown.subParser('unescapeSpecialChars', function (text) { return text; }); -/** - * Created by Estevao on 15-01-2015. - */ - var root = this; // CommonJS/nodeJS Loader if (typeof module !== 'undefined' && module.exports) { module.exports = showdown; -} + // AMD Loader -else if (typeof define === 'function' && define.amd) { +} else if (typeof define === 'function' && define.amd) { define('showdown', function () { 'use strict'; return showdown; }); -} + // Regular Browser loader -else { +} else { root.showdown = showdown; } }).call(this) diff --git a/dist/showdown.js.map b/dist/showdown.js.map index 690562e9..6977fb4f 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 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// 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 'use strict';\r\n globalOptions[key] = value;\r\n return this;\r\n};\r\n\r\nshowdown.getOption = function (key) {\r\n 'use strict';\r\n return globalOptions[key];\r\n};\r\n\r\nshowdown.getOptions = function () {\r\n 'use strict';\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 'use strict';\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 'use strict';\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 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 'use strict';\r\n return (typeof a === 'string' || a instanceof String);\r\n}\r\n\r\nfunction forEach(obj, callback) {\r\n 'use strict';\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 'use strict';\r\n return a.constructor === Array;\r\n}\r\n\r\nfunction isUndefined(value) {\r\n 'use strict';\r\n return typeof value === 'undefined';\r\n}\r\n\r\nvar escapeCharactersCallback = function (wholeMatch, m1) {\r\n 'use strict';\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 'use strict';\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 } 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,\r\n 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 * 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);\r\n */\r\n var pattern = /<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi;\r\n text = text.replace(pattern, function (wholeMatch, m1) {\r\n var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1);\r\n return showdown.subParser('encodeEmailAddress')(unescapedStr);\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, 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(/(\\s*
[^\\r]+?<\\/pre>)/gm, 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  var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g;\r\n  text = text.replace(pattern, function (wholeMatch, m1, m2) {\r\n    var codeblock = m1, 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 // 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, 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, 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 // 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 * Created by Estevao on 12-01-2015.\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 > 0.45 ? encode[1](ch) : 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 * 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, 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 // 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 =\r\n // '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 =\r\n // '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,\r\n 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,\r\n 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,\r\n 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,\r\n 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,\r\n 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 * 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, function (wholeMatch, m1) {\r\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\r\n hashBlock = '

' + spanGamut + '

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

' + spanGamut + '

';\r\n return showdown.subParser('hashBlock')(hashBlock, 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, 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, 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 * 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 } 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, '$2');\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g, '$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 // 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 // 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), 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 } 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 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 var regex = /^[ ]{0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm;\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(regex, 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\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 // 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, function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\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 'use strict';\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// 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 'use strict';\r\n globalOptions[key] = value;\r\n return this;\r\n};\r\n\r\nshowdown.getOption = function (key) {\r\n 'use strict';\r\n return globalOptions[key];\r\n};\r\n\r\nshowdown.getOptions = function () {\r\n 'use strict';\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 'use strict';\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 'use strict';\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 return {\r\n makeHtml: makeHtml\r\n };\r\n};\r\n","/**\r\n * showdownjs helper functions\r\n */\r\n\r\nif (!showdown.hasOwnProperty('helper')) {\r\n showdown.helper = {};\r\n}\r\n\r\n/**\r\n * Check if var is string\r\n * @param {string} a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isString = function isString(a) {\r\n 'use strict';\r\n return (typeof a === 'string' || a instanceof String);\r\n};\r\n\r\n/**\r\n * ForEach helper function\r\n * @param {*} obj\r\n * @param {function} callback\r\n */\r\nshowdown.helper.forEach = function forEach(obj, callback) {\r\n 'use strict';\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\n/**\r\n * isArray helper function\r\n * @param {*} a\r\n * @returns {boolean}\r\n */\r\nshowdown.helper.isArray = function isArray(a) {\r\n 'use strict';\r\n return a.constructor === Array;\r\n};\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 = function isUndefined(value) {\r\n 'use strict';\r\n return typeof value === 'undefined';\r\n};\r\n\r\nfunction escapeCharactersCallback(wholeMatch, m1) {\r\n 'use strict';\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return '~E' + charCodeToEscape + 'E';\r\n}\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 = function escapeCharacters(text, charsToEscape, afterBackslash) {\r\n 'use strict';\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\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 } 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, '*_', false);\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,\r\n 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 ( // wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+) // link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()() // 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","showdown.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);\r\n */\r\n var pattern = /<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi;\r\n text = text.replace(pattern, function (wholeMatch, m1) {\r\n var unescapedStr = showdown.subParser('unescapeSpecialChars')(m1);\r\n return showdown.subParser('encodeEmailAddress')(unescapedStr);\r\n });\r\n\r\n return text;\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","showdown.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, 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(/(\\s*
    [^\\r]+?<\\/pre>)/gm, 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 * 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  var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g;\r\n  text = text.replace(pattern, function (wholeMatch, m1, m2) {\r\n    var codeblock = m1, 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 // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\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, 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 * 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, 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 // 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 * 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 * 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 * 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 * 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 > 0.45 ? encode[1](ch) : 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 * 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, '\\\\`*_', false);\r\n return tag;\r\n });\r\n\r\n return text;\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, 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 // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\r\n\r\n});\r\n","showdown.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","showdown.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","showdown.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 =\r\n // '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 =\r\n // '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,\r\n 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,\r\n 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,\r\n 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,\r\n 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,\r\n 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","showdown.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, function (wholeMatch, m1) {\r\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\r\n hashBlock = '

    ' + spanGamut + '

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

    ' + spanGamut + '

    ';\r\n return showdown.subParser('hashBlock')(hashBlock, 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, 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, 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 * 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 } else {\r\n return wholeMatch;\r\n }\r\n }\r\n\r\n altText = altText.replace(/\"/g, '"');\r\n url = showdown.helper.escapeCharacters(url, '*_', false);\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","showdown.subParser('italicsAndBold', function (text) {\r\n 'use strict';\r\n // must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g, '$2');\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g, '$2');\r\n\r\n return text;\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 {string} 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 // 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 // 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 * 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 *\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 end = grafs.length; // Wrap

    tags\r\n\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 } 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 * 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 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 * 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 * 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 var regex = /^[ ]{0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm;\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(regex, 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\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 // attacklab: strip sentinel\r\n text = text.replace(/~0/, '');\r\n\r\n return text;\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, function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n });\r\n return text;\r\n});\r\n","var 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\n} else if (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n 'use strict';\r\n return showdown;\r\n });\r\n\r\n// Regular Browser loader\r\n} else {\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 32129b8c..88320d62 100644 --- a/dist/showdown.min.js +++ b/dist/showdown.min.js @@ -1,4 +1,4 @@ /*! showdown 19-01-2015 */ -(function(){function a(a){"use strict";return"string"==typeof a||a instanceof String}function b(a,b){"use strict";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){"use strict";return a.constructor===Array}function d(a){"use strict";return"undefined"==typeof a}var e={},f={},g={omitExtraWLInCodeBlocks:!1,prefixHeaderId:!1};e.helper={},e.extensions={},e.setOption=function(a,b){"use strict";return g[a]=b,this},e.getOption=function(a){"use strict";return g[a]},e.getOptions=function(){"use strict";return g},e.subParser=function(a,b){"use strict";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){"use strict";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){"use strict";a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'$1');var b=/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;return a=a.replace(b,function(a,b){var c=e.subParser("unescapeSpecialChars")(b);return e.subParser("encodeEmailAddress")(c)})}),e.subParser("blockGamut",function(a,b,c){"use strict";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){"use strict";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){"use strict";a+="~0";var d=/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;return a=a.replace(d,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){"use strict";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){"use strict";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){"use strict";return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")}),e.subParser("encodeBackslashEscapes",function(a){"use strict";return a=a.replace(/\\(\\)/g,e.helper.escapeCharactersCallback),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,e.helper.escapeCharactersCallback)}),e.subParser("encodeCode",function(a){"use strict";return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=e.helper.escapeCharacters(a,"*_{}[]\\",!1)}),e.subParser("encodeEmailAddress",function(a){"use strict";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){"use strict";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){"use strict";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){"use strict";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){"use strict";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){"use strict";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){"use strict";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){var g=e.subParser("spanGamut")(f,b,c),h='

    '+g+"

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

    '+g+"

    ";return e.subParser("hashBlock")(h,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){"use strict";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){"use strict";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){"use strict";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){"use strict";return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")}),e.subParser("paragraphs",function(a,b,c){"use strict";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){"use strict";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){"use strict";return a.replace(/^[ \t]+$/gm,"")}),e.subParser("stripLinkDefinitions",function(a,b,c){"use strict";var d=/^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm;return a+="~0",a=a.replace(d,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){"use strict";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(){"use strict";return e}):j.showdown=e}).call(this); +(function(){function a(a,b){"use strict";var c=b.charCodeAt(0);return"~E"+c+"E"}var b={},c={},d={omitExtraWLInCodeBlocks:!1,prefixHeaderId:!1};b.helper={},b.extensions={},b.setOption=function(a,b){"use strict";return d[a]=b,this},b.getOption=function(a){"use strict";return d[a]},b.getOptions=function(){"use strict";return d},b.subParser=function(a,d){"use strict";if(b.helper.isString(a)){if("undefined"==typeof d){if(c.hasOwnProperty(a))return c[a];throw Error("SubParser named "+a+" not registered!")}c[a]=d}},b.Converter=function(a){"use strict";a=a||{};var b=d,e=["detab","stripBlankLines","githubCodeBlocks","hashHTMLBlocks","stripLinkDefinitions","blockGamut","unescapeSpecialChars"];if("object"==typeof a)for(var f in a)a.hasOwnProperty(f)&&(b[f]=a[f]);var g=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 f=0;fc;c++)b(a[c],c,a)}},b.helper.isArray=function(a){"use strict";return a.constructor===Array},b.helper.isUndefined=function(a){"use strict";return"undefined"==typeof a},b.helper.escapeCharactersCallback=a,b.helper.escapeCharacters=function(b,c,d){"use strict";var e="(["+c.replace(/([\[\]\\])/g,"\\$1")+"])";d&&(e="\\\\"+e);var f=new RegExp(e,"g");return b=b.replace(f,a)},b.subParser("anchors",function(a,c,d){"use strict";var e=function(a,c,e,f,g,h,i,j){b.helper.isUndefined(j)&&(j=""),a=c;var k=e,l=f.toLowerCase(),m=g,n=j;if(!m)if(l||(l=k.toLowerCase().replace(/ ?\n/g," ")),m="#"+l,b.helper.isUndefined(d.gUrls[l])){if(!(a.search(/\(\s*\)$/m)>-1))return a;m=""}else m=d.gUrls[l],b.helper.isUndefined(d.gTitles[l])||(n=d.gTitles[l]);m=b.helper.escapeCharacters(m,"*_",!1);var o='"};return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,e),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,e),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,e)}),b.subParser("autoLinks",function(a){"use strict";a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'$1');var c=/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi;return a=a.replace(c,function(a,c){var d=b.subParser("unescapeSpecialChars")(c);return b.subParser("encodeEmailAddress")(d)})}),b.subParser("blockGamut",function(a,c,d){"use strict";a=b.subParser("headers")(a,c,d);var e=b.subParser("hashBlock")("
    ",c,d);return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,e),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,e),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,e),a=b.subParser("lists")(a,c,d),a=b.subParser("codeBlocks")(a,c,d),a=b.subParser("blockQuotes")(a,c,d),a=b.subParser("hashHTMLBlocks")(a,c,d),a=b.subParser("paragraphs")(a,c,d)}),b.subParser("blockQuotes",function(a,c,d){"use strict";return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,e){var f=e;return f=f.replace(/^[ \t]*>[ \t]?/gm,"~0"),f=f.replace(/~0/g,""),f=f.replace(/^[ \t]+$/gm,""),f=b.subParser("blockGamut")(f,c,d),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,"")}),b.subParser("hashBlock")("
    \n"+f+"\n
    ",c,d)})}),b.subParser("codeBlocks",function(a,c,d){"use strict";a+="~0";var e=/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g;return a=a.replace(e,function(a,e,f){var g=e,h=f;return g=b.subParser("outdent")(g),g=b.subParser("encodeCode")(g),g=b.subParser("detab")(g),g=g.replace(/^\n+/g,""),g=g.replace(/\n+$/g,""),g="
    "+g+"\n
    ",b.subParser("hashBlock")(g,c,d)+h}),a=a.replace(/~0/,"")}),b.subParser("codeSpans",function(a){"use strict";return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,c,d,e){var f=e;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=b.subParser("encodeCode")(f),c+""+f+""})}),b.subParser("detab",function(a){"use strict";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,"")}),b.subParser("encodeAmpsAndAngles",function(a){"use strict";return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")}),b.subParser("encodeBackslashEscapes",function(a){"use strict";return a=a.replace(/\\(\\)/g,b.helper.escapeCharactersCallback),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,b.helper.escapeCharactersCallback)}),b.subParser("encodeCode",function(a){"use strict";return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=b.helper.escapeCharacters(a,"*_{}[]\\",!1)}),b.subParser("encodeEmailAddress",function(a){"use strict";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,'">')}),b.subParser("escapeSpecialCharsWithinTagAttributes",function(a){"use strict";var c=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(c,function(a){var c=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return c=b.helper.escapeCharacters(c,"\\`*_",!1)})}),b.subParser("githubCodeBlocks",function(a,c,d){"use strict";return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,e,f){var g=e,h=f,i="\n";return c.omitExtraWLInCodeBlocks&&(i=""),h=b.subParser("encodeCode")(h),h=b.subParser("detab")(h),h=h.replace(/^\n+/g,""),h=h.replace(/\n+$/g,""),h="
    "+h+i+"
    ",b.subParser("hashBlock")(h,c,d)}),a=a.replace(/~0/,"")}),b.subParser("hashBlock",function(a,b,c){"use strict";return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(c.gHtmlBlocks.push(a)-1)+"K\n\n"}),b.subParser("hashElement",function(a,b,c){"use strict";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"}}),b.subParser("hashHTMLBlocks",function(a,c,d){"use strict";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,b.subParser("hashElement")(a,c,d)),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,b.subParser("hashElement")(a,c,d)),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,b.subParser("hashElement")(a,c,d)),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,b.subParser("hashElement")(a,c,d)),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,b.subParser("hashElement")(a,c,d)),a=a.replace(/\n\n/g,"\n")}),b.subParser("headers",function(a,c,d){"use strict";function e(a){var c,e=a.replace(/[^\w]/g,"").toLowerCase();return d.hashLinkCounts[e]?c=e+"-"+d.hashLinkCounts[e]++:(c=e,d.hashLinkCounts[e]=1),f===!0&&(f="section"),b.helper.isString(f)?f+c:c}var f=c.prefixHeaderId;return a=a.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(a,f){var g=b.subParser("spanGamut")(f,c,d),h='

    '+g+"

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

    '+g+"

    ";return b.subParser("hashBlock")(h,c,d)}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,f,g){var h=b.subParser("spanGamut")(g,c,d),i="'+h+"";return b.subParser("hashBlock")(i,c,d)})}),b.subParser("images",function(a,c,d){"use strict";var e=function(a,c,e,f,g,h,i,j){a=c;var k=e,l=f.toLowerCase(),m=g,n=j,o=d.gUrls,p=d.gTitles;if(n||(n=""),""===m||null===m){if((""===l||null===l)&&(l=k.toLowerCase().replace(/ ?\n/g," ")),m="#"+l,"undefined"==typeof o[l])return a;m=o[l],"undefined"!=typeof p[l]&&(n=p[l])}k=k.replace(/"/g,"""),m=b.helper.escapeCharacters(m,"*_",!1);var q=''+k+'?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,e)}),b.subParser("italicsAndBold",function(a){"use strict";return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")}),b.subParser("lists",function(a,c,d){"use strict";var e=function(a){return d.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,e,f,g,h){var i=b.subParser("outdent")(h,c,d);return e||i.search(/\n{2,}/)>-1?i=b.subParser("blockGamut")(i,c,d):(i=b.subParser("lists")(i,c,d),i=i.replace(/\n$/,""),i=b.subParser("spanGamut")(i,c,d)),"
  • "+i+"
  • \n"}),a=a.replace(/~0/g,""),d.gListLevel--,a};a+="~0";var f=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return d.gListLevel?a=a.replace(f,function(a,b,c){var d=b,f=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var g=e(d);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,d){var f=c.replace(/\n{2,}/g,"\n\n\n"),g=d.search(/[*+-]/g)>-1?"ul":"ol",h=e(f);return b+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")}),b.subParser("outdent",function(a){"use strict";return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")}),b.subParser("paragraphs",function(a,c,d){"use strict";a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var e=a.split(/\n{2,}/g),f=[],g=e.length,h=0;g>h;h++){var i=e[h];i.search(/~K(\d+)K/g)>=0?f.push(i):i.search(/\S/)>=0&&(i=b.subParser("spanGamut")(i,c,d),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=d.gHtmlBlocks[RegExp.$1];j=j.replace(/\$/g,"$$$$"),f[h]=f[h].replace(/~K\d+K/,j)}return f.join("\n\n")}),b.subParser("spanGamut",function(a,c,d){"use strict";return a=b.subParser("codeSpans")(a,c,d),a=b.subParser("escapeSpecialCharsWithinTagAttributes")(a,c,d),a=b.subParser("encodeBackslashEscapes")(a,c,d),a=b.subParser("images")(a,c,d),a=b.subParser("anchors")(a,c,d),a=b.subParser("autoLinks")(a,c,d),a=b.subParser("encodeAmpsAndAngles")(a,c,d),a=b.subParser("italicsAndBold")(a,c,d),a=a.replace(/ +\n/g,"
    \n")}),b.subParser("stripBlankLines",function(a){"use strict";return a.replace(/^[ \t]+$/gm,"")}),b.subParser("stripLinkDefinitions",function(a,c,d){"use strict";var e=/^[ ]{0,3}\[(.+)]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm;return a+="~0",a=a.replace(e,function(a,c,e,f,g){return c=c.toLowerCase(),d.gUrls[c]=b.subParser("encodeAmpsAndAngles")(e),f?f+g:(g&&(d.gTitles[c]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")}),b.subParser("unescapeSpecialChars",function(a){"use strict";return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})});var e=this;"undefined"!=typeof module&&module.exports?module.exports=b:"function"==typeof define&&define.amd?define("showdown",function(){"use strict";return b}):e.showdown=b}).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 bb085ef6..eec9aeb4 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","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","pattern","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","spanGamut","hashBlock","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":["escapeCharactersCallback","wholeMatch","m1","charCodeToEscape","charCodeAt","showdown","parsers","globalOptions","omitExtraWLInCodeBlocks","prefixHeaderId","helper","extensions","setOption","key","value","this","getOption","getOptions","subParser","name","func","isString","hasOwnProperty","Error","Converter","converterOptions","options","parserOrder","opt","makeHtml","text","globals","gHtmlBlocks","gUrls","gTitles","gListLevel","hashLinkCounts","replace","i","length","a","String","forEach","obj","callback","len","isArray","constructor","Array","isUndefined","escapeCharacters","charsToEscape","afterBackslash","regexString","regex","RegExp","config","writeAnchorTag","m2","m3","m4","m5","m6","m7","linkText","linkId","toLowerCase","url","title","search","result","pattern","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","spanGamut","hashBlock","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/helpers.js b/src/helpers.js index 1e82b870..fd9a3ae0 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -55,17 +55,19 @@ showdown.helper.isUndefined = function isUndefined(value) { return typeof value === 'undefined'; }; +function escapeCharactersCallback(wholeMatch, m1) { + 'use strict'; + var charCodeToEscape = m1.charCodeAt(0); + return '~E' + charCodeToEscape + 'E'; +} + /** * Callback used to escape characters when passing through String.replace * @param {string} wholeMatch * @param {string} m1 * @returns {string} */ -showdown.helper.escapeCharactersCallback = function escapeCharactersCallback(wholeMatch, m1) { - 'use strict'; - var charCodeToEscape = m1.charCodeAt(0); - return '~E' + charCodeToEscape + 'E'; -}; +showdown.helper.escapeCharactersCallback = escapeCharactersCallback; /** * Escape characters in a string diff --git a/src/subParsers/images.js b/src/subParsers/images.js index 8c3d811d..1a1d5cc1 100644 --- a/src/subParsers/images.js +++ b/src/subParsers/images.js @@ -44,7 +44,7 @@ showdown.subParser('images', function (text, options, globals) { //if (title != "") { title = title.replace(/"/g, '"'); - title = escapeCharacters(title, '*_'); + title = showdown.helper.escapeCharacters(title, '*_', false); result += ' title="' + title + '"'; //}