diff options
author | JensDiemer <git@jensdiemer.de> | 2022-08-23 08:08:28 +0200 |
---|---|---|
committer | JensDiemer <git@jensdiemer.de> | 2022-08-23 08:08:42 +0200 |
commit | 8c37f13d04937dec85056dae7cf8621c9752e157 (patch) | |
tree | 643b4cbf19bb4ec78bf2ceacc0533ebdd8a591ce | |
parent | b1981766858660b34acd59a29de4b9b735e175bf (diff) | |
download | creole-8c37f13d04937dec85056dae7cf8621c9752e157.tar.gz |
html2markdown: Handle <sup> and <sub>
-rw-r--r-- | creole/emitter/html2markdown_emitter.py | 7 | ||||
-rw-r--r-- | creole/tests/test_html2markdown.py | 21 |
2 files changed, 26 insertions, 2 deletions
diff --git a/creole/emitter/html2markdown_emitter.py b/creole/emitter/html2markdown_emitter.py index 5e6140a..b9bf8a0 100644 --- a/creole/emitter/html2markdown_emitter.py +++ b/creole/emitter/html2markdown_emitter.py @@ -122,11 +122,14 @@ class MarkdownEmitter(BaseEmitter): def tt_emit(self, node: DocNode): return self._typeface(node, key='##') + def _typeface_html(self, node, tag): + return f'<{tag}>{self.emit_children(node)}</{tag}>' + def sup_emit(self, node: DocNode): - return self._typeface(node, key='^^') + return self._typeface_html(node, tag='sup') def sub_emit(self, node: DocNode): - return self._typeface(node, key=',,') + return self._typeface_html(node, tag='sub') def u_emit(self, node: DocNode): return self._typeface(node, key='__') diff --git a/creole/tests/test_html2markdown.py b/creole/tests/test_html2markdown.py index 90d4daf..7ecba0e 100644 --- a/creole/tests/test_html2markdown.py +++ b/creole/tests/test_html2markdown.py @@ -31,6 +31,26 @@ class MarkdownTests(BaseCreoleTest): # debug=True, ) + def test_typeface(self): + self.assert_html2markdown( + markdown_string='This is ~~Strikethrough~~', + html_string='<p>This is <del>Strikethrough</del></p>', + debug=True, + ) + self.assert_html2markdown( + markdown_string='This is <sub>Subscript</sub>', + html_string='<p>This is <sub>Subscript</sub></p>', + debug=True, + ) + self.assert_html2markdown( + markdown_string='This is <sup>Superscript</sup>', + html_string='<p>This is <sup>Superscript</sup></p>', + debug=True, + ) + self.assert_html2markdown( + markdown_string='**This text is _extremely_ important**', + html_string='<p><strong>This text is <em>extremely</em> important</strong></p>', + ) def test_lists(self): self.assert_html2markdown( markdown_string=cleandoc( @@ -163,6 +183,7 @@ class MarkdownTests(BaseCreoleTest): ), # debug=True, ) + def test_links_with_spaces(self): self.assert_html2markdown( markdown_string=cleandoc( |