From 97cec25aa615353495292aee7bfb0002c6f849db Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 8 Feb 2015 20:06:45 +0000 Subject: Handle unrecognised elements in markdown writer --- mammoth/writers/markdown.py | 3 ++- tests/writers/markdown_tests.py | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mammoth/writers/markdown.py b/mammoth/writers/markdown.py index 4a2476d..3449990 100644 --- a/mammoth/writers/markdown.py +++ b/mammoth/writers/markdown.py @@ -25,6 +25,7 @@ def _init_writers(): _writers = _init_writers() +_default_writer = lambda: ("", "") class MarkdownWriter(object): @@ -36,7 +37,7 @@ class MarkdownWriter(object): self._fragments.append(_escape_markdown(text)) def start(self, name, attributes=None): - start, end = _writers[name]() + start, end = _writers.get(name, _default_writer)() self._fragments.append(start) self._element_stack.append(end) diff --git a/tests/writers/markdown_tests.py b/tests/writers/markdown_tests.py index e1cdf77..a277c3d 100644 --- a/tests/writers/markdown_tests.py +++ b/tests/writers/markdown_tests.py @@ -12,6 +12,15 @@ def special_markdown_characters_are_escaped(): assert_equal(r"\\\*", writer.as_string()) +@istest +def unrecognised_elements_are_treated_as_normal_text(): + writer = _create_writer() + writer.start("blah"); + writer.text("Hello"); + writer.end("blah"); + assert_equal("Hello", writer.as_string()) + + @istest def paragraphs_are_terminated_with_double_new_line(): writer = _create_writer() -- cgit v1.2.3