aboutsummaryrefslogtreecommitdiff
path: root/mammoth/conversion.py
blob: 0d6dd6dc1ed1247a4c872f9e8559dda3586d970f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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))