aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mammoth/writers/markdown.py5
-rw-r--r--tests/writers/__init__.py1
-rw-r--r--tests/writers/markdown_tests.py35
3 files changed, 39 insertions, 2 deletions
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()