From 9bfd99948361000c6432691c5b37c95127c53737 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 1 Aug 2021 11:10:49 +0100 Subject: Convert tab elements to tab characters --- NEWS | 4 ++++ mammoth/raw_text.py | 2 ++ tests/raw_text_tests.py | 9 +++++++++ 3 files changed, 15 insertions(+) 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 @@ -13,6 +13,15 @@ def text_element_is_converted_to_text_content(): assert_equal("Hello.", result) +@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( -- cgit v1.2.3