diff --git a/CHANGES.md b/CHANGES.md index 2dbd4712..56de6256 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -4,6 +4,7 @@ - [pull #559] Allow cuddled tables (#557) - [pull #560] Fix `markdown-in-html` not always splitting HTML tags into separate lines (#558) +- [pull #564] Fix incomplete comments in safe mode not being escaped (#563) ## python-markdown2 2.4.12 diff --git a/lib/markdown2.py b/lib/markdown2.py index d92b77b6..0bc16a35 100755 --- a/lib/markdown2.py +++ b/lib/markdown2.py @@ -2639,7 +2639,7 @@ def _encode_amps_and_angles(self, text): text = self._naked_gt_re.sub('>', text) return text - _incomplete_tags_re = re.compile(r"<(/?\w+?(?!\w)\s*?.+?[\s/]+?)") + _incomplete_tags_re = re.compile(r"<(!--|/?\w+?(?!\w)\s*?.+?[\s/]+?)") def _encode_incomplete_tags(self, text): if self.safe_mode not in ("replace", "escape"): diff --git a/test/tm-cases/basic_safe_mode_escape.html b/test/tm-cases/basic_safe_mode_escape.html index af24510c..cd4f04cc 100644 --- a/test/tm-cases/basic_safe_mode_escape.html +++ b/test/tm-cases/basic_safe_mode_escape.html @@ -3,3 +3,5 @@
<div>yowzer!</div>
blah
+ +foo <!-- bar
diff --git a/test/tm-cases/basic_safe_mode_escape.text b/test/tm-cases/basic_safe_mode_escape.text index ee042312..baf11d10 100644 --- a/test/tm-cases/basic_safe_mode_escape.text +++ b/test/tm-cases/basic_safe_mode_escape.text @@ -3,3 +3,6 @@ blah