From e8df9ad0205a8efec1ae2e4604555459167ff9d5 Mon Sep 17 00:00:00 2001 From: shirshasa Date: Fri, 3 Sep 2021 10:20:55 +0300 Subject: [PATCH] epub converter: fix colors, style in

---
 src/html_epub_preprocessor.py | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/html_epub_preprocessor.py b/src/html_epub_preprocessor.py
index c06a92c..c25e38b 100644
--- a/src/html_epub_preprocessor.py
+++ b/src/html_epub_preprocessor.py
@@ -501,15 +501,20 @@ def preprocess_pre_tags(chapter_tag):
 
         for child in pre.children:
             if isinstance(child, NavigableString):
-                text = pre.text
-                text = _prepare_formatted(text)
-                elements = re.split('\r\n|\n|\r', text)
-                for i in elements:
-                    new_tag.append(NavigableString(i))
+                cleaned_text = _prepare_formatted(pre.text)
+                sub_strings = re.split('\r\n|\n|\r', cleaned_text)
+                for string in sub_strings:
+                    new_tag.append(NavigableString(string))
                     new_tag.append(BeautifulSoup(features='lxml').new_tag('br'))
             else:
-                child.string = _prepare_formatted(child.text)
-                new_tag.append(child.extract())
+                for sub_child in child.children:
+                    if isinstance(sub_child, NavigableString):
+                        cleaned_text2 = _prepare_formatted(str(sub_child))
+                        sub_child.replace_with(NavigableString(cleaned_text2))
+                    else:
+                        sub_child.string = _prepare_formatted(sub_child.text)
+                cleaned_tag = child.extract()
+                new_tag.append(cleaned_tag)
                 if to_add_br:
                     new_tag.append(BeautifulSoup(features='lxml').new_tag('br'))