summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJensDiemer <git@jensdiemer.de>2022-08-23 08:08:28 +0200
committerJensDiemer <git@jensdiemer.de>2022-08-23 08:08:42 +0200
commit8c37f13d04937dec85056dae7cf8621c9752e157 (patch)
tree643b4cbf19bb4ec78bf2ceacc0533ebdd8a591ce
parentb1981766858660b34acd59a29de4b9b735e175bf (diff)
downloadcreole-8c37f13d04937dec85056dae7cf8621c9752e157.tar.gz
html2markdown: Handle <sup> and <sub>
-rw-r--r--creole/emitter/html2markdown_emitter.py7
-rw-r--r--creole/tests/test_html2markdown.py21
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(