aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--markdown/preprocessors.py7
-rw-r--r--tests/misc/more_comments.html8
-rw-r--r--tests/misc/more_comments.txt10
-rw-r--r--tests/misc/multiline-comments.html22
-rw-r--r--tests/misc/multiline-comments.txt20
5 files changed, 55 insertions, 12 deletions
diff --git a/markdown/preprocessors.py b/markdown/preprocessors.py
index 1b5bc7e..1e10cfc 100644
--- a/markdown/preprocessors.py
+++ b/markdown/preprocessors.py
@@ -201,7 +201,7 @@ class HtmlBlockPreprocessor(Preprocessor):
if not in_tag:
if block.startswith("<") and len(block.strip()) > 1:
- if block[1] == "!":
+ if block[1:4] == "!--":
# is a comment block
left_tag, left_index, attrs = "--", 2, {}
else:
@@ -239,9 +239,8 @@ class HtmlBlockPreprocessor(Preprocessor):
continue
else:
# if is block level tag and is not complete
-
- if util.isBlockLevel(left_tag) or left_tag == "--" \
- and not block.rstrip().endswith(">"):
+ if (not self._equal_tags(left_tag, right_tag)) and \
+ (util.isBlockLevel(left_tag) or left_tag == "--"):
items.append(block.strip())
in_tag = True
else:
diff --git a/tests/misc/more_comments.html b/tests/misc/more_comments.html
index 99f5781..5ca6731 100644
--- a/tests/misc/more_comments.html
+++ b/tests/misc/more_comments.html
@@ -1,6 +1,8 @@
-<!--asd@asdfd.com>
-
<!asd@asdfd.com>
+<p>Foo</p>
<p><asd!@asdfd.com></p>
-<p>Test</p> \ No newline at end of file
+<p>Bar</p>
+<!--asd@asdfd.com>
+
+Still in unclosed comment \ No newline at end of file
diff --git a/tests/misc/more_comments.txt b/tests/misc/more_comments.txt
index 0397f9c..ddc5bd3 100644
--- a/tests/misc/more_comments.txt
+++ b/tests/misc/more_comments.txt
@@ -1,9 +1,11 @@
-<!--asd@asdfd.com>
-
-
<!asd@asdfd.com>
+Foo
<asd!@asdfd.com>
-Test
+Bar
+
+<!--asd@asdfd.com>
+
+Still in unclosed comment
diff --git a/tests/misc/multiline-comments.html b/tests/misc/multiline-comments.html
index 29c17e9..4bdd5d0 100644
--- a/tests/misc/multiline-comments.html
+++ b/tests/misc/multiline-comments.html
@@ -14,4 +14,24 @@ foo
foo
-</div> \ No newline at end of file
+</div>
+
+<!-- foo
+
+-->
+
+<!-- <tag>
+
+-->
+
+<!--
+
+foo -->
+
+<!--
+
+<tag> -->
+
+<!-- unclosed comment
+
+__Still__ a comment (browsers see it that way) \ No newline at end of file
diff --git a/tests/misc/multiline-comments.txt b/tests/misc/multiline-comments.txt
index 71bc418..eb567dd 100644
--- a/tests/misc/multiline-comments.txt
+++ b/tests/misc/multiline-comments.txt
@@ -16,3 +16,23 @@ foo
foo
</div>
+
+<!-- foo
+
+-->
+
+<!-- <tag>
+
+-->
+
+<!--
+
+foo -->
+
+<!--
+
+<tag> -->
+
+<!-- unclosed comment
+
+__Still__ a comment (browsers see it that way)