diff options
| -rw-r--r-- | mammoth/writers/markdown.py | 11 | ||||
| -rw-r--r-- | 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() |
