fix(api): Stopped extra newlines from appearing with bold/italics (#40)
This commit is contained in:
+15
-29
@@ -151,6 +151,7 @@ def generate_clean_part_html(part: Part, content: str) -> bs4.Tag:
|
|||||||
raise Exception()
|
raise Exception()
|
||||||
|
|
||||||
for child in html.find_all("p"):
|
for child in html.find_all("p"):
|
||||||
|
current_paragraph = clean.new_tag("p")
|
||||||
for p_child in list(child.children):
|
for p_child in list(child.children):
|
||||||
if not p_child:
|
if not p_child:
|
||||||
continue
|
continue
|
||||||
@@ -161,37 +162,22 @@ def generate_clean_part_html(part: Part, content: str) -> bs4.Tag:
|
|||||||
src = p_child["src"]
|
src = p_child["src"]
|
||||||
img_tag = clean.new_tag("img")
|
img_tag = clean.new_tag("img")
|
||||||
img_tag["src"] = src
|
img_tag["src"] = src
|
||||||
break_tag = clean.new_tag("br")
|
|
||||||
section.append(img_tag)
|
section.append(img_tag)
|
||||||
section.append(break_tag)
|
section.append(clean.new_tag("br"))
|
||||||
elif p_child.name == "b":
|
elif p_child.name in ["b", "i"]:
|
||||||
content = p_child.text
|
styled_tag = clean.new_tag(p_child.name)
|
||||||
p_tag = clean.new_tag("p")
|
styled_content = clean.new_string(p_child.text)
|
||||||
bold_tag = clean.new_tag("b")
|
styled_tag.append(styled_content)
|
||||||
bold_content = clean.new_string(content)
|
current_paragraph.append(styled_tag)
|
||||||
|
else:
|
||||||
bold_tag.append(bold_content)
|
# Append any other tags as-is
|
||||||
p_tag.append(bold_tag)
|
current_paragraph.append(p_child)
|
||||||
|
|
||||||
section.append(p_tag)
|
|
||||||
|
|
||||||
elif p_child.name == "i":
|
|
||||||
content = p_child.text
|
|
||||||
p_tag = clean.new_tag("p")
|
|
||||||
italic_tag = clean.new_tag("i")
|
|
||||||
italic_content = clean.new_string(content)
|
|
||||||
|
|
||||||
italic_tag.append(italic_content)
|
|
||||||
p_tag.append(italic_tag)
|
|
||||||
|
|
||||||
section.append(p_tag)
|
|
||||||
|
|
||||||
elif isinstance(p_child, bs4.element.NavigableString):
|
elif isinstance(p_child, bs4.element.NavigableString):
|
||||||
content = p_child.text
|
content = clean.new_string(p_child)
|
||||||
p_tag = clean.new_tag("p")
|
current_paragraph.append(content)
|
||||||
p_content = clean.new_string(content)
|
|
||||||
p_tag.append(p_content)
|
if current_paragraph.contents:
|
||||||
section.append(p_tag)
|
section.append(current_paragraph)
|
||||||
|
|
||||||
if not list(child.children):
|
if not list(child.children):
|
||||||
# Some p tags only contain brs, once brs are removed, they are empty and can be removed as well.
|
# Some p tags only contain brs, once brs are removed, they are empty and can be removed as well.
|
||||||
|
|||||||
Reference in New Issue
Block a user