From 2a883a2931fd9cec63ec245c080760a15460a72c Mon Sep 17 00:00:00 2001 From: Isaac Muse Date: Wed, 21 Oct 2020 11:09:14 -0600 Subject: Ensure when tag text is None that it is converted to empty string Fixes #1049 --- docs/change_log/index.md | 1 + markdown/extensions/md_in_html.py | 2 ++ tests/test_syntax/extensions/test_md_in_html.py | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/docs/change_log/index.md b/docs/change_log/index.md index 994e9a2..fffa216 100644 --- a/docs/change_log/index.md +++ b/docs/change_log/index.md @@ -6,6 +6,7 @@ Python-Markdown Change Log Under development: version 3.3.3 (a bug-fix release). * Unify all block-level tags (#1047). +* Fix issue where some empty elements would have text rendered as `None` when using `md_in_html` (#1049). Oct 19, 2020: version 3.3.2 (a bug-fix release). diff --git a/markdown/extensions/md_in_html.py b/markdown/extensions/md_in_html.py index 489c3fe..a2137c7 100644 --- a/markdown/extensions/md_in_html.py +++ b/markdown/extensions/md_in_html.py @@ -260,6 +260,8 @@ class MarkdownInHtmlProcessor(BlockProcessor): else: # Disable inline parsing for everything else + if element.text is None: + element.text = '' element.text = util.AtomicString(element.text) for child in list(element): self.parse_element_content(child) diff --git a/tests/test_syntax/extensions/test_md_in_html.py b/tests/test_syntax/extensions/test_md_in_html.py index 946e922..865007f 100644 --- a/tests/test_syntax/extensions/test_md_in_html.py +++ b/tests/test_syntax/extensions/test_md_in_html.py @@ -390,6 +390,24 @@ class TestMdInHTML(TestCase): ) ) + def test_empty_tags(self): + self.assertMarkdownRenders( + self.dedent( + """ +
+
+
+ """ + ), + self.dedent( + """ +
+
+
+ """ + ) + ) + def test_orphan_end_tag_in_raw_html(self): self.assertMarkdownRenders( self.dedent( -- cgit v1.2.1