mirror of
https://github.com/showdownjs/showdown.git
synced 2024-03-22 13:30:55 +08:00
f4cb29e05a
Conflicts: dist/showdown.js dist/showdown.js.map dist/showdown.min.js dist/showdown.min.js.map src/converter.js src/subParsers/blockGamut.js src/subParsers/codeSpans.js
48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
showdown.subParser('blockQuotes', function (text, options, globals) {
|
|
'use strict';
|
|
|
|
text = globals.converter._dispatch('blockQuotes.before', text, options);
|
|
/*
|
|
text = text.replace(/
|
|
( // Wrap whole match in $1
|
|
(
|
|
^[ \t]*>[ \t]? // '>' at the start of a line
|
|
.+\n // rest of the first line
|
|
(.+\n)* // subsequent consecutive lines
|
|
\n* // blanks
|
|
)+
|
|
)
|
|
/gm, function(){...});
|
|
*/
|
|
|
|
text = text.replace(/((^[ \t]{0,3}>[ \t]?.+\n(.+\n)*\n*)+)/gm, function (wholeMatch, m1) {
|
|
var bq = m1;
|
|
|
|
// attacklab: hack around Konqueror 3.5.4 bug:
|
|
// "----------bug".replace(/^-/g,"") == "bug"
|
|
bq = bq.replace(/^[ \t]*>[ \t]?/gm, '~0'); // trim one level of quoting
|
|
|
|
// attacklab: clean up hack
|
|
bq = bq.replace(/~0/g, '');
|
|
|
|
bq = bq.replace(/^[ \t]+$/gm, ''); // trim whitespace-only lines
|
|
bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);
|
|
bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse
|
|
|
|
bq = bq.replace(/(^|\n)/g, '$1 ');
|
|
// These leading spaces screw with <pre> content, so we need to fix that:
|
|
bq = bq.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm, function (wholeMatch, m1) {
|
|
var pre = m1;
|
|
// attacklab: hack around Konqueror 3.5.4 bug:
|
|
pre = pre.replace(/^ /mg, '~0');
|
|
pre = pre.replace(/~0/g, '');
|
|
return pre;
|
|
});
|
|
|
|
return showdown.subParser('hashBlock')('<blockquote>\n' + bq + '\n</blockquote>', options, globals);
|
|
});
|
|
|
|
text = globals.converter._dispatch('blockQuotes.after', text, options);
|
|
return text;
|
|
});
|