From 68acf659253a2ac7bd5f9e2bd5d8c7ecd665a7af Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 8 Feb 2015 19:58:00 +0000 Subject: Add support for h1 elements to markdown writer --- mammoth/writers/markdown.py | 5 +++-- tests/writers/__init__.py | 1 + tests/writers/markdown_tests.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 tests/writers/__init__.py create mode 100644 tests/writers/markdown_tests.py diff --git a/mammoth/writers/markdown.py b/mammoth/writers/markdown.py index 76e4f90..604b18a 100644 --- a/mammoth/writers/markdown.py +++ b/mammoth/writers/markdown.py @@ -11,10 +11,11 @@ class MarkdownWriter(object): self._fragments.append(_escape_markdown(text)) def start(self, name, attributes=None): - pass + if name == "h1": + self._fragments.append("# ") def end(self, name): - if name == "p": + if name in ["p", "h1"]: self._fragments.append("\n\n") def self_closing(self, name, attributes=None): diff --git a/tests/writers/__init__.py b/tests/writers/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tests/writers/__init__.py @@ -0,0 +1 @@ + diff --git a/tests/writers/markdown_tests.py b/tests/writers/markdown_tests.py new file mode 100644 index 0000000..f334dfa --- /dev/null +++ b/tests/writers/markdown_tests.py @@ -0,0 +1,35 @@ +from __future__ import unicode_literals + +from nose.tools import istest, assert_equal + +from mammoth.writers.markdown import MarkdownWriter + + +@istest +def special_markdown_characters_are_escaped(): + writer = _create_writer() + writer.text(r"\*") + assert_equal(r"\\\*", writer.as_string()) + + +@istest +def paragraphs_are_terminated_with_double_new_line(): + writer = _create_writer() + writer.start("p"); + writer.text("Hello"); + writer.end("p"); + assert_equal("Hello\n\n", writer.as_string()) + + +@istest +def h1_elements_are_converted_to_heading_with_leading_hash(): + writer = _create_writer() + writer.start("h1"); + writer.text("Hello"); + writer.end("h1"); + assert_equal("# Hello\n\n", writer.as_string()) + + + +def _create_writer(): + return MarkdownWriter() -- cgit v1.2.3