diff --git a/markdown/preprocessors.py b/markdown/preprocessors.py index 7ea4fcf9f..94f983005 100644 --- a/markdown/preprocessors.py +++ b/markdown/preprocessors.py @@ -258,7 +258,13 @@ def run(self, lines): else: items.append(block) - right_tag, data_index = self._get_right_tag(left_tag, 0, block) + # Need to evaluate all items so we can calculate relative to the left index. + right_tag, data_index = self._get_right_tag(left_tag, left_index, ''.join(items)) + # Adjust data_index: relative to items -> relative to last block + prev_block_length = 0 + for item in items[:-1]: + prev_block_length += len(item) + data_index -= prev_block_length if self._equal_tags(left_tag, right_tag): # if find closing tag diff --git a/tests/misc/html.html b/tests/misc/html.html index 1eb6a9729..5380bbdc2 100644 --- a/tests/misc/html.html +++ b/tests/misc/html.html @@ -8,6 +8,17 @@

Block level html

Html with various attributes. +
+
+ Div with a blank line + + in the middle. +
+
+ This gets treated as HTML. +
+
+

And of course .

this . [this )