diff options
author | Waylan Limberg <waylan.limberg@icloud.com> | 2020-11-19 14:42:24 -0500 |
---|---|---|
committer | Waylan Limberg <waylan.limberg@icloud.com> | 2020-11-19 14:51:57 -0500 |
commit | 82ac9056350e67411cdb1da34363950b1e18a271 (patch) | |
tree | 476c15c673ffe3a92700dcc9f96e41f586f1d4dc | |
parent | 81cc5b8bf1ad2a44b0a042d059caab3ed802ed33 (diff) | |
download | python-markdown-82ac9056350e67411cdb1da34363950b1e18a271.tar.gz |
Properly parse processing instructions in md_in_html
Empty tags do not have a `mardkown` attribute set on them. Therefore,
there is no need to check the mdstack to determine behavior. If we
are in any md_in_html state (regardless of block, span, etc) the
behavior is the same. Fixes #1070.
-rw-r--r-- | docs/change_log/index.md | 1 | ||||
-rw-r--r-- | markdown/extensions/md_in_html.py | 5 | ||||
-rw-r--r-- | tests/test_syntax/extensions/test_md_in_html.py | 50 |
3 files changed, 52 insertions, 4 deletions
diff --git a/docs/change_log/index.md b/docs/change_log/index.md index bce97da..7edb2b9 100644 --- a/docs/change_log/index.md +++ b/docs/change_log/index.md @@ -5,6 +5,7 @@ Python-Markdown Change Log Under development: version 3.3.4 (a bug-fix release). +* Properly parse processing instructions in md_in_html (#1070). * Properly parse code spans in md_in_html (#1069). Oct 25, 2020: version 3.3.3 (a bug-fix release). diff --git a/markdown/extensions/md_in_html.py b/markdown/extensions/md_in_html.py index b8848ef..6d2a0e7 100644 --- a/markdown/extensions/md_in_html.py +++ b/markdown/extensions/md_in_html.py @@ -204,10 +204,7 @@ class HTMLExtractorExtra(HTMLExtractor): if self.at_line_start() and is_block: self.handle_data('\n' + self.md.htmlStash.store(data) + '\n\n') else: - if self.mdstate and self.mdstate[-1] == "off": - self.handle_data(self.md.htmlStash.store(data)) - else: - self.handle_data(data) + self.handle_data(self.md.htmlStash.store(data)) class HtmlBlockPreprocessor(Preprocessor): diff --git a/tests/test_syntax/extensions/test_md_in_html.py b/tests/test_syntax/extensions/test_md_in_html.py index 7786b80..8655607 100644 --- a/tests/test_syntax/extensions/test_md_in_html.py +++ b/tests/test_syntax/extensions/test_md_in_html.py @@ -634,6 +634,56 @@ class TestMdInHTML(TestCase): ) ) + def test_md1_PI_oneliner(self): + self.assertMarkdownRenders( + '<div markdown="1"><?php print("foo"); ?></div>', + self.dedent( + """ + <div> + <?php print("foo"); ?> + </div> + """ + ) + ) + + def test_md1_PI_multiline(self): + self.assertMarkdownRenders( + self.dedent( + """ + <div markdown="1"> + <?php print("foo"); ?> + </div> + """ + ), + self.dedent( + """ + <div> + <?php print("foo"); ?> + </div> + """ + ) + ) + + def test_md1_PI_blank_lines(self): + self.assertMarkdownRenders( + self.dedent( + """ + <div markdown="1"> + + <?php print("foo"); ?> + + </div> + """ + ), + self.dedent( + """ + <div> + <?php print("foo"); ?> + </div> + """ + ) + ) + def test_md_span_paragraph(self): self.assertMarkdownRenders( '<p markdown="span">*foo*</p>', |