summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-02-11 20:33:22 +0000
committerMichael Williamson <mike@zwobble.org>2015-02-11 20:33:22 +0000
commitb5b09219daf76bf6dfec7284e7678aa8f8ba1bf8 (patch)
tree6c0d3bff72394315d39ebf42a2da61d64d5c80d8
parent123907f68de3b4d802bd305f37b8651551be3f71 (diff)
Write anchor tags with ID for bookmarks
-rw-r--r--mammoth/conversion.py7
-rw-r--r--tests/conversion_tests.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py
index c17ef9f..0b73eeb 100644
--- a/mammoth/conversion.py
+++ b/mammoth/conversion.py
@@ -44,6 +44,7 @@ class DocumentConverter(object):
documents.Run: self._convert_run,
documents.Text: self._convert_text,
documents.Hyperlink: self._convert_hyperlink,
+ documents.Bookmark: self._convert_bookmark,
documents.Tab: self._convert_tab,
documents.Table: self._convert_table,
documents.TableRow: self._convert_table_row,
@@ -112,6 +113,12 @@ class DocumentConverter(object):
html_generator.end()
+ def _convert_bookmark(self, bookmark, html_generator):
+ html_generator.start("a", {"id": "{0}-{1}".format(self._id_prefix, bookmark.name)}, always_write=True)
+ html_generator.end()
+
+
+
def _convert_tab(self, tab, html_generator):
html_generator.text("\t")
diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py
index ced1d9e..994b1f0 100644
--- a/tests/conversion_tests.py
+++ b/tests/conversion_tests.py
@@ -218,6 +218,15 @@ def docx_hyperlink_with_internal_anchor_reference_is_converted_to_anchor_tag():
@istest
+def bookmarks_are_converted_to_anchors_with_ids():
+ result = convert_document_element_to_html(
+ documents.bookmark(name="start"),
+ id_prefix="doc-42",
+ )
+ assert_equal('<a id="doc-42-start"></a>', result.value)
+
+
+@istest
def docx_tab_is_converted_to_tab_in_html():
result = convert_document_element_to_html(documents.tab())
assert_equal('\t', result.value)