diff options
author | facelessuser <faceless.shop@gmail.com> | 2014-11-19 18:21:40 -0700 |
---|---|---|
committer | facelessuser <faceless.shop@gmail.com> | 2014-11-19 18:21:40 -0700 |
commit | 5d913699758a5815bc114a9e8c08db61eb206a5d (patch) | |
tree | 60710f46d9449af778a2e8759f5aba7bc157e0f1 | |
parent | 69fd8b4871f3c027b78072af88bb8a62202bc7e7 (diff) | |
download | markdown-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.py | 5 | ||||
-rw-r--r-- | tests/extensions/extra/raw-html.html | 13 | ||||
-rw-r--r-- | tests/extensions/extra/raw-html.txt | 14 |
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. |