mirror of
https://github.com/showdownjs/showdown.git
synced 2024-03-22 13:30:55 +08:00
51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
|
/**
|
||
|
* Created by Estevao on 12-01-2015.
|
||
|
*/
|
||
|
|
||
|
showdown.subParser('blockQuotes', function (text, options, globals) {
|
||
|
'use strict';
|
||
|
|
||
|
/*
|
||
|
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]*>[ \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('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);
|
||
|
});
|
||
|
return text;
|
||
|
});
|