aboutsummaryrefslogtreecommitdiff
path: root/mammoth/__init__.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-12-01 01:15:25 +0000
committerMichael Williamson <mike@zwobble.org>2013-12-01 01:15:25 +0000
commit68047ef381cb08cf43e5a30ca9dd6e40ccde8cdd (patch)
treedcf862340c7c5d65f94264ddb28dde62aa1c1d5e /mammoth/__init__.py
parent25706255c4a746b6c14afe2d9dd45cf50c2d2208 (diff)
Add basic conversion to HTML
Diffstat (limited to 'mammoth/__init__.py')
-rw-r--r--mammoth/__init__.py43
1 files changed, 42 insertions, 1 deletions
diff --git a/mammoth/__init__.py b/mammoth/__init__.py
index 803273f..195e818 100644
--- a/mammoth/__init__.py
+++ b/mammoth/__init__.py
@@ -1,5 +1,46 @@
from .results import Result
+from . import docx, documents
def convert_to_html(fileobj):
- return Result("", [])
+ document = docx.read(fileobj).value
+ html = _convert_element_to_html(document)
+ return Result(html, [])
+
+
+def _convert_element_to_html(element):
+ return _converters[type(element)](element)
+
+
+_converters = {}
+
+
+def converter(element_type):
+ def add(func):
+ _converters[element_type] = func
+
+ return add
+
+
+@converter(documents.Document)
+def convert_document(document):
+ return _convert_elements_to_html(document.children)
+
+
+@converter(documents.Paragraph)
+def convert_paragraph(paragraph):
+ return "<p>{0}</p>".format(_convert_elements_to_html(paragraph.children))
+
+
+@converter(documents.Run)
+def convert_run(run):
+ return _convert_elements_to_html(run.children)
+
+
+@converter(documents.Text)
+def convert_text(text):
+ return text.value
+
+
+def _convert_elements_to_html(elements):
+ return "".join(map(_convert_element_to_html, elements))