aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmarkdown.py17
-rw-r--r--tests/misc/blockquote-below-paragraph.html8
-rw-r--r--tests/misc/blockquote-below-paragraph.txt12
3 files changed, 30 insertions, 7 deletions
diff --git a/markdown.py b/markdown.py
index 4441617..f4536a2 100755
--- a/markdown.py
+++ b/markdown.py
@@ -361,14 +361,21 @@ class CodeBlockProcessor(BlockProcessor):
class BlockQuoteProcessor(BlockProcessor):
- RE = re.compile(r'^[ ]{0,3}>[ ](.*)')
+ RE = re.compile(r'(^|\n)[ ]{0,3}>[ ](.*)')
def test(self, parent, block):
- return bool(self.RE.match(block))
+ return bool(self.RE.search(block))
def run(self, parent, blocks):
- block = '\n'.join([self.clean(line) for line in
- blocks.pop(0).split('\n')])
+ block = blocks.pop(0)
+ m = self.RE.search(block)
+ if m:
+ before = block[:m.start()] # Lines before blockquote
+ # Pass lines before blockquote in recursively for parsing forst.
+ self.parser.parseBlocks(parent, [before])
+ # Remove ``> `` from begining of each line.
+ block = '\n'.join([self.clean(line) for line in
+ block[m.start():].split('\n')])
sibling = self.lastChild(parent)
if sibling and sibling.tag == "blockquote":
# Previous block was a blockquote so set that as this blocks parent
@@ -385,7 +392,7 @@ class BlockQuoteProcessor(BlockProcessor):
if line.strip() == ">":
return ""
elif m:
- return m.group(1)
+ return m.group(2)
else:
return line
diff --git a/tests/misc/blockquote-below-paragraph.html b/tests/misc/blockquote-below-paragraph.html
index c6f622e..20ffb66 100644
--- a/tests/misc/blockquote-below-paragraph.html
+++ b/tests/misc/blockquote-below-paragraph.html
@@ -2,4 +2,12 @@
<blockquote>
<p>Block quote
Yep</p>
+</blockquote>
+<p>Paragraph
+&gt;no space
+&gt;Nope</p>
+<p>Paragraph one</p>
+<blockquote>
+<p>blockquote
+More blockquote.</p>
</blockquote> \ No newline at end of file
diff --git a/tests/misc/blockquote-below-paragraph.txt b/tests/misc/blockquote-below-paragraph.txt
index 0dd4d5c..529e5a9 100644
--- a/tests/misc/blockquote-below-paragraph.txt
+++ b/tests/misc/blockquote-below-paragraph.txt
@@ -1,3 +1,11 @@
Paragraph
->Block quote
->Yep
+> Block quote
+> Yep
+
+Paragraph
+>no space
+>Nope
+
+Paragraph one
+> blockquote
+More blockquote.