From 5d913699758a5815bc114a9e8c08db61eb206a5d Mon Sep 17 00:00:00 2001 From: facelessuser Date: Wed, 19 Nov 2014 18:21:40 -0700 Subject: [PATCH] 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. --- markdown/preprocessors.py | 5 +++-- tests/extensions/extra/raw-html.html | 13 ++++++++++--- 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 4a1fac5f6..ed11c3903 100644 --- a/markdown/preprocessors.py +++ b/markdown/preprocessors.py @@ -174,9 +174,10 @@ def _nested_markdown_in_html(self, items): 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 f8874c388..7acb2eeb7 100644 --- a/tests/extensions/extra/raw-html.html +++ b/tests/extensions/extra/raw-html.html @@ -27,11 +27,18 @@ Raw html blocks may also be nested. - -

This text is after the markdown in html.

1 2

-
\ No newline at end of file + +
+

Markdown is active here.

+
+Raw html blocks may also be nested. +
+ +

Markdown is still active here.

+
+

Markdown is active again here.

\ No newline at end of file diff --git a/tests/extensions/extra/raw-html.txt b/tests/extensions/extra/raw-html.txt index 0a82ccf70..72f530b99 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. 2 + +
+ +Markdown is *active* here. + +
+Raw html blocks may also be nested. +
+ +Markdown is *still* active here. + +
+ +Markdown is *active again* here.