fix(blockGamut): fix for headings inside blockquotes

The spec states that you can be lazy and only put the `>` before the first line of a hard-wrapped paragraph.
It also states that blocquotes can contain any other md element inside.
This means headings and horizontal rules should be included in the blockquote but, right now, are treated as
independent entities

Closes #191
This commit is contained in:
Estevão Soares dos Santos 2015-08-23 03:11:11 +01:00
parent 7dc3fb1d25
commit 3df706248f
12 changed files with 51 additions and 9 deletions

8
dist/showdown.js vendored
View File

@ -1,4 +1,4 @@
;/*! showdown 11-08-2015 */
;/*! showdown 23-08-2015 */
(function(){
/**
* Created by Tivie on 13-07-2015.
@ -1029,6 +1029,9 @@ showdown.subParser('autoLinks', function (text, options) {
showdown.subParser('blockGamut', function (text, options, globals) {
'use strict';
// we parse blockquotes first so that we can have headings and hrs
// inside blockquotes
text = showdown.subParser('blockQuotes')(text, options, globals);
text = showdown.subParser('headers')(text, options, globals);
// Do Horizontal Rules:
@ -1040,7 +1043,6 @@ showdown.subParser('blockGamut', function (text, options, globals) {
text = showdown.subParser('tables')(text, options, globals);
text = showdown.subParser('lists')(text, options, globals);
text = showdown.subParser('codeBlocks')(text, options, globals);
text = showdown.subParser('blockQuotes')(text, options, globals);
// We already ran _HashHTMLBlocks() before, in Markdown(), but that
// was to escape raw HTML in the original Markdown source. This time,
@ -1069,7 +1071,7 @@ showdown.subParser('blockQuotes', function (text, options, globals) {
/gm, function(){...});
*/
text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, function (wholeMatch, m1) {
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:

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,9 @@
showdown.subParser('blockGamut', function (text, options, globals) {
'use strict';
// we parse blockquotes first so that we can have headings and hrs
// inside blockquotes
text = showdown.subParser('blockQuotes')(text, options, globals);
text = showdown.subParser('headers')(text, options, globals);
// Do Horizontal Rules:
@ -16,7 +19,6 @@ showdown.subParser('blockGamut', function (text, options, globals) {
text = showdown.subParser('tables')(text, options, globals);
text = showdown.subParser('lists')(text, options, globals);
text = showdown.subParser('codeBlocks')(text, options, globals);
text = showdown.subParser('blockQuotes')(text, options, globals);
// We already ran _HashHTMLBlocks() before, in Markdown(), but that
// was to escape raw HTML in the original Markdown source. This time,

View File

@ -14,7 +14,7 @@ showdown.subParser('blockQuotes', function (text, options, globals) {
/gm, function(){...});
*/
text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm, function (wholeMatch, m1) {
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:

View File

@ -0,0 +1,9 @@
<blockquote>
<p>a blockquote with a 4 space indented line (not code)</p>
</blockquote>
<p>sep</p>
<blockquote>
<p>a blockquote</p>
</blockquote>
<pre><code>with some code after
</code></pre>

View File

@ -0,0 +1,8 @@
> a blockquote
with a 4 space indented line (not code)
sep
> a blockquote
with some code after

View File

@ -0,0 +1,8 @@
<pre><code>&gt; this is a pseudo blockquote
&gt; inside a code block
</code></pre>
<p>foo</p>
<pre><code>&gt; this is another bq
inside code
</code></pre>

View File

@ -0,0 +1,7 @@
> this is a pseudo blockquote
> inside a code block
foo
> this is another bq
inside code

View File

@ -0,0 +1,4 @@
<blockquote>
<p>a blockquote</p>
<h1 id="followedbyanheading">followed by an heading</h1>
</blockquote>

View File

@ -0,0 +1,2 @@
> a blockquote
# followed by an heading