aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2021-08-01 11:10:49 +0100
committerMichael Williamson <mike@zwobble.org>2021-08-01 11:10:49 +0100
commit9bfd99948361000c6432691c5b37c95127c53737 (patch)
treeb0db98a7fda5b4a5d9f782a81be527493ad891f6
parent822cc689ce44b1c43ac118b2a13c6d0024d2e194 (diff)
Convert tab elements to tab characters
-rw-r--r--NEWS4
-rw-r--r--mammoth/raw_text.py2
-rw-r--r--tests/raw_text_tests.py9
3 files changed, 15 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 5c77c48..5b65b2c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+# 1.4.17
+
+* When extracting raw text, convert tab elements to tab characters.
+
# 1.4.16
* Handle w:num with invalid w:abstractNumId.
diff --git a/mammoth/raw_text.py b/mammoth/raw_text.py
index ccf50ed..5ffe59f 100644
--- a/mammoth/raw_text.py
+++ b/mammoth/raw_text.py
@@ -4,6 +4,8 @@ from . import documents
def extract_raw_text_from_element(element):
if isinstance(element, documents.Text):
return element.value
+ elif isinstance(element, documents.Tab):
+ return "\t"
else:
text = "".join(map(extract_raw_text_from_element, getattr(element, "children", [])))
if isinstance(element, documents.Paragraph):
diff --git a/tests/raw_text_tests.py b/tests/raw_text_tests.py
index 46602e7..7dd44a0 100644
--- a/tests/raw_text_tests.py
+++ b/tests/raw_text_tests.py
@@ -14,6 +14,15 @@ def text_element_is_converted_to_text_content():
@istest
+def tab_element_is_converted_to_tab_character():
+ element = documents.tab()
+
+ result = extract_raw_text_from_element(element)
+
+ assert_equal("\t", result)
+
+
+@istest
def paragraphs_are_terminated_with_newlines():
element = documents.paragraph(
children=[