From d23efd5811e1ebeae915fdfb2cd8e8ede6b0f0ca Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 8 Feb 2015 20:24:47 +0000 Subject: Ignore anchor tags with no href attribute --- mammoth/writers/markdown.py | 11 +++++++++-- tests/writers/markdown_tests.py | 9 +++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/mammoth/writers/markdown.py b/mammoth/writers/markdown.py index 66bc9f2..771874c 100644 --- a/mammoth/writers/markdown.py +++ b/mammoth/writers/markdown.py @@ -18,7 +18,10 @@ class _Wrapped(object): def _hyperlink(attributes): href = attributes.get("href", "") - return "[", "]({0})".format(href) + if href: + return "[", "]({0})".format(href) + else: + return _default_output def _init_writers(): @@ -37,7 +40,8 @@ def _init_writers(): _writers = _init_writers() -_default_writer = lambda attributes: ("", "") +_default_output = ("", "") +_default_writer = lambda attributes: _default_output class MarkdownWriter(object): @@ -49,6 +53,9 @@ class MarkdownWriter(object): self._fragments.append(_escape_markdown(text)) def start(self, name, attributes=None): + if attributes is None: + attributes = {} + start, end = _writers.get(name, _default_writer)(attributes) self._fragments.append(start) self._element_stack.append(end) diff --git a/tests/writers/markdown_tests.py b/tests/writers/markdown_tests.py index bfa1e1b..9448b50 100644 --- a/tests/writers/markdown_tests.py +++ b/tests/writers/markdown_tests.py @@ -85,6 +85,15 @@ def anchor_tags_are_written_as_hyperlinks(): assert_equal("[Hello](http://example.com)", writer.as_string()) +@istest +def anchor_tags_without_href_attribute_are_treated_as_ordinary_text(): + writer = _create_writer() + writer.start("a"); + writer.text("Hello"); + writer.end("a"); + assert_equal("Hello", writer.as_string()) + + def _create_writer(): return MarkdownWriter() -- cgit v1.2.3