aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfacelessuser <faceless.shop@gmail.com>2014-11-19 18:21:40 -0700
committerfacelessuser <faceless.shop@gmail.com>2014-11-19 18:21:40 -0700
commit5d913699758a5815bc114a9e8c08db61eb206a5d (patch)
tree60710f46d9449af778a2e8759f5aba7bc157e0f1
parent69fd8b4871f3c027b78072af88bb8a62202bc7e7 (diff)
downloadmarkdown-5d913699758a5815bc114a9e8c08db61eb206a5d.tar.gz
markdown-5d913699758a5815bc114a9e8c08db61eb206a5d.tar.bz2
markdown-5d913699758a5815bc114a9e8c08db61eb206a5d.zip
Issue #368: Fix Markdown in raw HTML stops working
Originally there was an infinite loop issue that was patched in issue #308. Unfortunately, it was fixed all the way. This fix patches the infinite loop fix to only add an offset to the `right_listindex` when it is in a infinite loop scenario.
-rw-r--r--markdown/preprocessors.py5
-rw-r--r--tests/extensions/extra/raw-html.html13
-rw-r--r--tests/extensions/extra/raw-html.txt14
3 files changed, 27 insertions, 5 deletions
diff --git a/markdown/preprocessors.py b/markdown/preprocessors.py
index 4a1fac5..ed11c39 100644
--- a/markdown/preprocessors.py
+++ b/markdown/preprocessors.py
@@ -174,9 +174,10 @@ class HtmlBlockPreprocessor(Preprocessor):
else: # raw html
if len(items) - right_listindex <= 1: # last element
right_listindex -= 1
+ offset = 1 if i == right_listindex else 0
placeholder = self.markdown.htmlStash.store('\n\n'.join(
- items[i:right_listindex + 1]))
- del items[i:right_listindex + 1]
+ items[i:right_listindex + offset]))
+ del items[i:right_listindex + offset]
items.insert(i, placeholder)
return items
diff --git a/tests/extensions/extra/raw-html.html b/tests/extensions/extra/raw-html.html
index f8874c3..7acb2ee 100644
--- a/tests/extensions/extra/raw-html.html
+++ b/tests/extensions/extra/raw-html.html
@@ -27,11 +27,18 @@ Note: Subelements are not required to have tail text.</div>
Raw html blocks may also be nested.
</div>
-
-
</div>
<p>This text is after the markdown in html.</p>
<div name="issue308">
<p><span>1</span>
<span>2</span></p>
-</div> \ No newline at end of file
+</div>
+<div name="issue368">
+<p>Markdown is <em>active</em> here.</p>
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+<p>Markdown is <em>still</em> active here.</p>
+</div>
+<p>Markdown is <em>active again</em> here.</p> \ No newline at end of file
diff --git a/tests/extensions/extra/raw-html.txt b/tests/extensions/extra/raw-html.txt
index 0a82ccf..72f530b 100644
--- a/tests/extensions/extra/raw-html.txt
+++ b/tests/extensions/extra/raw-html.txt
@@ -51,3 +51,17 @@ This text is after the markdown in html.
<span>2</span>
</div>
+
+<div markdown="1" name="issue368">
+
+Markdown is *active* here.
+
+<div name="RawHtml">
+Raw html blocks may also be nested.
+</div>
+
+Markdown is *still* active here.
+
+</div>
+
+Markdown is *active again* here.