summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-12-14 16:39:03 +0000
committerMichael Williamson <mike@zwobble.org>2013-12-14 16:39:03 +0000
commita6d9064bbb71653dc0f43898d0247e5344c30f6b (patch)
tree7131d65da829b40e5da409c5569175ef47f1e935
parent996491337023abe6033c3caf76dfa4501bd27ce3 (diff)
Convert hyperlinks
-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)])