diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-12-14 15:55:19 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-12-14 15:55:19 +0000 |
| commit | 47c7a524e001bd0d9aef872b4a12c0b8efd0d6ff (patch) | |
| tree | 4e3a9fa0bb95dc6b3c2bbb63591d85bc6196a039 /mammoth/conversion.py | |
| parent | 2920e3642ccc1afcd22cf5d4de5fd92f2cee5003 (diff) | |
Move document to HTML conversion to conversion module
Diffstat (limited to 'mammoth/conversion.py')
| -rw-r--r-- | mammoth/conversion.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py new file mode 100644 index 0000000..0d6dd6d --- /dev/null +++ b/mammoth/conversion.py @@ -0,0 +1,41 @@ +from .results import Result +from . import documents + + +def convert_document_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_document_element_to_html, elements)) + |
