/** * * * Backtick quotes are used for spans. * * * You can use multiple backticks as the delimiters if you want to * include literal backticks in the code span. So, this input: * * Just type ``foo `bar` baz`` at the prompt. * * Will translate to: * *

Just type foo `bar` baz at the prompt.

* * There's no arbitrary limit to the number of backticks you * can use as delimters. If you need three consecutive backticks * in your code, use four for delimiters, etc. * * * You can use spaces to get literal backticks at the edges: * * ... type `` `bar` `` ... * * Turns to: * * ... type `bar` ... */ showdown.subParser('codeSpans', function (text) { 'use strict'; //special case -> literal html code tag text = text.replace(/(<]*?>)([^]*?)<\/code>/g, function (wholeMatch, tag, c) { c = c.replace(/^([ \t]*)/g, ''); // leading whitespace c = c.replace(/[ \t]*$/g, ''); // trailing whitespace c = showdown.subParser('encodeCode')(c); return tag + c + ''; }); /* text = text.replace(/ (^|[^\\]) // Character before opening ` can't be a backslash (`+) // $2 = Opening run of ` ( // $3 = The code block [^\r]*? [^`] // attacklab: work around lack of lookbehind ) \2 // Matching closer (?!`) /gm, function(){...}); */ text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function (wholeMatch, m1, m2, m3) { var c = m3; c = c.replace(/^([ \t]*)/g, ''); // leading whitespace c = c.replace(/[ \t]*$/g, ''); // trailing whitespace c = showdown.subParser('encodeCode')(c); return m1 + '' + c + ''; }); return text; });