aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/conversion.py7
-rw-r--r--tests/conversion_tests.py8
2 files changed, 15 insertions, 0 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py
index a4cf63b..9b57273 100644
--- a/mammoth/conversion.py
+++ b/mammoth/conversion.py
@@ -21,6 +21,7 @@ class DocumentConverter(object):
documents.Paragraph: self._convert_paragraph,
documents.Run: self._convert_run,
documents.Text: self._convert_text,
+ documents.Hyperlink: self._convert_hyperlink,
}
@@ -54,6 +55,12 @@ class DocumentConverter(object):
def _convert_text(self, text, html_generator):
html_generator.text(text.value)
+
+
+ def _convert_hyperlink(self, hyperlink, html_generator):
+ html_generator.start("a", {"href": hyperlink.href})
+ self._convert_elements_to_html(hyperlink.children, html_generator)
+ html_generator.end()
def _convert_elements_to_html(self, elements, html_generator):
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index 174e5b5..c4dc719 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -101,5 +101,13 @@ def runs_are_converted_by_satisfying_matching_paths():
assert_equal('<span class="tip">Tip</span>', result.value)
+@istest
+def docx_hyperlink_is_converted_to_anchor_tag():
+ result = convert_document_element_to_html(
+ documents.hyperlink(href="http://example.com", children=[documents.Text("Hello")]),
+ )
+ assert_equal('<a href="http://example.com">Hello</a>', result.value)
+
+
def _run_with_text(text):
return documents.run(children=[documents.text(text)])