diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-05-02 11:51:20 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-05-02 11:51:20 +0100 |
| commit | c294898f2d1a35205debd453ccc30f903fc935b3 (patch) | |
| tree | 4c3195cbe65f03d7c3a257473bf6d2676bb8ac99 | |
| parent | a0155bb9c522b9b008ad3933ffcb9609b0f698e7 (diff) | |
Add support for table cells spanning multiple columns
| -rw-r--r-- | mammoth/conversion.py | 6 | ||||
| -rw-r--r-- | tests/conversion_tests.py | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/mammoth/conversion.py b/mammoth/conversion.py index a2d1d0d..ce4ee21 100644 --- a/mammoth/conversion.py +++ b/mammoth/conversion.py @@ -153,9 +153,13 @@ class _DocumentConverter(documents.ElementVisitor): def visit_table_cell(self, table_cell): + if table_cell.colspan == 1: + attributes = {} + else: + attributes = {"colspan": str(table_cell.colspan)} nodes = [html.force_write] + self._visit_all(table_cell.children) return [ - html.element("td", {}, nodes) + html.element("td", attributes, nodes) ] diff --git a/tests/conversion_tests.py b/tests/conversion_tests.py index 0ffee8e..c989417 100644 --- a/tests/conversion_tests.py +++ b/tests/conversion_tests.py @@ -332,6 +332,22 @@ def empty_cells_are_preserved_in_table(): @istest +def table_cells_are_written_with_colspan_if_not_equal_to_one(): + table = documents.table([ + documents.table_row([ + documents.table_cell([_paragraph_with_text("Top left")], colspan=2), + documents.table_cell([_paragraph_with_text("Top right")]), + ]), + ]) + result = convert_document_element_to_html(table) + expected_html = ( + "<table>" + + "<tr><td colspan=\"2\"><p>Top left</p></td><td><p>Top right</p></td></tr>" + + "</table>") + assert_equal(expected_html, result.value) + + +@istest def line_break_is_converted_to_br(): line_break = documents.line_break() result = convert_document_element_to_html(line_break) |
