diff --git a/compressed/showdown.js b/compressed/showdown.js index 031c81c..5987be4 100644 --- a/compressed/showdown.js +++ b/compressed/showdown.js @@ -314,7 +314,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; var _HashHTMLBlocks = function (text) { // attacklab: Double up blank lines to reduce lookaround @@ -438,7 +438,7 @@ Showdown.converter = function (converter_options) { // attacklab: Undo double lines (see comment at top of this function) text = text.replace(/\n\n/g, "\n"); return text; - } + }; var hashElement = function (wholeMatch, m1) { var blockText = m1; @@ -509,7 +509,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/ +\n/g, "
\n"); return text; - } + }; var _EscapeSpecialCharsWithinTagAttributes = function (text) { // @@ -528,7 +528,7 @@ Showdown.converter = function (converter_options) { }); return text; - } + }; var _DoAnchors = function (text) { // @@ -613,26 +613,26 @@ Showdown.converter = function (converter_options) { text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag); return text; - } + }; var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) { - if (m7 == undefined) m7 = ""; + if (m7 === undefined) m7 = ""; var whole_match = m1; var link_text = m2; var link_id = m3.toLowerCase(); var url = m4; var title = m7; - if (url == "") { - if (link_id == "") { + if (url === "") { + if (link_id === "") { // lower-case and turn embedded newlines into spaces link_id = link_text.toLowerCase().replace(/ ?\n/g, " "); } url = "#" + link_id; - if (g_urls[link_id] != undefined) { + if (g_urls[link_id] !== undefined) { url = g_urls[link_id]; - if (g_titles[link_id] != undefined) { + if (g_titles[link_id] !== undefined) { title = g_titles[link_id]; } } @@ -649,7 +649,7 @@ Showdown.converter = function (converter_options) { url = escapeCharacters(url, "*_"); var result = ""; return result; - } + }; var _DoImages = function (text) { // @@ -716,7 +716,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeImageTag); return text; - } + }; var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) { var whole_match = m1; @@ -727,16 +727,16 @@ Showdown.converter = function (converter_options) { if (!title) title = ""; - if (url == "") { - if (link_id == "") { + if (url === "") { + if (link_id === "") { // lower-case and turn embedded newlines into spaces link_id = alt_text.toLowerCase().replace(/ ?\n/g, " "); } url = "#" + link_id; - if (g_urls[link_id] != undefined) { + if (g_urls[link_id] !== undefined) { url = g_urls[link_id]; - if (g_titles[link_id] != undefined) { + if (g_titles[link_id] !== undefined) { title = g_titles[link_id]; } } @@ -761,7 +761,7 @@ Showdown.converter = function (converter_options) { result += " />"; return result; - } + }; var _DoHeaders = function (text) { @@ -812,7 +812,7 @@ Showdown.converter = function (converter_options) { } return text; - } + }; // This declaration keeps Dojo compressor from outputting garbage: var _ProcessListItems; @@ -859,7 +859,6 @@ Showdown.converter = function (converter_options) { // Turn double returns into triple returns, so that we can make a // paragraph for the last item in a list, if necessary: list = list.replace(/\n{2,}/g, "\n\n\n"); - ; var result = _ProcessListItems(list); // Trim any trailing whitespace, to put the closing `` @@ -879,8 +878,7 @@ Showdown.converter = function (converter_options) { var list_type = (m3.search(/[*+-]/g) > -1) ? "ul" : "ol"; // Turn double returns into triple returns, so that we can make a // paragraph for the last item in a list, if necessary: - var list = list.replace(/\n{2,}/g, "\n\n\n"); - ; + list = list.replace(/\n{2,}/g, "\n\n\n"); var result = _ProcessListItems(list); result = runup + "<" + list_type + ">\n" + result + "\n"; return result; @@ -891,7 +889,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; _ProcessListItems = function (list_str) { // @@ -962,7 +960,7 @@ Showdown.converter = function (converter_options) { g_list_level--; return list_str; - } + }; var _DoCodeBlocks = function (text) { // @@ -1042,12 +1040,12 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; var hashBlock = function (text) { text = text.replace(/(^\n+|\n+$)/g, ""); return "\n\n~K" + (g_html_blocks.push(text) - 1) + "K\n\n"; - } + }; var _DoCodeSpans = function (text) { // @@ -1098,7 +1096,7 @@ Showdown.converter = function (converter_options) { }); return text; - } + }; var _EncodeCode = function (text) { // @@ -1128,7 +1126,7 @@ Showdown.converter = function (converter_options) { //--- return text; - } + }; var _DoItalicsAndBold = function (text) { @@ -1140,7 +1138,7 @@ Showdown.converter = function (converter_options) { "$2"); return text; - } + }; var _DoBlockQuotes = function (text) { @@ -1187,7 +1185,7 @@ Showdown.converter = function (converter_options) { return hashBlock("
\n" + bq + "\n
"); }); return text; - } + }; var _FormParagraphs = function (text) { // @@ -1216,7 +1214,7 @@ Showdown.converter = function (converter_options) { else if (str.search(/\S/) >= 0) { str = _RunSpanGamut(str); str = str.replace(/^([ \t]*)/g, "

"); - str += "

" + str += "

"; grafsOut.push(str); } @@ -1226,7 +1224,7 @@ Showdown.converter = function (converter_options) { // Unhashify HTML blocks // end = grafsOut.length; - for (var i = 0; i < end; i++) { + for (i = 0; i < end; i++) { // if this is a marker for an html block... while (grafsOut[i].search(/~K(\d+)K/) >= 0) { var blockText = g_html_blocks[RegExp.$1]; @@ -1236,7 +1234,7 @@ Showdown.converter = function (converter_options) { } return grafsOut.join("\n\n"); - } + }; var _EncodeAmpsAndAngles = function (text) { // Smart processing for ampersands and angle brackets that need to be encoded. @@ -1249,7 +1247,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/<(?![a-z\/?\$!])/gi, "<"); return text; - } + }; var _EncodeBackslashEscapes = function (text) { // @@ -1270,7 +1268,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/\\(\\)/g, escapeCharacters_callback); text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, escapeCharacters_callback); return text; - } + }; var _DoAutoLinks = function (text) { @@ -1297,7 +1295,7 @@ Showdown.converter = function (converter_options) { ); return text; - } + }; var _EncodeEmailAddress = function (addr) { // @@ -1338,8 +1336,8 @@ Showdown.converter = function (converter_options) { var r = Math.random(); // roughly 10% raw, 45% hex, 45% dec ch = ( - r > .9 ? encode[2](ch) : - r > .45 ? encode[1](ch) : + r > 0.9 ? encode[2](ch) : + r > 0.45 ? encode[1](ch) : encode[0](ch) ); } @@ -1350,7 +1348,7 @@ Showdown.converter = function (converter_options) { addr = addr.replace(/">.+:/g, "\">"); // strip the mailto: from the visible part return addr; - } + }; var _UnescapeSpecialChars = function (text) { // @@ -1363,7 +1361,7 @@ Showdown.converter = function (converter_options) { } ); return text; - } + }; var _Outdent = function (text) { // @@ -1376,10 +1374,10 @@ Showdown.converter = function (converter_options) { text = text.replace(/^(\t|[ ]{1,4})/gm, "~0"); // attacklab: g_tab_width // attacklab: clean up hack - text = text.replace(/~0/g, "") + text = text.replace(/~0/g, ""); return text; - } + }; var _Detab = function (text) { // attacklab: Detab's completely rewritten for speed. @@ -1410,7 +1408,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~B/g, ""); return text; - } + }; // @@ -1431,15 +1429,15 @@ Showdown.converter = function (converter_options) { text = text.replace(regex, escapeCharacters_callback); return text; - } + }; var escapeCharacters_callback = function (wholeMatch, m1) { var charCodeToEscape = m1.charCodeAt(0); return "~E" + charCodeToEscape + "E"; - } + }; -} // end of Showdown.converter +}; // end of Showdown.converter // export @@ -1559,6 +1557,7 @@ if (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') { *
* * @param $Showdown + * @param $sanitize * @returns {*} */ function markdownToHtmlDirective($Showdown, $sanitize) { @@ -1581,7 +1580,7 @@ if (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') { scope: { model: '=sdModelToHtml' } - } + }; } /** diff --git a/compressed/showdown.js.map b/compressed/showdown.js.map index 31d7b4b..8f810b9 100644 --- a/compressed/showdown.js.map +++ b/compressed/showdown.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/showdown.js","../src/ng-showdown.js"],"names":[],"mappings":"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","file":"showdown.js","sourcesContent":["//\r\n// showdown.js -- A javascript port of Markdown.\r\n//\r\n// Copyright (c) 2007 John Fraser.\r\n//\r\n// Original Markdown Copyright (c) 2004-2005 John Gruber\r\n// \r\n//\r\n// Redistributable under a BSD-style open source license.\r\n// See license.txt for more information.\r\n//\r\n// The full source distribution is at:\r\n//\r\n//\t\t\t\tA A L\r\n//\t\t\t\tT C A\r\n//\t\t\t\tT K B\r\n//\r\n// \r\n//\r\n\r\n//\r\n// Wherever possible, Showdown is a straight, line-by-line port\r\n// of the Perl version of Markdown.\r\n//\r\n// This is not a normal parser design; it's basically just a\r\n// series of string substitutions. It's hard to read and\r\n// maintain this way, but keeping Showdown close to the original\r\n// design makes it easier to port new features.\r\n//\r\n// More importantly, Showdown behaves like markdown.pl in most\r\n// edge cases. So web applications can do client-side preview\r\n// in Javascript, and then build identical HTML on the server.\r\n//\r\n// This port needs the new RegExp functionality of ECMA 262,\r\n// 3rd Edition (i.e. Javascript 1.5). Most modern web browsers\r\n// should do fine. Even with the new regular expression features,\r\n// We do a lot of work to emulate Perl's regex functionality.\r\n// The tricky changes in this file mostly have the \"attacklab:\"\r\n// label. Major or self-explanatory changes don't.\r\n//\r\n// Smart diff tools like Araxis Merge will be able to match up\r\n// this file with markdown.pl in a useful way. A little tweaking\r\n// helps: in a copy of markdown.pl, replace \"#\" with \"//\" and\r\n// replace \"$text\" with \"text\". Be sure to ignore whitespace\r\n// and line endings.\r\n//\r\n\r\n\r\n//\r\n// Showdown usage:\r\n//\r\n// var text = \"Markdown *rocks*.\";\r\n//\r\n// var converter = new Showdown.converter();\r\n// var html = converter.makeHtml(text);\r\n//\r\n// alert(html);\r\n//\r\n// Note: move the sample code to the bottom of this\r\n// file before uncommenting it.\r\n//\r\n\r\n\r\n//\r\n// Showdown namespace\r\n//\r\nvar Showdown = {extensions: {}};\r\n\r\n//\r\n// forEach\r\n//\r\nvar forEach = Showdown.forEach = function (obj, callback) {\r\n if (typeof obj.forEach === 'function') {\r\n obj.forEach(callback);\r\n } else {\r\n var i, len = obj.length;\r\n for (i = 0; i < len; i++) {\r\n callback(obj[i], i, obj);\r\n }\r\n }\r\n};\r\n\r\n//\r\n// Standard extension naming\r\n//\r\nvar stdExtName = function (s) {\r\n return s.replace(/[_-]||\\s/g, '').toLowerCase();\r\n};\r\n\r\n//\r\n// converter\r\n//\r\n// Wraps all \"globals\" so that the only thing\r\n// exposed is makeHtml().\r\n//\r\nShowdown.converter = function (converter_options) {\r\n\r\n//\r\n// Globals:\r\n//\r\n\r\n// Global hashes, used by various utility routines\r\n var g_urls;\r\n var g_titles;\r\n var g_html_blocks;\r\n\r\n// Used to track when we're inside an ordered or unordered list\r\n// (see _ProcessListItems() for details):\r\n var g_list_level = 0;\r\n\r\n// Global extensions\r\n var g_lang_extensions = [];\r\n var g_output_modifiers = [];\r\n\r\n\r\n//\r\n// Automatic Extension Loading (node only):\r\n//\r\n if (typeof module !== 'undefined' && typeof exports !== 'undefined' && typeof require !== 'undefined') {\r\n var fs = require('fs');\r\n\r\n if (fs) {\r\n // Search extensions folder\r\n var extensions = fs.readdirSync((__dirname || '.') + '/extensions').filter(function (file) {\r\n return ~file.indexOf('.js');\r\n }).map(function (file) {\r\n return file.replace(/\\.js$/, '');\r\n });\r\n // Load extensions into Showdown namespace\r\n Showdown.forEach(extensions, function (ext) {\r\n var name = stdExtName(ext);\r\n Showdown.extensions[name] = require('./extensions/' + ext);\r\n });\r\n }\r\n }\r\n\r\n this.makeHtml = function (text) {\r\n//\r\n// Main function. The order in which other subs are called here is\r\n// essential. Link and image substitutions need to happen before\r\n// _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the
\r\n// and tags get encoded.\r\n//\r\n\r\n // Clear the global hashes. If we don't clear these, you get conflicts\r\n // from other articles when generating a page which contains more than\r\n // one article (e.g. an index page that shows the N most recent\r\n // articles):\r\n g_urls = {};\r\n g_titles = {};\r\n g_html_blocks = [];\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 arbitray; 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 // Convert all tabs to spaces.\r\n text = _Detab(text);\r\n\r\n // Strip any lines consisting only of spaces and tabs.\r\n // This makes subsequent regexen 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 text = text.replace(/^[ \\t]+$/mg, \"\");\r\n\r\n // Run language extensions\r\n Showdown.forEach(g_lang_extensions, function (x) {\r\n text = _ExecuteExtension(x, 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 propertly\r\n text = _DoGithubCodeBlocks(text);\r\n\r\n // Turn block-level HTML blocks into hash entries\r\n text = _HashHTMLBlocks(text);\r\n\r\n // Strip link definitions, store in hashes.\r\n text = _StripLinkDefinitions(text);\r\n\r\n text = _RunBlockGamut(text);\r\n\r\n text = _UnescapeSpecialChars(text);\r\n\r\n // attacklab: Restore dollar signs\r\n text = text.replace(/~D/g, \"$$\");\r\n\r\n // attacklab: Restore tildes\r\n text = text.replace(/~T/g, \"~\");\r\n\r\n // Run output modifiers\r\n Showdown.forEach(g_output_modifiers, function (x) {\r\n text = _ExecuteExtension(x, text);\r\n });\r\n\r\n return text;\r\n };\r\n\r\n\r\n//\r\n// Options:\r\n//\r\n\r\n// Parse extensions options into separate arrays\r\n if (converter_options && converter_options.extensions) {\r\n\r\n var self = this;\r\n\r\n // Iterate over each plugin\r\n Showdown.forEach(converter_options.extensions, function (plugin) {\r\n var pluginName = plugin;\r\n\r\n // Assume it's a bundled plugin if a string is given\r\n if (typeof plugin === 'string') {\r\n plugin = Showdown.extensions[stdExtName(plugin)];\r\n }\r\n\r\n if (typeof plugin === 'function') {\r\n // Iterate over each extension within that plugin\r\n Showdown.forEach(plugin(self), function (ext) {\r\n // Sort extensions by type\r\n if (ext.type) {\r\n if (ext.type === 'language' || ext.type === 'lang') {\r\n g_lang_extensions.push(ext);\r\n } else if (ext.type === 'output' || ext.type === 'html') {\r\n g_output_modifiers.push(ext);\r\n }\r\n } else {\r\n // Assume language extension\r\n g_output_modifiers.push(ext);\r\n }\r\n });\r\n } else {\r\n throw \"Extension '\" + pluginName + \"' could not be loaded. It was either not found or is not a valid extension.\";\r\n }\r\n });\r\n }\r\n\r\n\r\n var _ExecuteExtension = function (ext, text) {\r\n if (ext.regex) {\r\n var re = new RegExp(ext.regex, 'g');\r\n return text.replace(re, ext.replace);\r\n } else if (ext.filter) {\r\n return ext.filter(text);\r\n }\r\n };\r\n\r\n var _StripLinkDefinitions = function (text) {\r\n//\r\n// Strips link definitions from text, stores the URLs and titles in\r\n// hash references.\r\n//\r\n\r\n // Link defs are in the form: ^[id]: url \"optional title\"\r\n\r\n /*\r\n var text = text.replace(/\r\n ^[ ]{0,3}\\[(.+)\\]: // id = $1 attacklab: g_tab_width - 1\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe *one* newline\r\n [ \\t]*\r\n ?\t\t\t// url = $2\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe one newline\r\n [ \\t]*\r\n (?:\r\n (\\n*)\t\t\t\t// any lines skipped = $3 attacklab: lookbehind removed\r\n [\"(]\r\n (.+?)\t\t\t\t// title = $4\r\n [\")]\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n (?:\\n+|$)\r\n /gm,\r\n function(){...});\r\n */\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/^[ ]{0,3}\\[(.+)\\]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n m1 = m1.toLowerCase();\r\n g_urls[m1] = _EncodeAmpsAndAngles(m2); // Link IDs are case-insensitive\r\n if (m3) {\r\n // Oops, found blank lines, so it's not a title.\r\n // Put back the parenthetical statement we stole.\r\n return m3 + m4;\r\n } else if (m4) {\r\n g_titles[m1] = m4.replace(/\"/g, \""\");\r\n }\r\n\r\n // Completely remove the definition from the text\r\n return \"\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n }\r\n\r\n var _HashHTMLBlocks = function (text) {\r\n // attacklab: Double up blank lines to reduce lookaround\r\n text = text.replace(/\\n/g, \"\\n\\n\");\r\n\r\n // Hashify HTML blocks:\r\n // We only want to do this for block-level HTML tags, such as headers,\r\n // lists, and tables. That's because we still want to wrap

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

\r\n //
\r\n // tags for inner block must be indented.\r\n //
\r\n //
\r\n //\r\n // The outermost tags must start at the left margin for this to match, and\r\n // the inner nested divs must be indented.\r\n // We need to do this before the next, more liberal match, because the next\r\n // match will start at the first `
` and stop at the first `
`.\r\n\r\n // attacklab: This regex can be expensive when it fails.\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_a)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\\n\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b[^\\r]*?\\n<\\/\\2>[ \\t]*(?=\\n+))/gm, hashElement);\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, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(\\n[ ]{0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(\\n\\n[ ]{0,3}[ \\t]*(?=\\n{2,}))/g, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(?:\\n\\n)([ ]{0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g, hashElement);\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 var hashElement = 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\" + (g_html_blocks.push(blockText) - 1) + \"K\\n\\n\";\r\n\r\n return blockText;\r\n };\r\n\r\n var _RunBlockGamut = function (text) {\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\n text = _DoHeaders(text);\r\n\r\n // Do Horizontal Rules:\r\n var key = hashBlock(\"
\");\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 = _DoLists(text);\r\n text = _DoCodeBlocks(text);\r\n text = _DoBlockQuotes(text);\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 = _HashHTMLBlocks(text);\r\n text = _FormParagraphs(text);\r\n\r\n return text;\r\n };\r\n\r\n var _RunSpanGamut = function (text) {\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\n\r\n text = _DoCodeSpans(text);\r\n text = _EscapeSpecialCharsWithinTagAttributes(text);\r\n text = _EncodeBackslashEscapes(text);\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 = _DoImages(text);\r\n text = _DoAnchors(text);\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 = _DoAutoLinks(text);\r\n text = _EncodeAmpsAndAngles(text);\r\n text = _DoItalicsAndBold(text);\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 var _EscapeSpecialCharsWithinTagAttributes = function (text) {\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\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 = escapeCharacters(tag, \"\\\\`*_\");\r\n return tag;\r\n });\r\n\r\n return text;\r\n }\r\n\r\n var _DoAnchors = function (text) {\r\n//\r\n// Turn Markdown link shortcuts into XHTML
tags.\r\n//\r\n //\r\n // First, handle reference-style links: [link text] [id]\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 (\r\n (?:\r\n \\[[^\\]]*\\]\t\t// allow brackets nested one level\r\n |\r\n [^\\[]\t\t\t// or anything else\r\n )*\r\n )\r\n \\]\r\n\r\n [ ]?\t\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t\t// pad remaining backreferences\r\n /g,_DoAnchors_callback);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeAnchorTag);\r\n\r\n //\r\n // Next, inline-style links: [link text](url \"optional title\")\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t// allow brackets nested one level\r\n |\r\n [^\\[\\]]\t\t\t// or anything else\r\n )\r\n )\r\n \\]\r\n \\(\t\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t\t// no id, so leave $3 empty\r\n ?\t\t\t\t// href = $4\r\n [ \\t]*\r\n (\t\t\t\t\t\t// $5\r\n (['\"])\t\t\t\t// quote char = $6\r\n (.*?)\t\t\t\t// Title = $7\r\n \\6\t\t\t\t\t// matching quote\r\n [ \\t]*\t\t\t\t// ignore any spaces/tabs between closing quote and )\r\n )?\t\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeAnchorTag);\r\n\r\n //\r\n // Last, handle reference-style shortcuts: [link text]\r\n // These must come last in case you've also got [link test][1]\r\n // or [link test](/foo)\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t \t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+)\t\t\t\t// link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()()\t\t\t\t\t// pad rest of backreferences\r\n /g, writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[([^\\[\\]]+)\\])()()()()()/g, writeAnchorTag);\r\n\r\n return text;\r\n }\r\n\r\n var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n if (m7 == undefined) m7 = \"\";\r\n var whole_match = m1;\r\n var link_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (url == \"\") {\r\n if (link_id == \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = link_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] != undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] != undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n if (whole_match.search(/\\(\\s*\\)$/m) > -1) {\r\n // Special case for explicit empty url\r\n url = \"\";\r\n } else {\r\n return whole_match;\r\n }\r\n }\r\n }\r\n\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"\" + link_text + \"\";\r\n\r\n return result;\r\n }\r\n\r\n var _DoImages = function (text) {\r\n//\r\n// Turn Markdown image shortcuts into tags.\r\n//\r\n\r\n //\r\n // First, handle reference-style labeled images: ![alt text][id]\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 (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n\r\n [ ]?\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t// pad rest of backreferences\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeImageTag);\r\n\r\n //\r\n // Next, handle inline images: ![alt text](url \"optional title\")\r\n // Don't forget: encode * and _\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 (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n \\s?\t\t\t\t\t// One optional whitespace character\r\n \\(\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t// no id, so leave $3 empty\r\n ?\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 var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n var whole_match = m1;\r\n var alt_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (!title) title = \"\";\r\n\r\n if (url == \"\") {\r\n if (link_id == \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = alt_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] != undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] != undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n return whole_match;\r\n }\r\n }\r\n\r\n alt_text = alt_text.replace(/\"/g, \""\");\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"\\\"\"\";\r\n\r\n return result;\r\n }\r\n\r\n var _DoHeaders = function (text) {\r\n\r\n // Setext-style headers:\r\n //\tHeader 1\r\n //\t========\r\n //\r\n //\tHeader 2\r\n //\t--------\r\n //\r\n text = text.replace(/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\r\n function (wholeMatch, m1) {\r\n return hashBlock('

' + _RunSpanGamut(m1) + \"

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

' + _RunSpanGamut(m1) + \"

\");\r\n });\r\n\r\n // atx-style headers:\r\n // # Header 1\r\n // ## Header 2\r\n // ## Header 2 with closing hashes ##\r\n // ...\r\n // ###### Header 6\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n ^(\\#{1,6})\t\t\t\t// $1 = string of #'s\r\n [ \\t]*\r\n (.+?)\t\t\t\t\t// $2 = Header text\r\n [ \\t]*\r\n \\#*\t\t\t\t\t\t// optional closing #'s (not counted)\r\n \\n+\r\n /gm, function() {...});\r\n */\r\n\r\n text = text.replace(/^(\\#{1,6})[ \\t]*(.+?)[ \\t]*\\#*\\n+/gm,\r\n function (wholeMatch, m1, m2) {\r\n var h_level = m1.length;\r\n return hashBlock(\"' + _RunSpanGamut(m2) + \"\");\r\n });\r\n\r\n function headerId(m) {\r\n return m.replace(/[^\\w]/g, '').toLowerCase();\r\n }\r\n\r\n return text;\r\n }\r\n\r\n// This declaration keeps Dojo compressor from outputting garbage:\r\n var _ProcessListItems;\r\n\r\n var _DoLists = function (text) {\r\n//\r\n// Form HTML ordered (numbered) and unordered (bulleted) lists.\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 whole_list = /^(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm;\r\n\r\n if (g_list_level) {\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2) {\r\n var list = m1;\r\n var list_type = (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 = \"<\" + list_type + \">\" + result + \"\\n\";\r\n return result;\r\n });\r\n } else {\r\n whole_list = /(\\n\\n|^\\n?)(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/g;\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2, m3) {\r\n var runup = m1;\r\n var list = m2;\r\n\r\n var list_type = (m3.search(/[*+-]/g) > -1) ? \"ul\" : \"ol\";\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 = list.replace(/\\n{2,}/g, \"\\n\\n\\n\");\r\n ;\r\n var result = _ProcessListItems(list);\r\n result = runup + \"<\" + list_type + \">\\n\" + result + \"\\n\";\r\n return result;\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 _ProcessListItems = function (list_str) {\r\n//\r\n// Process the contents of a single ordered or unordered list, splitting it\r\n// into individual list items.\r\n//\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 g_list_level++;\r\n\r\n // trim trailing blank lines:\r\n list_str = list_str.replace(/\\n{2,}$/, \"\\n\");\r\n\r\n // attacklab: add sentinel to emulate \\z\r\n list_str += \"~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 list_str = list_str.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 = m4;\r\n var leading_line = m1;\r\n var leading_space = m2;\r\n\r\n if (leading_line || (item.search(/\\n{2,}/) > -1)) {\r\n item = _RunBlockGamut(_Outdent(item));\r\n }\r\n else {\r\n // Recursion for sub-lists:\r\n item = _DoLists(_Outdent(item));\r\n item = item.replace(/\\n$/, \"\"); // chomp(item)\r\n item = _RunSpanGamut(item);\r\n }\r\n\r\n return \"
  • \" + item + \"
  • \\n\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n list_str = list_str.replace(/~0/g, \"\");\r\n\r\n g_list_level--;\r\n return list_str;\r\n }\r\n\r\n var _DoCodeBlocks = function (text) {\r\n//\r\n// Process Markdown `
    ` blocks.\r\n//\r\n\r\n        /*\r\n         text = text.replace(text,\r\n         /(?:\\n\\n|^)\r\n         (\t\t\t\t\t\t\t\t// $1 = the code block -- one or more lines, starting with a space/tab\r\n         (?:\r\n         (?:[ ]{4}|\\t)\t\t\t// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width\r\n         .*\\n+\r\n         )+\r\n         )\r\n         (\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))\t// attacklab: g_tab_width\r\n         /g,function(){...});\r\n         */\r\n\r\n        // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n        text += \"~0\";\r\n\r\n        text = text.replace(/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g,\r\n            function (wholeMatch, m1, m2) {\r\n                var codeblock = m1;\r\n                var nextChar = m2;\r\n\r\n                codeblock = _EncodeCode(_Outdent(codeblock));\r\n                codeblock = _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 hashBlock(codeblock) + nextChar;\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n };\r\n\r\n var _DoGithubCodeBlocks = function (text) {\r\n//\r\n// Process Github-style code blocks\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\n\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,\r\n function (wholeMatch, m1, m2) {\r\n var language = m1;\r\n var codeblock = m2;\r\n\r\n codeblock = _EncodeCode(codeblock);\r\n codeblock = _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 hashBlock(codeblock);\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 var hashBlock = function (text) {\r\n text = text.replace(/(^\\n+|\\n+$)/g, \"\");\r\n return \"\\n\\n~K\" + (g_html_blocks.push(text) - 1) + \"K\\n\\n\";\r\n }\r\n\r\n var _DoCodeSpans = function (text) {\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//\t include literal backticks in the code span. So, this input:\r\n//\r\n//\t\t Just type ``foo `bar` baz`` at the prompt.\r\n//\r\n//\t Will translate to:\r\n//\r\n//\t\t

    Just type foo `bar` baz at the prompt.

    \r\n//\r\n//\tThere's no arbitrary limit to the number of backticks you\r\n//\tcan use as delimters. If you need three consecutive backticks\r\n//\tin 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//\t\t ... type `` `bar` `` ...\r\n//\r\n//\t Turns to:\r\n//\r\n//\t\t ... type `bar` ...\r\n//\r\n\r\n /*\r\n text = text.replace(/\r\n (^|[^\\\\])\t\t\t\t\t// Character before opening ` can't be a backslash\r\n (`+)\t\t\t\t\t\t// $2 = Opening run of `\r\n (\t\t\t\t\t\t\t// $3 = The code block\r\n [^\\r]*?\r\n [^`]\t\t\t\t\t// attacklab: work around lack of lookbehind\r\n )\r\n \\2\t\t\t\t\t\t\t// Matching closer\r\n (?!`)\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\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 = _EncodeCode(c);\r\n return m1 + \"\" + c + \"\";\r\n });\r\n\r\n return text;\r\n }\r\n\r\n var _EncodeCode = function (text) {\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\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 = escapeCharacters(text, \"\\*_{}[]\\\\\", false);\r\n\r\n// jj the line above breaks this:\r\n//---\r\n\r\n//* Item\r\n\r\n// 1. Subitem\r\n\r\n// special char: *\r\n//---\r\n\r\n return text;\r\n }\r\n\r\n var _DoItalicsAndBold = function (text) {\r\n\r\n // must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g,\r\n \"$2\");\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g,\r\n \"$2\");\r\n\r\n return text;\r\n }\r\n\r\n var _DoBlockQuotes = function (text) {\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t\t// Wrap whole match in $1\r\n (\r\n ^[ \\t]*>[ \\t]?\t\t\t// '>' at the start of a line\r\n .+\\n\t\t\t\t\t// rest of the first line\r\n (.+\\n)*\t\t\t\t\t// subsequent consecutive lines\r\n \\n*\t\t\t\t\t\t// blanks\r\n )+\r\n )\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,\r\n function (wholeMatch, m1) {\r\n var bq = m1;\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\r\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, \"~0\");\t// 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, \"\");\t\t// trim whitespace-only lines\r\n bq = _RunBlockGamut(bq);\t\t\t\t// recurse\r\n\r\n bq = bq.replace(/(^|\\n)/g, \"$1 \");\r\n // These leading spaces screw with
     content, so we need to fix that:\r\n                bq = bq.replace(\r\n                    /(\\s*
    [^\\r]+?<\\/pre>)/gm,\r\n                    function (wholeMatch, m1) {\r\n                        var pre = m1;\r\n                        // attacklab: hack around Konqueror 3.5.4 bug:\r\n                        pre = pre.replace(/^  /mg, \"~0\");\r\n                        pre = pre.replace(/~0/g, \"\");\r\n                        return pre;\r\n                    });\r\n\r\n                return hashBlock(\"
    \\n\" + bq + \"\\n
    \");\r\n });\r\n return text;\r\n }\r\n\r\n var _FormParagraphs = function (text) {\r\n//\r\n// Params:\r\n// $text - string to process with html

    tags\r\n//\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 var grafsOut = [];\r\n\r\n //\r\n // Wrap

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

    \");\r\n str += \"

    \"\r\n grafsOut.push(str);\r\n }\r\n\r\n }\r\n\r\n //\r\n // Unhashify HTML blocks\r\n //\r\n end = grafsOut.length;\r\n for (var 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 = g_html_blocks[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 var _EncodeAmpsAndAngles = function (text) {\r\n// Smart processing for ampersands and angle brackets that need to be encoded.\r\n\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 var _EncodeBackslashEscapes = function (text) {\r\n//\r\n// Parameter: String.\r\n// Returns:\tThe string, with after processing the following backslash\r\n//\t\t\t escape sequences.\r\n//\r\n\r\n // attacklab: The polite way to do this is with the new\r\n // escapeCharacters() function:\r\n //\r\n // \ttext = escapeCharacters(text,\"\\\\\",true);\r\n // \ttext = 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\n text = text.replace(/\\\\(\\\\)/g, escapeCharacters_callback);\r\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+-.!])/g, escapeCharacters_callback);\r\n return text;\r\n }\r\n\r\n var _DoAutoLinks = function (text) {\r\n\r\n text = text.replace(/<((https?|ftp|dict):[^'\">\\s]+)>/gi, \"$1\");\r\n\r\n // Email addresses: \r\n\r\n /*\r\n text = text.replace(/\r\n <\r\n (?:mailto:)?\r\n (\r\n [-.\\w]+\r\n \\@\r\n [-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+\r\n )\r\n >\r\n /gi, _DoAutoLinks_callback());\r\n */\r\n text = text.replace(/<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\r\n function (wholeMatch, m1) {\r\n return _EncodeEmailAddress(_UnescapeSpecialChars(m1));\r\n }\r\n );\r\n\r\n return text;\r\n }\r\n\r\n var _EncodeEmailAddress = function (addr) {\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//\tof the address encoded as either a decimal or hex entity, in\r\n//\tthe hopes of foiling most address harvesting spam bots. E.g.:\r\n//\r\n//\tfoo\r\n//\t @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\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 > .9 ? encode[2](ch) :\r\n r > .45 ? encode[1](ch) :\r\n encode[0](ch)\r\n );\r\n }\r\n return ch;\r\n });\r\n\r\n addr = \"\" + addr + \"\";\r\n addr = addr.replace(/\">.+:/g, \"\\\">\"); // strip the mailto: from the visible part\r\n\r\n return addr;\r\n }\r\n\r\n var _UnescapeSpecialChars = function (text) {\r\n//\r\n// Swap back in all the special characters we've hidden.\r\n//\r\n text = text.replace(/~E(\\d+)E/g,\r\n function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n }\r\n );\r\n return text;\r\n }\r\n\r\n var _Outdent = function (text) {\r\n//\r\n// Remove one level of line-leading tabs or spaces\r\n//\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\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 var _Detab = function (text) {\r\n// attacklab: Detab's completely rewritten for speed.\r\n// In perl we could fix it by anchoring the regexp with \\G.\r\n// In javascript we're less fortunate.\r\n\r\n // expand first n-1 tabs\r\n text = text.replace(/\\t(?=\\t)/g, \" \"); // attacklab: g_tab_width\r\n\r\n // replace the nth with two sentinels\r\n text = text.replace(/\\t/g, \"~A~B\");\r\n\r\n // use the sentinel to anchor our regex so it doesn't explode\r\n text = text.replace(/~B(.+?)~A/g,\r\n function (wholeMatch, m1, m2) {\r\n var leadingText = m1;\r\n var numSpaces = 4 - leadingText.length % 4; // attacklab: 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++) leadingText += \" \";\r\n\r\n return leadingText;\r\n }\r\n );\r\n\r\n // clean up sentinels\r\n text = text.replace(/~A/g, \" \"); // attacklab: g_tab_width\r\n text = text.replace(/~B/g, \"\");\r\n\r\n return text;\r\n }\r\n\r\n\r\n//\r\n// attacklab: Utility functions\r\n//\r\n\r\n\r\n var escapeCharacters = function (text, charsToEscape, afterBackslash) {\r\n // First we have to escape the escape characters so that\r\n // we can build a character class out of them\r\n var regexString = \"([\" + charsToEscape.replace(/([\\[\\]\\\\])/g, \"\\\\$1\") + \"])\";\r\n\r\n if (afterBackslash) {\r\n regexString = \"\\\\\\\\\" + regexString;\r\n }\r\n\r\n var regex = new RegExp(regexString, \"g\");\r\n text = text.replace(regex, escapeCharacters_callback);\r\n\r\n return text;\r\n }\r\n\r\n\r\n var escapeCharacters_callback = function (wholeMatch, m1) {\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return \"~E\" + charCodeToEscape + \"E\";\r\n }\r\n\r\n} // end of Showdown.converter\r\n\r\n\r\n// export\r\nif (typeof module !== 'undefined') module.exports = Showdown;\r\n\r\n// stolen from AMD branch of underscore\r\n// AMD define happens at the end for compatibility with AMD loaders\r\n// that don't enforce next-turn semantics on modules.\r\nif (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n return Showdown;\r\n });\r\n}\r\n","/**\r\n * Created by Tivie on 04-11-2014.\r\n */\r\n\r\n\r\n//Check if AngularJs and Showdown is defined and only load ng-Showdown if both are present\r\nif (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') {\r\n\r\n (function (module, Showdown) {\r\n\r\n module\r\n .provider('$Showdown', provider)\r\n .directive('sdModelToHtml', ['$Showdown', '$sanitize', markdownToHtmlDirective])\r\n .filter('sdStripHtml', stripHtmlFilter);\r\n\r\n /**\r\n * Angular Provider\r\n * Enables configuration of showdown via angular.config and Dependency Injection into controllers, views\r\n * directives, etc... This assures the directives and filters provided by the library itself stay consistent\r\n * with the user configurations.\r\n * If the user wants to use a different configuration in a determined context, he can use the \"classic\" Showdown\r\n * object instead.\r\n *\r\n */\r\n function provider() {\r\n\r\n // Configuration parameters for Showdown\r\n var config = {\r\n extensions: [],\r\n stripHtml: true\r\n };\r\n\r\n /**\r\n * Sets a configuration option\r\n *\r\n * @param {string} key Config parameter key\r\n * @param {string} value Config parameter value\r\n */\r\n this.setOption = function (key, value) {\r\n config.key = value;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the value of the configuration parameter specified by key\r\n *\r\n * @param {string} key The config parameter key\r\n * @returns {string|null} Returns the value of the config parameter. (or null if the config parameter is not set)\r\n */\r\n this.getOption = function (key) {\r\n if (config.hasOwnProperty(key)) {\r\n return config.key;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /**\r\n * Loads a Showdown Extension\r\n *\r\n * @param {string} extensionName The name of the extension to load\r\n */\r\n this.loadExtension = function (extensionName) {\r\n config.extensions.push(extensionName);\r\n\r\n return this;\r\n };\r\n\r\n function SDObject() {\r\n var converter = new Showdown.converter(config);\r\n\r\n /**\r\n * Converts a markdown text into HTML\r\n *\r\n * @param {string} markdown The markdown string to be converted to HTML\r\n * @returns {string} The converted HTML\r\n */\r\n this.makeHtml = function (markdown) {\r\n return converter.makeHtml(markdown);\r\n };\r\n\r\n /**\r\n * Strips a text of it's HTML tags\r\n *\r\n * @param {string} text\r\n * @returns {string}\r\n */\r\n this.stripHtml = function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n // The object returned by service provider\r\n this.$get = function () {\r\n return new SDObject();\r\n };\r\n }\r\n\r\n /**\r\n * AngularJS Directive to Md to HTML transformation\r\n *\r\n * Usage example:\r\n *
    \r\n *\r\n * @param $Showdown\r\n * @returns {*}\r\n */\r\n function markdownToHtmlDirective($Showdown, $sanitize) {\r\n\r\n var link = function (scope, element) {\r\n scope.$watch('model', function (newValue) {\r\n var val;\r\n if (typeof newValue === 'string') {\r\n val = $sanitize($Showdown.makeHtml(newValue));\r\n } else {\r\n val = typeof newValue;\r\n }\r\n element.html(val);\r\n });\r\n };\r\n\r\n return {\r\n restrict: 'A',\r\n link: link,\r\n scope: {\r\n model: '=sdModelToHtml'\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * AngularJS Filter to Strip HTML tags from text\r\n *\r\n * @returns {Function}\r\n */\r\n function stripHtmlFilter() {\r\n return function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n })(angular.module('Showdown', ['ngSanitize']), Showdown);\r\n\r\n} else {\r\n\r\n /** TODO Since this library is opt out, maybe we should not throw an error so we can concatenate this\r\n script with the main lib */\r\n // throw new Error(\"ng-showdown was not loaded because one of it's dependencies (AngularJS or Showdown) wasn't met\");\r\n}\r\n"]} \ No newline at end of file +{"version":3,"sources":["../src/showdown.js","../src/ng-showdown.js"],"names":[],"mappings":"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","file":"showdown.js","sourcesContent":["//\r\n// showdown.js -- A javascript port of Markdown.\r\n//\r\n// Copyright (c) 2007 John Fraser.\r\n//\r\n// Original Markdown Copyright (c) 2004-2005 John Gruber\r\n// \r\n//\r\n// Redistributable under a BSD-style open source license.\r\n// See license.txt for more information.\r\n//\r\n// The full source distribution is at:\r\n//\r\n//\t\t\t\tA A L\r\n//\t\t\t\tT C A\r\n//\t\t\t\tT K B\r\n//\r\n// \r\n//\r\n\r\n//\r\n// Wherever possible, Showdown is a straight, line-by-line port\r\n// of the Perl version of Markdown.\r\n//\r\n// This is not a normal parser design; it's basically just a\r\n// series of string substitutions. It's hard to read and\r\n// maintain this way, but keeping Showdown close to the original\r\n// design makes it easier to port new features.\r\n//\r\n// More importantly, Showdown behaves like markdown.pl in most\r\n// edge cases. So web applications can do client-side preview\r\n// in Javascript, and then build identical HTML on the server.\r\n//\r\n// This port needs the new RegExp functionality of ECMA 262,\r\n// 3rd Edition (i.e. Javascript 1.5). Most modern web browsers\r\n// should do fine. Even with the new regular expression features,\r\n// We do a lot of work to emulate Perl's regex functionality.\r\n// The tricky changes in this file mostly have the \"attacklab:\"\r\n// label. Major or self-explanatory changes don't.\r\n//\r\n// Smart diff tools like Araxis Merge will be able to match up\r\n// this file with markdown.pl in a useful way. A little tweaking\r\n// helps: in a copy of markdown.pl, replace \"#\" with \"//\" and\r\n// replace \"$text\" with \"text\". Be sure to ignore whitespace\r\n// and line endings.\r\n//\r\n\r\n\r\n//\r\n// Showdown usage:\r\n//\r\n// var text = \"Markdown *rocks*.\";\r\n//\r\n// var converter = new Showdown.converter();\r\n// var html = converter.makeHtml(text);\r\n//\r\n// alert(html);\r\n//\r\n// Note: move the sample code to the bottom of this\r\n// file before uncommenting it.\r\n//\r\n\r\n\r\n//\r\n// Showdown namespace\r\n//\r\nvar Showdown = {extensions: {}};\r\n\r\n//\r\n// forEach\r\n//\r\nvar forEach = Showdown.forEach = function (obj, callback) {\r\n if (typeof obj.forEach === 'function') {\r\n obj.forEach(callback);\r\n } else {\r\n var i, len = obj.length;\r\n for (i = 0; i < len; i++) {\r\n callback(obj[i], i, obj);\r\n }\r\n }\r\n};\r\n\r\n//\r\n// Standard extension naming\r\n//\r\nvar stdExtName = function (s) {\r\n return s.replace(/[_-]||\\s/g, '').toLowerCase();\r\n};\r\n\r\n//\r\n// converter\r\n//\r\n// Wraps all \"globals\" so that the only thing\r\n// exposed is makeHtml().\r\n//\r\nShowdown.converter = function (converter_options) {\r\n\r\n//\r\n// Globals:\r\n//\r\n\r\n// Global hashes, used by various utility routines\r\n var g_urls;\r\n var g_titles;\r\n var g_html_blocks;\r\n\r\n// Used to track when we're inside an ordered or unordered list\r\n// (see _ProcessListItems() for details):\r\n var g_list_level = 0;\r\n\r\n// Global extensions\r\n var g_lang_extensions = [];\r\n var g_output_modifiers = [];\r\n\r\n\r\n//\r\n// Automatic Extension Loading (node only):\r\n//\r\n if (typeof module !== 'undefined' && typeof exports !== 'undefined' && typeof require !== 'undefined') {\r\n var fs = require('fs');\r\n\r\n if (fs) {\r\n // Search extensions folder\r\n var extensions = fs.readdirSync((__dirname || '.') + '/extensions').filter(function (file) {\r\n return ~file.indexOf('.js');\r\n }).map(function (file) {\r\n return file.replace(/\\.js$/, '');\r\n });\r\n // Load extensions into Showdown namespace\r\n Showdown.forEach(extensions, function (ext) {\r\n var name = stdExtName(ext);\r\n Showdown.extensions[name] = require('./extensions/' + ext);\r\n });\r\n }\r\n }\r\n\r\n this.makeHtml = function (text) {\r\n//\r\n// Main function. The order in which other subs are called here is\r\n// essential. Link and image substitutions need to happen before\r\n// _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the \r\n// and tags get encoded.\r\n//\r\n\r\n // Clear the global hashes. If we don't clear these, you get conflicts\r\n // from other articles when generating a page which contains more than\r\n // one article (e.g. an index page that shows the N most recent\r\n // articles):\r\n g_urls = {};\r\n g_titles = {};\r\n g_html_blocks = [];\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 arbitray; 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 // Convert all tabs to spaces.\r\n text = _Detab(text);\r\n\r\n // Strip any lines consisting only of spaces and tabs.\r\n // This makes subsequent regexen 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 text = text.replace(/^[ \\t]+$/mg, \"\");\r\n\r\n // Run language extensions\r\n Showdown.forEach(g_lang_extensions, function (x) {\r\n text = _ExecuteExtension(x, 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 propertly\r\n text = _DoGithubCodeBlocks(text);\r\n\r\n // Turn block-level HTML blocks into hash entries\r\n text = _HashHTMLBlocks(text);\r\n\r\n // Strip link definitions, store in hashes.\r\n text = _StripLinkDefinitions(text);\r\n\r\n text = _RunBlockGamut(text);\r\n\r\n text = _UnescapeSpecialChars(text);\r\n\r\n // attacklab: Restore dollar signs\r\n text = text.replace(/~D/g, \"$$\");\r\n\r\n // attacklab: Restore tildes\r\n text = text.replace(/~T/g, \"~\");\r\n\r\n // Run output modifiers\r\n Showdown.forEach(g_output_modifiers, function (x) {\r\n text = _ExecuteExtension(x, text);\r\n });\r\n\r\n return text;\r\n };\r\n\r\n\r\n//\r\n// Options:\r\n//\r\n\r\n// Parse extensions options into separate arrays\r\n if (converter_options && converter_options.extensions) {\r\n\r\n var self = this;\r\n\r\n // Iterate over each plugin\r\n Showdown.forEach(converter_options.extensions, function (plugin) {\r\n var pluginName = plugin;\r\n\r\n // Assume it's a bundled plugin if a string is given\r\n if (typeof plugin === 'string') {\r\n plugin = Showdown.extensions[stdExtName(plugin)];\r\n }\r\n\r\n if (typeof plugin === 'function') {\r\n // Iterate over each extension within that plugin\r\n Showdown.forEach(plugin(self), function (ext) {\r\n // Sort extensions by type\r\n if (ext.type) {\r\n if (ext.type === 'language' || ext.type === 'lang') {\r\n g_lang_extensions.push(ext);\r\n } else if (ext.type === 'output' || ext.type === 'html') {\r\n g_output_modifiers.push(ext);\r\n }\r\n } else {\r\n // Assume language extension\r\n g_output_modifiers.push(ext);\r\n }\r\n });\r\n } else {\r\n throw \"Extension '\" + pluginName + \"' could not be loaded. It was either not found or is not a valid extension.\";\r\n }\r\n });\r\n }\r\n\r\n\r\n var _ExecuteExtension = function (ext, text) {\r\n if (ext.regex) {\r\n var re = new RegExp(ext.regex, 'g');\r\n return text.replace(re, ext.replace);\r\n } else if (ext.filter) {\r\n return ext.filter(text);\r\n }\r\n };\r\n\r\n var _StripLinkDefinitions = function (text) {\r\n//\r\n// Strips link definitions from text, stores the URLs and titles in\r\n// hash references.\r\n//\r\n\r\n // Link defs are in the form: ^[id]: url \"optional title\"\r\n\r\n /*\r\n var text = text.replace(/\r\n ^[ ]{0,3}\\[(.+)\\]: // id = $1 attacklab: g_tab_width - 1\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe *one* newline\r\n [ \\t]*\r\n ?\t\t\t// url = $2\r\n [ \\t]*\r\n \\n?\t\t\t\t// maybe one newline\r\n [ \\t]*\r\n (?:\r\n (\\n*)\t\t\t\t// any lines skipped = $3 attacklab: lookbehind removed\r\n [\"(]\r\n (.+?)\t\t\t\t// title = $4\r\n [\")]\r\n [ \\t]*\r\n )?\t\t\t\t\t// title is optional\r\n (?:\\n+|$)\r\n /gm,\r\n function(){...});\r\n */\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/^[ ]{0,3}\\[(.+)\\]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"(](.+?)[\")][ \\t]*)?(?:\\n+|(?=~0))/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\r\n m1 = m1.toLowerCase();\r\n g_urls[m1] = _EncodeAmpsAndAngles(m2); // Link IDs are case-insensitive\r\n if (m3) {\r\n // Oops, found blank lines, so it's not a title.\r\n // Put back the parenthetical statement we stole.\r\n return m3 + m4;\r\n } else if (m4) {\r\n g_titles[m1] = m4.replace(/\"/g, \""\");\r\n }\r\n\r\n // Completely remove the definition from the text\r\n return \"\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n };\r\n\r\n var _HashHTMLBlocks = function (text) {\r\n // attacklab: Double up blank lines to reduce lookaround\r\n text = text.replace(/\\n/g, \"\\n\\n\");\r\n\r\n // Hashify HTML blocks:\r\n // We only want to do this for block-level HTML tags, such as headers,\r\n // lists, and tables. That's because we still want to wrap

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

    \r\n //
    \r\n // tags for inner block must be indented.\r\n //
    \r\n //
    \r\n //\r\n // The outermost tags must start at the left margin for this to match, and\r\n // the inner nested divs must be indented.\r\n // We need to do this before the next, more liberal match, because the next\r\n // match will start at the first `
    ` and stop at the first `
    `.\r\n\r\n // attacklab: This regex can be expensive when it fails.\r\n /*\r\n var text = text.replace(/\r\n (\t\t\t\t\t\t// save in $1\r\n ^\t\t\t\t\t// start of line (with /m)\r\n <($block_tags_a)\t// start tag = $2\r\n \\b\t\t\t\t\t// word break\r\n // attacklab: hack around khtml/pcre bug...\r\n [^\\r]*?\\n\t\t\t// any number of lines, minimally matching\r\n \t\t\t\t// the matching end tag\r\n [ \\t]*\t\t\t\t// trailing spaces/tabs\r\n (?=\\n+)\t\t\t\t// followed by a newline\r\n )\t\t\t\t\t\t// attacklab: there are sentinel newlines at end of document\r\n /gm,function(){...}};\r\n */\r\n text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b[^\\r]*?\\n<\\/\\2>[ \\t]*(?=\\n+))/gm, hashElement);\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, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(\\n[ ]{0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(\\n\\n[ ]{0,3}[ \\t]*(?=\\n{2,}))/g, hashElement);\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,hashElement);\r\n */\r\n text = text.replace(/(?:\\n\\n)([ ]{0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g, hashElement);\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 var hashElement = 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\" + (g_html_blocks.push(blockText) - 1) + \"K\\n\\n\";\r\n\r\n return blockText;\r\n };\r\n\r\n var _RunBlockGamut = function (text) {\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\n text = _DoHeaders(text);\r\n\r\n // Do Horizontal Rules:\r\n var key = hashBlock(\"
    \");\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 = _DoLists(text);\r\n text = _DoCodeBlocks(text);\r\n text = _DoBlockQuotes(text);\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 = _HashHTMLBlocks(text);\r\n text = _FormParagraphs(text);\r\n\r\n return text;\r\n };\r\n\r\n var _RunSpanGamut = function (text) {\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\n\r\n text = _DoCodeSpans(text);\r\n text = _EscapeSpecialCharsWithinTagAttributes(text);\r\n text = _EncodeBackslashEscapes(text);\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 = _DoImages(text);\r\n text = _DoAnchors(text);\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 = _DoAutoLinks(text);\r\n text = _EncodeAmpsAndAngles(text);\r\n text = _DoItalicsAndBold(text);\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 var _EscapeSpecialCharsWithinTagAttributes = function (text) {\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\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 = escapeCharacters(tag, \"\\\\`*_\");\r\n return tag;\r\n });\r\n\r\n return text;\r\n };\r\n\r\n var _DoAnchors = function (text) {\r\n//\r\n// Turn Markdown link shortcuts into XHTML
    tags.\r\n//\r\n //\r\n // First, handle reference-style links: [link text] [id]\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 (\r\n (?:\r\n \\[[^\\]]*\\]\t\t// allow brackets nested one level\r\n |\r\n [^\\[]\t\t\t// or anything else\r\n )*\r\n )\r\n \\]\r\n\r\n [ ]?\t\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t\t// pad remaining backreferences\r\n /g,_DoAnchors_callback);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeAnchorTag);\r\n\r\n //\r\n // Next, inline-style links: [link text](url \"optional title\")\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n (\r\n (?:\r\n \\[[^\\]]*\\]\t// allow brackets nested one level\r\n |\r\n [^\\[\\]]\t\t\t// or anything else\r\n )\r\n )\r\n \\]\r\n \\(\t\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t\t// no id, so leave $3 empty\r\n ?\t\t\t\t// href = $4\r\n [ \\t]*\r\n (\t\t\t\t\t\t// $5\r\n (['\"])\t\t\t\t// quote char = $6\r\n (.*?)\t\t\t\t// Title = $7\r\n \\6\t\t\t\t\t// matching quote\r\n [ \\t]*\t\t\t\t// ignore any spaces/tabs between closing quote and )\r\n )?\t\t\t\t\t\t// title is optional\r\n \\)\r\n )\r\n /g,writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[((?:\\[[^\\]]*\\]|[^\\[\\]])*)\\]\\([ \\t]*()?[ \\t]*((['\"])(.*?)\\6[ \\t]*)?\\))/g, writeAnchorTag);\r\n\r\n //\r\n // Last, handle reference-style shortcuts: [link text]\r\n // These must come last in case you've also got [link test][1]\r\n // or [link test](/foo)\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t \t\t\t\t\t// wrap whole match in $1\r\n \\[\r\n ([^\\[\\]]+)\t\t\t\t// link text = $2; can't contain '[' or ']'\r\n \\]\r\n )()()()()()\t\t\t\t\t// pad rest of backreferences\r\n /g, writeAnchorTag);\r\n */\r\n text = text.replace(/(\\[([^\\[\\]]+)\\])()()()()()/g, writeAnchorTag);\r\n\r\n return text;\r\n };\r\n\r\n var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n if (m7 === undefined) m7 = \"\";\r\n var whole_match = m1;\r\n var link_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (url === \"\") {\r\n if (link_id === \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = link_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] !== undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] !== undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n if (whole_match.search(/\\(\\s*\\)$/m) > -1) {\r\n // Special case for explicit empty url\r\n url = \"\";\r\n } else {\r\n return whole_match;\r\n }\r\n }\r\n }\r\n\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"\" + link_text + \"\";\r\n\r\n return result;\r\n };\r\n\r\n var _DoImages = function (text) {\r\n//\r\n// Turn Markdown image shortcuts into tags.\r\n//\r\n\r\n //\r\n // First, handle reference-style labeled images: ![alt text][id]\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 (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n\r\n [ ]?\t\t\t\t// one optional space\r\n (?:\\n[ ]*)?\t\t\t// one optional newline followed by spaces\r\n\r\n \\[\r\n (.*?)\t\t\t\t// id = $3\r\n \\]\r\n )()()()()\t\t\t\t// pad rest of backreferences\r\n /g,writeImageTag);\r\n */\r\n text = text.replace(/(!\\[(.*?)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])()()()()/g, writeImageTag);\r\n\r\n //\r\n // Next, handle inline images: ![alt text](url \"optional title\")\r\n // Don't forget: encode * and _\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 (.*?)\t\t\t\t// alt text = $2\r\n \\]\r\n \\s?\t\t\t\t\t// One optional whitespace character\r\n \\(\t\t\t\t\t// literal paren\r\n [ \\t]*\r\n ()\t\t\t\t\t// no id, so leave $3 empty\r\n ?\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 var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) {\r\n var whole_match = m1;\r\n var alt_text = m2;\r\n var link_id = m3.toLowerCase();\r\n var url = m4;\r\n var title = m7;\r\n\r\n if (!title) title = \"\";\r\n\r\n if (url === \"\") {\r\n if (link_id === \"\") {\r\n // lower-case and turn embedded newlines into spaces\r\n link_id = alt_text.toLowerCase().replace(/ ?\\n/g, \" \");\r\n }\r\n url = \"#\" + link_id;\r\n\r\n if (g_urls[link_id] !== undefined) {\r\n url = g_urls[link_id];\r\n if (g_titles[link_id] !== undefined) {\r\n title = g_titles[link_id];\r\n }\r\n }\r\n else {\r\n return whole_match;\r\n }\r\n }\r\n\r\n alt_text = alt_text.replace(/\"/g, \""\");\r\n url = escapeCharacters(url, \"*_\");\r\n var result = \"\\\"\"\";\r\n\r\n return result;\r\n };\r\n\r\n var _DoHeaders = function (text) {\r\n\r\n // Setext-style headers:\r\n //\tHeader 1\r\n //\t========\r\n //\r\n //\tHeader 2\r\n //\t--------\r\n //\r\n text = text.replace(/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\r\n function (wholeMatch, m1) {\r\n return hashBlock('

    ' + _RunSpanGamut(m1) + \"

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

    ' + _RunSpanGamut(m1) + \"

    \");\r\n });\r\n\r\n // atx-style headers:\r\n // # Header 1\r\n // ## Header 2\r\n // ## Header 2 with closing hashes ##\r\n // ...\r\n // ###### Header 6\r\n //\r\n\r\n /*\r\n text = text.replace(/\r\n ^(\\#{1,6})\t\t\t\t// $1 = string of #'s\r\n [ \\t]*\r\n (.+?)\t\t\t\t\t// $2 = Header text\r\n [ \\t]*\r\n \\#*\t\t\t\t\t\t// optional closing #'s (not counted)\r\n \\n+\r\n /gm, function() {...});\r\n */\r\n\r\n text = text.replace(/^(\\#{1,6})[ \\t]*(.+?)[ \\t]*\\#*\\n+/gm,\r\n function (wholeMatch, m1, m2) {\r\n var h_level = m1.length;\r\n return hashBlock(\"' + _RunSpanGamut(m2) + \"\");\r\n });\r\n\r\n function headerId(m) {\r\n return m.replace(/[^\\w]/g, '').toLowerCase();\r\n }\r\n\r\n return text;\r\n };\r\n\r\n// This declaration keeps Dojo compressor from outputting garbage:\r\n var _ProcessListItems;\r\n\r\n var _DoLists = function (text) {\r\n//\r\n// Form HTML ordered (numbered) and unordered (bulleted) lists.\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 whole_list = /^(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm;\r\n\r\n if (g_list_level) {\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2) {\r\n var list = m1;\r\n var list_type = (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 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 = \"<\" + list_type + \">\" + result + \"\\n\";\r\n return result;\r\n });\r\n } else {\r\n whole_list = /(\\n\\n|^\\n?)(([ ]{0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(~0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/g;\r\n text = text.replace(whole_list, function (wholeMatch, m1, m2, m3) {\r\n var runup = m1;\r\n var list = m2;\r\n\r\n var list_type = (m3.search(/[*+-]/g) > -1) ? \"ul\" : \"ol\";\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 var result = _ProcessListItems(list);\r\n result = runup + \"<\" + list_type + \">\\n\" + result + \"\\n\";\r\n return result;\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 _ProcessListItems = function (list_str) {\r\n//\r\n// Process the contents of a single ordered or unordered list, splitting it\r\n// into individual list items.\r\n//\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 g_list_level++;\r\n\r\n // trim trailing blank lines:\r\n list_str = list_str.replace(/\\n{2,}$/, \"\\n\");\r\n\r\n // attacklab: add sentinel to emulate \\z\r\n list_str += \"~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 list_str = list_str.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 = m4;\r\n var leading_line = m1;\r\n var leading_space = m2;\r\n\r\n if (leading_line || (item.search(/\\n{2,}/) > -1)) {\r\n item = _RunBlockGamut(_Outdent(item));\r\n }\r\n else {\r\n // Recursion for sub-lists:\r\n item = _DoLists(_Outdent(item));\r\n item = item.replace(/\\n$/, \"\"); // chomp(item)\r\n item = _RunSpanGamut(item);\r\n }\r\n\r\n return \"
  • \" + item + \"
  • \\n\";\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n list_str = list_str.replace(/~0/g, \"\");\r\n\r\n g_list_level--;\r\n return list_str;\r\n };\r\n\r\n var _DoCodeBlocks = function (text) {\r\n//\r\n// Process Markdown `
    ` blocks.\r\n//\r\n\r\n        /*\r\n         text = text.replace(text,\r\n         /(?:\\n\\n|^)\r\n         (\t\t\t\t\t\t\t\t// $1 = the code block -- one or more lines, starting with a space/tab\r\n         (?:\r\n         (?:[ ]{4}|\\t)\t\t\t// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width\r\n         .*\\n+\r\n         )+\r\n         )\r\n         (\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))\t// attacklab: g_tab_width\r\n         /g,function(){...});\r\n         */\r\n\r\n        // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n        text += \"~0\";\r\n\r\n        text = text.replace(/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=~0))/g,\r\n            function (wholeMatch, m1, m2) {\r\n                var codeblock = m1;\r\n                var nextChar = m2;\r\n\r\n                codeblock = _EncodeCode(_Outdent(codeblock));\r\n                codeblock = _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 hashBlock(codeblock) + nextChar;\r\n }\r\n );\r\n\r\n // attacklab: strip sentinel\r\n text = text.replace(/~0/, \"\");\r\n\r\n return text;\r\n };\r\n\r\n var _DoGithubCodeBlocks = function (text) {\r\n//\r\n// Process Github-style code blocks\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\n\r\n\r\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\r\n text += \"~0\";\r\n\r\n text = text.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,\r\n function (wholeMatch, m1, m2) {\r\n var language = m1;\r\n var codeblock = m2;\r\n\r\n codeblock = _EncodeCode(codeblock);\r\n codeblock = _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 hashBlock(codeblock);\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 var hashBlock = function (text) {\r\n text = text.replace(/(^\\n+|\\n+$)/g, \"\");\r\n return \"\\n\\n~K\" + (g_html_blocks.push(text) - 1) + \"K\\n\\n\";\r\n };\r\n\r\n var _DoCodeSpans = function (text) {\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//\t include literal backticks in the code span. So, this input:\r\n//\r\n//\t\t Just type ``foo `bar` baz`` at the prompt.\r\n//\r\n//\t Will translate to:\r\n//\r\n//\t\t

    Just type foo `bar` baz at the prompt.

    \r\n//\r\n//\tThere's no arbitrary limit to the number of backticks you\r\n//\tcan use as delimters. If you need three consecutive backticks\r\n//\tin 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//\t\t ... type `` `bar` `` ...\r\n//\r\n//\t Turns to:\r\n//\r\n//\t\t ... type `bar` ...\r\n//\r\n\r\n /*\r\n text = text.replace(/\r\n (^|[^\\\\])\t\t\t\t\t// Character before opening ` can't be a backslash\r\n (`+)\t\t\t\t\t\t// $2 = Opening run of `\r\n (\t\t\t\t\t\t\t// $3 = The code block\r\n [^\\r]*?\r\n [^`]\t\t\t\t\t// attacklab: work around lack of lookbehind\r\n )\r\n \\2\t\t\t\t\t\t\t// Matching closer\r\n (?!`)\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\r\n function (wholeMatch, m1, m2, m3, m4) {\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 = _EncodeCode(c);\r\n return m1 + \"\" + c + \"\";\r\n });\r\n\r\n return text;\r\n };\r\n\r\n var _EncodeCode = function (text) {\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\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 = escapeCharacters(text, \"\\*_{}[]\\\\\", false);\r\n\r\n// jj the line above breaks this:\r\n//---\r\n\r\n//* Item\r\n\r\n// 1. Subitem\r\n\r\n// special char: *\r\n//---\r\n\r\n return text;\r\n };\r\n\r\n var _DoItalicsAndBold = function (text) {\r\n\r\n // must go first:\r\n text = text.replace(/(\\*\\*|__)(?=\\S)([^\\r]*?\\S[*_]*)\\1/g,\r\n \"$2\");\r\n\r\n text = text.replace(/(\\*|_)(?=\\S)([^\\r]*?\\S)\\1/g,\r\n \"$2\");\r\n\r\n return text;\r\n };\r\n\r\n var _DoBlockQuotes = function (text) {\r\n\r\n /*\r\n text = text.replace(/\r\n (\t\t\t\t\t\t\t\t// Wrap whole match in $1\r\n (\r\n ^[ \\t]*>[ \\t]?\t\t\t// '>' at the start of a line\r\n .+\\n\t\t\t\t\t// rest of the first line\r\n (.+\\n)*\t\t\t\t\t// subsequent consecutive lines\r\n \\n*\t\t\t\t\t\t// blanks\r\n )+\r\n )\r\n /gm, function(){...});\r\n */\r\n\r\n text = text.replace(/((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,\r\n function (wholeMatch, m1) {\r\n var bq = m1;\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\r\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, \"~0\");\t// 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, \"\");\t\t// trim whitespace-only lines\r\n bq = _RunBlockGamut(bq);\t\t\t\t// recurse\r\n\r\n bq = bq.replace(/(^|\\n)/g, \"$1 \");\r\n // These leading spaces screw with
     content, so we need to fix that:\r\n                bq = bq.replace(\r\n                    /(\\s*
    [^\\r]+?<\\/pre>)/gm,\r\n                    function (wholeMatch, m1) {\r\n                        var pre = m1;\r\n                        // attacklab: hack around Konqueror 3.5.4 bug:\r\n                        pre = pre.replace(/^  /mg, \"~0\");\r\n                        pre = pre.replace(/~0/g, \"\");\r\n                        return pre;\r\n                    });\r\n\r\n                return hashBlock(\"
    \\n\" + bq + \"\\n
    \");\r\n });\r\n return text;\r\n };\r\n\r\n var _FormParagraphs = function (text) {\r\n//\r\n// Params:\r\n// $text - string to process with html

    tags\r\n//\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 var grafsOut = [];\r\n\r\n //\r\n // Wrap

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

    \");\r\n str += \"

    \";\r\n grafsOut.push(str);\r\n }\r\n\r\n }\r\n\r\n //\r\n // Unhashify HTML blocks\r\n //\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 = g_html_blocks[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 var _EncodeAmpsAndAngles = function (text) {\r\n// Smart processing for ampersands and angle brackets that need to be encoded.\r\n\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 var _EncodeBackslashEscapes = function (text) {\r\n//\r\n// Parameter: String.\r\n// Returns:\tThe string, with after processing the following backslash\r\n//\t\t\t escape sequences.\r\n//\r\n\r\n // attacklab: The polite way to do this is with the new\r\n // escapeCharacters() function:\r\n //\r\n // \ttext = escapeCharacters(text,\"\\\\\",true);\r\n // \ttext = 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\n text = text.replace(/\\\\(\\\\)/g, escapeCharacters_callback);\r\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+-.!])/g, escapeCharacters_callback);\r\n return text;\r\n };\r\n\r\n var _DoAutoLinks = function (text) {\r\n\r\n text = text.replace(/<((https?|ftp|dict):[^'\">\\s]+)>/gi, \"$1\");\r\n\r\n // Email addresses: \r\n\r\n /*\r\n text = text.replace(/\r\n <\r\n (?:mailto:)?\r\n (\r\n [-.\\w]+\r\n \\@\r\n [-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+\r\n )\r\n >\r\n /gi, _DoAutoLinks_callback());\r\n */\r\n text = text.replace(/<(?:mailto:)?([-.\\w]+\\@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\r\n function (wholeMatch, m1) {\r\n return _EncodeEmailAddress(_UnescapeSpecialChars(m1));\r\n }\r\n );\r\n\r\n return text;\r\n };\r\n\r\n var _EncodeEmailAddress = function (addr) {\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//\tof the address encoded as either a decimal or hex entity, in\r\n//\tthe hopes of foiling most address harvesting spam bots. E.g.:\r\n//\r\n//\tfoo\r\n//\t @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\n var encode = [\r\n function (ch) {\r\n return \"&#\" + ch.charCodeAt(0) + \";\";\r\n },\r\n function (ch) {\r\n return \"&#x\" + ch.charCodeAt(0).toString(16) + \";\";\r\n },\r\n function (ch) {\r\n return ch;\r\n }\r\n ];\r\n\r\n addr = \"mailto:\" + addr;\r\n\r\n addr = addr.replace(/./g, function (ch) {\r\n if (ch == \"@\") {\r\n // this *must* be encoded. I insist.\r\n ch = encode[Math.floor(Math.random() * 2)](ch);\r\n } else if (ch != \":\") {\r\n // leave ':' alone (to spot mailto: later)\r\n var r = Math.random();\r\n // roughly 10% raw, 45% hex, 45% dec\r\n ch = (\r\n r > 0.9 ? encode[2](ch) :\r\n r > 0.45 ? encode[1](ch) :\r\n encode[0](ch)\r\n );\r\n }\r\n return ch;\r\n });\r\n\r\n addr = \"\" + addr + \"\";\r\n addr = addr.replace(/\">.+:/g, \"\\\">\"); // strip the mailto: from the visible part\r\n\r\n return addr;\r\n };\r\n\r\n var _UnescapeSpecialChars = function (text) {\r\n//\r\n// Swap back in all the special characters we've hidden.\r\n//\r\n text = text.replace(/~E(\\d+)E/g,\r\n function (wholeMatch, m1) {\r\n var charCodeToReplace = parseInt(m1);\r\n return String.fromCharCode(charCodeToReplace);\r\n }\r\n );\r\n return text;\r\n };\r\n\r\n var _Outdent = function (text) {\r\n//\r\n// Remove one level of line-leading tabs or spaces\r\n//\r\n\r\n // attacklab: hack around Konqueror 3.5.4 bug:\r\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\r\n\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 var _Detab = function (text) {\r\n// attacklab: Detab's completely rewritten for speed.\r\n// In perl we could fix it by anchoring the regexp with \\G.\r\n// In javascript we're less fortunate.\r\n\r\n // expand first n-1 tabs\r\n text = text.replace(/\\t(?=\\t)/g, \" \"); // attacklab: g_tab_width\r\n\r\n // replace the nth with two sentinels\r\n text = text.replace(/\\t/g, \"~A~B\");\r\n\r\n // use the sentinel to anchor our regex so it doesn't explode\r\n text = text.replace(/~B(.+?)~A/g,\r\n function (wholeMatch, m1, m2) {\r\n var leadingText = m1;\r\n var numSpaces = 4 - leadingText.length % 4; // attacklab: 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++) leadingText += \" \";\r\n\r\n return leadingText;\r\n }\r\n );\r\n\r\n // clean up sentinels\r\n text = text.replace(/~A/g, \" \"); // attacklab: g_tab_width\r\n text = text.replace(/~B/g, \"\");\r\n\r\n return text;\r\n };\r\n\r\n\r\n//\r\n// attacklab: Utility functions\r\n//\r\n\r\n\r\n var escapeCharacters = function (text, charsToEscape, afterBackslash) {\r\n // First we have to escape the escape characters so that\r\n // we can build a character class out of them\r\n var regexString = \"([\" + charsToEscape.replace(/([\\[\\]\\\\])/g, \"\\\\$1\") + \"])\";\r\n\r\n if (afterBackslash) {\r\n regexString = \"\\\\\\\\\" + regexString;\r\n }\r\n\r\n var regex = new RegExp(regexString, \"g\");\r\n text = text.replace(regex, escapeCharacters_callback);\r\n\r\n return text;\r\n };\r\n\r\n\r\n var escapeCharacters_callback = function (wholeMatch, m1) {\r\n var charCodeToEscape = m1.charCodeAt(0);\r\n return \"~E\" + charCodeToEscape + \"E\";\r\n };\r\n\r\n}; // end of Showdown.converter\r\n\r\n\r\n// export\r\nif (typeof module !== 'undefined') module.exports = Showdown;\r\n\r\n// stolen from AMD branch of underscore\r\n// AMD define happens at the end for compatibility with AMD loaders\r\n// that don't enforce next-turn semantics on modules.\r\nif (typeof define === 'function' && define.amd) {\r\n define('showdown', function () {\r\n return Showdown;\r\n });\r\n}\r\n","/**\r\n * Created by Tivie on 04-11-2014.\r\n */\r\n\r\n\r\n//Check if AngularJs and Showdown is defined and only load ng-Showdown if both are present\r\nif (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') {\r\n\r\n (function (module, Showdown) {\r\n\r\n module\r\n .provider('$Showdown', provider)\r\n .directive('sdModelToHtml', ['$Showdown', '$sanitize', markdownToHtmlDirective])\r\n .filter('sdStripHtml', stripHtmlFilter);\r\n\r\n /**\r\n * Angular Provider\r\n * Enables configuration of showdown via angular.config and Dependency Injection into controllers, views\r\n * directives, etc... This assures the directives and filters provided by the library itself stay consistent\r\n * with the user configurations.\r\n * If the user wants to use a different configuration in a determined context, he can use the \"classic\" Showdown\r\n * object instead.\r\n *\r\n */\r\n function provider() {\r\n\r\n // Configuration parameters for Showdown\r\n var config = {\r\n extensions: [],\r\n stripHtml: true\r\n };\r\n\r\n /**\r\n * Sets a configuration option\r\n *\r\n * @param {string} key Config parameter key\r\n * @param {string} value Config parameter value\r\n */\r\n this.setOption = function (key, value) {\r\n config.key = value;\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the value of the configuration parameter specified by key\r\n *\r\n * @param {string} key The config parameter key\r\n * @returns {string|null} Returns the value of the config parameter. (or null if the config parameter is not set)\r\n */\r\n this.getOption = function (key) {\r\n if (config.hasOwnProperty(key)) {\r\n return config.key;\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /**\r\n * Loads a Showdown Extension\r\n *\r\n * @param {string} extensionName The name of the extension to load\r\n */\r\n this.loadExtension = function (extensionName) {\r\n config.extensions.push(extensionName);\r\n\r\n return this;\r\n };\r\n\r\n function SDObject() {\r\n var converter = new Showdown.converter(config);\r\n\r\n /**\r\n * Converts a markdown text into HTML\r\n *\r\n * @param {string} markdown The markdown string to be converted to HTML\r\n * @returns {string} The converted HTML\r\n */\r\n this.makeHtml = function (markdown) {\r\n return converter.makeHtml(markdown);\r\n };\r\n\r\n /**\r\n * Strips a text of it's HTML tags\r\n *\r\n * @param {string} text\r\n * @returns {string}\r\n */\r\n this.stripHtml = function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n // The object returned by service provider\r\n this.$get = function () {\r\n return new SDObject();\r\n };\r\n }\r\n\r\n /**\r\n * AngularJS Directive to Md to HTML transformation\r\n *\r\n * Usage example:\r\n *
    \r\n *\r\n * @param $Showdown\r\n * @param $sanitize\r\n * @returns {*}\r\n */\r\n function markdownToHtmlDirective($Showdown, $sanitize) {\r\n\r\n var link = function (scope, element) {\r\n scope.$watch('model', function (newValue) {\r\n var val;\r\n if (typeof newValue === 'string') {\r\n val = $sanitize($Showdown.makeHtml(newValue));\r\n } else {\r\n val = typeof newValue;\r\n }\r\n element.html(val);\r\n });\r\n };\r\n\r\n return {\r\n restrict: 'A',\r\n link: link,\r\n scope: {\r\n model: '=sdModelToHtml'\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * AngularJS Filter to Strip HTML tags from text\r\n *\r\n * @returns {Function}\r\n */\r\n function stripHtmlFilter() {\r\n return function (text) {\r\n return String(text).replace(/<[^>]+>/gm, '');\r\n };\r\n }\r\n\r\n })(angular.module('Showdown', ['ngSanitize']), Showdown);\r\n\r\n} else {\r\n\r\n /** TODO Since this library is opt out, maybe we should not throw an error so we can concatenate this\r\n script with the main lib */\r\n // throw new Error(\"ng-showdown was not loaded because one of it's dependencies (AngularJS or Showdown) wasn't met\");\r\n}\r\n"]} \ No newline at end of file diff --git a/compressed/showdown.min.js b/compressed/showdown.min.js index 7aeac79..01a4e77 100644 --- a/compressed/showdown.min.js +++ b/compressed/showdown.min.js @@ -1,2 +1,2 @@ /*! showdown 27-05-2015 */ -var Showdown={extensions:{}},forEach=Showdown.forEach=function(a,b){if("function"==typeof a.forEach)a.forEach(b);else{var c,d=a.length;for(c=0;d>c;c++)b(a[c],c,a)}},stdExtName=function(a){return a.replace(/[_-]||\s/g,"").toLowerCase()};Showdown.converter=function(a){var b,c,d,e=0,f=[],g=[];if("undefined"!=typeof module&&"undefined"!=typeof exports&&"undefined"!=typeof require){var h=require("fs");if(h){var i=h.readdirSync((__dirname||".")+"/extensions").filter(function(a){return~a.indexOf(".js")}).map(function(a){return a.replace(/\.js$/,"")});Showdown.forEach(i,function(a){var b=stdExtName(a);Showdown.extensions[b]=require("./extensions/"+a)})}}if(this.makeHtml=function(a){return b={},c={},d=[],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",a=M(a),a=a.replace(/^[ \t]+$/gm,""),Showdown.forEach(f,function(b){a=l(b,a)}),a=z(a),a=n(a),a=m(a),a=p(a),a=K(a),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),Showdown.forEach(g,function(b){a=l(b,a)}),a},a&&a.extensions){var j=this;Showdown.forEach(a.extensions,function(a){var b=a;if("string"==typeof a&&(a=Showdown.extensions[stdExtName(a)]),"function"!=typeof a)throw"Extension '"+b+"' could not be loaded. It was either not found or is not a valid extension.";Showdown.forEach(a(j),function(a){a.type?"language"===a.type||"lang"===a.type?f.push(a):("output"===a.type||"html"===a.type)&&g.push(a):g.push(a)})})}var k,l=function(a,b){if(a.regex){var c=new RegExp(a.regex,"g");return b.replace(c,a.replace)}return a.filter?a.filter(b):void 0},m=function(a){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=G(e),f?f+g:(g&&(c[d]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")},n=function(a){a=a.replace(/\n/g,"\n\n");return 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,o),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,o),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/\n\n/g,"\n")},o=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n"},p=function(a){a=w(a);var b=A("
    ");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=x(a),a=y(a),a=E(a),a=n(a),a=F(a)},q=function(a){return a=B(a),a=r(a),a=H(a),a=u(a),a=s(a),a=I(a),a=G(a),a=D(a),a=a.replace(/ +\n/g,"
    \n")},r=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=N(b,"\\`*_")})},s=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,t)},t=function(a,d,e,f,g,h,i,j){void 0==j&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(""==n)if(""==m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0!=b[m])n=b[m],void 0!=c[m]&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}n=N(n,"*_");var p='"},u=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,v),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,v)},v=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(o||(o=""),""==n){if(""==m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0==b[m])return k;n=b[m],void 0!=c[m]&&(o=c[m])}l=l.replace(/"/g,"""),n=N(n,"*_");var p=''+l+''+q(c)+"")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return A('

    '+q(c)+"

    ")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return A("'+q(d)+"")})},x=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=k(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"\n"}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol",f=f.replace(/\n{2,}/g,"\n\n\n"),h=k(f);return h=e+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")};k=function(a){return e++,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,b,c,d,e){var f=e,g=b;return g||f.search(/\n{2,}/)>-1?f=p(L(f)):(f=x(L(f)),f=f.replace(/\n$/,""),f=q(f)),"
  • "+f+"
  • \n"}),a=a.replace(/~0/g,""),e--,a};var y=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=C(L(d)),d=M(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="
    "+d+"\n
    ",A(d)+e}),a=a.replace(/~0/,"")},z=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=C(e),e=M(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="
    "+e+"\n
    ",A(e)}),a=a.replace(/~0/,"")},A=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},B=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d,e){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=C(f),b+""+f+""})},C=function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=N(a,"*_{}[]\\",!1)},D=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")},E=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=p(c),c=c.replace(/(^|\n)/g,"$1 "),c=c.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,"~0"),c=c.replace(/~0/g,"")}),A("
    \n"+c+"\n
    ")})},F=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var b=a.split(/\n{2,}/g),c=[],e=b.length,f=0;e>f;f++){var g=b[f];g.search(/~K(\d+)K/g)>=0?c.push(g):g.search(/\S/)>=0&&(g=q(g),g=g.replace(/^([ \t]*)/g,"

    "),g+="

    ",c.push(g))}e=c.length;for(var f=0;e>f;f++)for(;c[f].search(/~K(\d+)K/)>=0;){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},G=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")},H=function(a){return a=a.replace(/\\(\\)/g,O),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,O)},I=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'
    $1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return J(K(b))})},J=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"==a)a=b[Math.floor(2*Math.random())](a);else if(":"!=a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">')},K=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})},L=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")},M=function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b,c){for(var d=b,e=4-d.length%4,f=0;e>f;f++)d+=" ";return d}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")},N=function(a,b,c){var d="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";c&&(d="\\\\"+d);var e=new RegExp(d,"g");return a=a.replace(e,O)},O=function(a,b){var c=b.charCodeAt(0);return"~E"+c+"E"}},"undefined"!=typeof module&&(module.exports=Showdown),"function"==typeof define&&define.amd&&define("showdown",function(){return Showdown}),"undefined"!=typeof angular&&"undefined"!=typeof Showdown&&!function(a,b){function c(){function a(){var a=new b.converter(c);this.makeHtml=function(b){return a.makeHtml(b)},this.stripHtml=function(a){return String(a).replace(/<[^>]+>/gm,"")}}var c={extensions:[],stripHtml:!0};this.setOption=function(a,b){return c.key=b,this},this.getOption=function(a){return c.hasOwnProperty(a)?c.key:null},this.loadExtension=function(a){return c.extensions.push(a),this},this.$get=function(){return new a}}function d(a,b){var c=function(c,d){c.$watch("model",function(c){var e;e="string"==typeof c?b(a.makeHtml(c)):typeof c,d.html(e)})};return{restrict:"A",link:c,scope:{model:"=sdModelToHtml"}}}function e(){return function(a){return String(a).replace(/<[^>]+>/gm,"")}}a.provider("$Showdown",c).directive("sdModelToHtml",["$Showdown","$sanitize",d]).filter("sdStripHtml",e)}(angular.module("Showdown",["ngSanitize"]),Showdown); \ No newline at end of file +var Showdown={extensions:{}},forEach=Showdown.forEach=function(a,b){if("function"==typeof a.forEach)a.forEach(b);else{var c,d=a.length;for(c=0;d>c;c++)b(a[c],c,a)}},stdExtName=function(a){return a.replace(/[_-]||\s/g,"").toLowerCase()};Showdown.converter=function(a){var b,c,d,e=0,f=[],g=[];if("undefined"!=typeof module&&"undefined"!=typeof exports&&"undefined"!=typeof require){var h=require("fs");if(h){var i=h.readdirSync((__dirname||".")+"/extensions").filter(function(a){return~a.indexOf(".js")}).map(function(a){return a.replace(/\.js$/,"")});Showdown.forEach(i,function(a){var b=stdExtName(a);Showdown.extensions[b]=require("./extensions/"+a)})}}if(this.makeHtml=function(a){return b={},c={},d=[],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",a=M(a),a=a.replace(/^[ \t]+$/gm,""),Showdown.forEach(f,function(b){a=l(b,a)}),a=z(a),a=n(a),a=m(a),a=p(a),a=K(a),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),Showdown.forEach(g,function(b){a=l(b,a)}),a},a&&a.extensions){var j=this;Showdown.forEach(a.extensions,function(a){var b=a;if("string"==typeof a&&(a=Showdown.extensions[stdExtName(a)]),"function"!=typeof a)throw"Extension '"+b+"' could not be loaded. It was either not found or is not a valid extension.";Showdown.forEach(a(j),function(a){a.type?"language"===a.type||"lang"===a.type?f.push(a):("output"===a.type||"html"===a.type)&&g.push(a):g.push(a)})})}var k,l=function(a,b){if(a.regex){var c=new RegExp(a.regex,"g");return b.replace(c,a.replace)}return a.filter?a.filter(b):void 0},m=function(a){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=G(e),f?f+g:(g&&(c[d]=g.replace(/"/g,""")),"")}),a=a.replace(/~0/,"")},n=function(a){a=a.replace(/\n/g,"\n\n");return 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,o),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,o),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(\n\n[ ]{0,3}[ \t]*(?=\n{2,}))/g,o),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,o),a=a.replace(/\n\n/g,"\n")},o=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n"},p=function(a){a=w(a);var b=A("
    ");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=x(a),a=y(a),a=E(a),a=n(a),a=F(a)},q=function(a){return a=B(a),a=r(a),a=H(a),a=u(a),a=s(a),a=I(a),a=G(a),a=D(a),a=a.replace(/ +\n/g,"
    \n")},r=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=N(b,"\\`*_")})},s=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,t)},t=function(a,d,e,f,g,h,i,j){void 0===j&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(""===n)if(""===m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0!==b[m])n=b[m],void 0!==c[m]&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}n=N(n,"*_");var p='"},u=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,v),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,v)},v=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(o||(o=""),""===n){if(""===m&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m,void 0===b[m])return k;n=b[m],void 0!==c[m]&&(o=c[m])}l=l.replace(/"/g,"""),n=N(n,"*_");var p=''+l+''+q(c)+"")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return A('

    '+q(c)+"

    ")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return A("'+q(d)+"")})},x=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=k(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"\n"}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol";f=f.replace(/\n{2,}/g,"\n\n\n");var h=k(f);return h=e+"<"+g+">\n"+h+"\n"})),a=a.replace(/~0/,"")};k=function(a){return e++,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,b,c,d,e){var f=e,g=b;return g||f.search(/\n{2,}/)>-1?f=p(L(f)):(f=x(L(f)),f=f.replace(/\n$/,""),f=q(f)),"
  • "+f+"
  • \n"}),a=a.replace(/~0/g,""),e--,a};var y=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=C(L(d)),d=M(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="
    "+d+"\n
    ",A(d)+e}),a=a.replace(/~0/,"")},z=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=C(e),e=M(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="
    "+e+"\n
    ",A(e)}),a=a.replace(/~0/,"")},A=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},B=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d,e){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=C(f),b+""+f+""})},C=function(a){return a=a.replace(/&/g,"&"),a=a.replace(//g,">"),a=N(a,"*_{}[]\\",!1)},D=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"$2"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"$2")},E=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=p(c),c=c.replace(/(^|\n)/g,"$1 "),c=c.replace(/(\s*
    [^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,"~0"),c=c.replace(/~0/g,"")}),A("
    \n"+c+"\n
    ")})},F=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");for(var b=a.split(/\n{2,}/g),c=[],e=b.length,f=0;e>f;f++){var g=b[f];g.search(/~K(\d+)K/g)>=0?c.push(g):g.search(/\S/)>=0&&(g=q(g),g=g.replace(/^([ \t]*)/g,"

    "),g+="

    ",c.push(g))}for(e=c.length,f=0;e>f;f++)for(;c[f].search(/~K(\d+)K/)>=0;){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},G=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&"),a=a.replace(/<(?![a-z\/?\$!])/gi,"<")},H=function(a){return a=a.replace(/\\(\\)/g,O),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,O)},I=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'
    $1'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return J(K(b))})},J=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if("@"==a)a=b[Math.floor(2*Math.random())](a);else if(":"!=a){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a=''+a+"",a=a.replace(/">.+:/g,'">')},K=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)})},L=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,"")},M=function(a){return a=a.replace(/\t(?=\t)/g," "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b,c){for(var d=b,e=4-d.length%4,f=0;e>f;f++)d+=" ";return d}),a=a.replace(/~A/g," "),a=a.replace(/~B/g,"")},N=function(a,b,c){var d="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";c&&(d="\\\\"+d);var e=new RegExp(d,"g");return a=a.replace(e,O)},O=function(a,b){var c=b.charCodeAt(0);return"~E"+c+"E"}},"undefined"!=typeof module&&(module.exports=Showdown),"function"==typeof define&&define.amd&&define("showdown",function(){return Showdown}),"undefined"!=typeof angular&&"undefined"!=typeof Showdown&&!function(a,b){function c(){function a(){var a=new b.converter(c);this.makeHtml=function(b){return a.makeHtml(b)},this.stripHtml=function(a){return String(a).replace(/<[^>]+>/gm,"")}}var c={extensions:[],stripHtml:!0};this.setOption=function(a,b){return c.key=b,this},this.getOption=function(a){return c.hasOwnProperty(a)?c.key:null},this.loadExtension=function(a){return c.extensions.push(a),this},this.$get=function(){return new a}}function d(a,b){var c=function(c,d){c.$watch("model",function(c){var e;e="string"==typeof c?b(a.makeHtml(c)):typeof c,d.html(e)})};return{restrict:"A",link:c,scope:{model:"=sdModelToHtml"}}}function e(){return function(a){return String(a).replace(/<[^>]+>/gm,"")}}a.provider("$Showdown",c).directive("sdModelToHtml",["$Showdown","$sanitize",d]).filter("sdStripHtml",e)}(angular.module("Showdown",["ngSanitize"]),Showdown); \ No newline at end of file diff --git a/src/ng-showdown.js b/src/ng-showdown.js index 42bab23..8073ce0 100644 --- a/src/ng-showdown.js +++ b/src/ng-showdown.js @@ -104,6 +104,7 @@ if (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') { *
    * * @param $Showdown + * @param $sanitize * @returns {*} */ function markdownToHtmlDirective($Showdown, $sanitize) { @@ -126,7 +127,7 @@ if (typeof angular !== 'undefined' && typeof Showdown !== 'undefined') { scope: { model: '=sdModelToHtml' } - } + }; } /** diff --git a/src/showdown.js b/src/showdown.js index 0505fb0..cf3de2d 100644 --- a/src/showdown.js +++ b/src/showdown.js @@ -314,7 +314,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; var _HashHTMLBlocks = function (text) { // attacklab: Double up blank lines to reduce lookaround @@ -438,7 +438,7 @@ Showdown.converter = function (converter_options) { // attacklab: Undo double lines (see comment at top of this function) text = text.replace(/\n\n/g, "\n"); return text; - } + }; var hashElement = function (wholeMatch, m1) { var blockText = m1; @@ -509,7 +509,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/ +\n/g, "
    \n"); return text; - } + }; var _EscapeSpecialCharsWithinTagAttributes = function (text) { // @@ -528,7 +528,7 @@ Showdown.converter = function (converter_options) { }); return text; - } + }; var _DoAnchors = function (text) { // @@ -613,26 +613,26 @@ Showdown.converter = function (converter_options) { text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag); return text; - } + }; var writeAnchorTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) { - if (m7 == undefined) m7 = ""; + if (m7 === undefined) m7 = ""; var whole_match = m1; var link_text = m2; var link_id = m3.toLowerCase(); var url = m4; var title = m7; - if (url == "") { - if (link_id == "") { + if (url === "") { + if (link_id === "") { // lower-case and turn embedded newlines into spaces link_id = link_text.toLowerCase().replace(/ ?\n/g, " "); } url = "#" + link_id; - if (g_urls[link_id] != undefined) { + if (g_urls[link_id] !== undefined) { url = g_urls[link_id]; - if (g_titles[link_id] != undefined) { + if (g_titles[link_id] !== undefined) { title = g_titles[link_id]; } } @@ -649,7 +649,7 @@ Showdown.converter = function (converter_options) { url = escapeCharacters(url, "*_"); var result = ""; return result; - } + }; var _DoImages = function (text) { // @@ -716,7 +716,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeImageTag); return text; - } + }; var writeImageTag = function (wholeMatch, m1, m2, m3, m4, m5, m6, m7) { var whole_match = m1; @@ -727,16 +727,16 @@ Showdown.converter = function (converter_options) { if (!title) title = ""; - if (url == "") { - if (link_id == "") { + if (url === "") { + if (link_id === "") { // lower-case and turn embedded newlines into spaces link_id = alt_text.toLowerCase().replace(/ ?\n/g, " "); } url = "#" + link_id; - if (g_urls[link_id] != undefined) { + if (g_urls[link_id] !== undefined) { url = g_urls[link_id]; - if (g_titles[link_id] != undefined) { + if (g_titles[link_id] !== undefined) { title = g_titles[link_id]; } } @@ -761,7 +761,7 @@ Showdown.converter = function (converter_options) { result += " />"; return result; - } + }; var _DoHeaders = function (text) { @@ -812,7 +812,7 @@ Showdown.converter = function (converter_options) { } return text; - } + }; // This declaration keeps Dojo compressor from outputting garbage: var _ProcessListItems; @@ -859,7 +859,6 @@ Showdown.converter = function (converter_options) { // Turn double returns into triple returns, so that we can make a // paragraph for the last item in a list, if necessary: list = list.replace(/\n{2,}/g, "\n\n\n"); - ; var result = _ProcessListItems(list); // Trim any trailing whitespace, to put the closing `` @@ -879,8 +878,7 @@ Showdown.converter = function (converter_options) { var list_type = (m3.search(/[*+-]/g) > -1) ? "ul" : "ol"; // Turn double returns into triple returns, so that we can make a // paragraph for the last item in a list, if necessary: - var list = list.replace(/\n{2,}/g, "\n\n\n"); - ; + list = list.replace(/\n{2,}/g, "\n\n\n"); var result = _ProcessListItems(list); result = runup + "<" + list_type + ">\n" + result + "\n"; return result; @@ -891,7 +889,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; _ProcessListItems = function (list_str) { // @@ -962,7 +960,7 @@ Showdown.converter = function (converter_options) { g_list_level--; return list_str; - } + }; var _DoCodeBlocks = function (text) { // @@ -1042,12 +1040,12 @@ Showdown.converter = function (converter_options) { text = text.replace(/~0/, ""); return text; - } + }; var hashBlock = function (text) { text = text.replace(/(^\n+|\n+$)/g, ""); return "\n\n~K" + (g_html_blocks.push(text) - 1) + "K\n\n"; - } + }; var _DoCodeSpans = function (text) { // @@ -1098,7 +1096,7 @@ Showdown.converter = function (converter_options) { }); return text; - } + }; var _EncodeCode = function (text) { // @@ -1128,7 +1126,7 @@ Showdown.converter = function (converter_options) { //--- return text; - } + }; var _DoItalicsAndBold = function (text) { @@ -1140,7 +1138,7 @@ Showdown.converter = function (converter_options) { "$2"); return text; - } + }; var _DoBlockQuotes = function (text) { @@ -1187,7 +1185,7 @@ Showdown.converter = function (converter_options) { return hashBlock("
    \n" + bq + "\n
    "); }); return text; - } + }; var _FormParagraphs = function (text) { // @@ -1216,7 +1214,7 @@ Showdown.converter = function (converter_options) { else if (str.search(/\S/) >= 0) { str = _RunSpanGamut(str); str = str.replace(/^([ \t]*)/g, "

    "); - str += "

    " + str += "

    "; grafsOut.push(str); } @@ -1226,7 +1224,7 @@ Showdown.converter = function (converter_options) { // Unhashify HTML blocks // end = grafsOut.length; - for (var i = 0; i < end; i++) { + for (i = 0; i < end; i++) { // if this is a marker for an html block... while (grafsOut[i].search(/~K(\d+)K/) >= 0) { var blockText = g_html_blocks[RegExp.$1]; @@ -1236,7 +1234,7 @@ Showdown.converter = function (converter_options) { } return grafsOut.join("\n\n"); - } + }; var _EncodeAmpsAndAngles = function (text) { // Smart processing for ampersands and angle brackets that need to be encoded. @@ -1249,7 +1247,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/<(?![a-z\/?\$!])/gi, "<"); return text; - } + }; var _EncodeBackslashEscapes = function (text) { // @@ -1270,7 +1268,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/\\(\\)/g, escapeCharacters_callback); text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g, escapeCharacters_callback); return text; - } + }; var _DoAutoLinks = function (text) { @@ -1297,7 +1295,7 @@ Showdown.converter = function (converter_options) { ); return text; - } + }; var _EncodeEmailAddress = function (addr) { // @@ -1338,8 +1336,8 @@ Showdown.converter = function (converter_options) { var r = Math.random(); // roughly 10% raw, 45% hex, 45% dec ch = ( - r > .9 ? encode[2](ch) : - r > .45 ? encode[1](ch) : + r > 0.9 ? encode[2](ch) : + r > 0.45 ? encode[1](ch) : encode[0](ch) ); } @@ -1350,7 +1348,7 @@ Showdown.converter = function (converter_options) { addr = addr.replace(/">.+:/g, "\">"); // strip the mailto: from the visible part return addr; - } + }; var _UnescapeSpecialChars = function (text) { // @@ -1363,7 +1361,7 @@ Showdown.converter = function (converter_options) { } ); return text; - } + }; var _Outdent = function (text) { // @@ -1376,10 +1374,10 @@ Showdown.converter = function (converter_options) { text = text.replace(/^(\t|[ ]{1,4})/gm, "~0"); // attacklab: g_tab_width // attacklab: clean up hack - text = text.replace(/~0/g, "") + text = text.replace(/~0/g, ""); return text; - } + }; var _Detab = function (text) { // attacklab: Detab's completely rewritten for speed. @@ -1410,7 +1408,7 @@ Showdown.converter = function (converter_options) { text = text.replace(/~B/g, ""); return text; - } + }; // @@ -1431,15 +1429,15 @@ Showdown.converter = function (converter_options) { text = text.replace(regex, escapeCharacters_callback); return text; - } + }; var escapeCharacters_callback = function (wholeMatch, m1) { var charCodeToEscape = m1.charCodeAt(0); return "~E" + charCodeToEscape + "E"; - } + }; -} // end of Showdown.converter +}; // end of Showdown.converter // export