From 07d35b00521754a29e800d6d5eaf646a45eb7e2e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 30 May 2017 11:41:21 +0100 Subject: Convert hyperlink target frame to anchor target --- mammoth/conversion.py | 6 +++++- tests/conversion_tests.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mammoth/conversion.py b/mammoth/conversion.py index eb09ded..0fc3d58 100644 --- a/mammoth/conversion.py +++ b/mammoth/conversion.py @@ -149,8 +149,12 @@ class _DocumentConverter(documents.element_visitor(args=1)): else: href = "#{0}".format(self._html_id(hyperlink.anchor)) + attributes = {"href": href} + if hyperlink.target_frame is not None: + attributes["target"] = hyperlink.target_frame + nodes = self._visit_all(hyperlink.children, context) - return [html.collapsible_element("a", {"href": href}, nodes)] + return [html.collapsible_element("a", attributes, nodes)] def visit_bookmark(self, bookmark, context): diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py index 9b81bf1..77b0a30 100644 --- a/tests/conversion_tests.py +++ b/tests/conversion_tests.py @@ -280,6 +280,18 @@ def docx_hyperlink_with_internal_anchor_reference_is_converted_to_anchor_tag(): assert_equal('Hello', result.value) +@istest +def hyperlink_target_frame_is_used_as_anchor_target(): + result = convert_document_element_to_html( + documents.hyperlink( + anchor="start", + target_frame="_blank", + children=[documents.Text("Hello")], + ), + ) + assert_equal('Hello', result.value) + + @istest def bookmarks_are_converted_to_anchors_with_ids(): result = convert_document_element_to_html( -- cgit v1.2.3