mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
Fixed ordered list numbers not being included in EPUB content conversion
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
- Improved the markdown logic to better handle various markdown structures and cases.
|
- Improved the markdown logic to better handle various markdown structures and cases.
|
||||||
- Fixed save options not working correctly in queue mode, mentioned by @jborza in #78
|
- Fixed save options not working correctly in queue mode, mentioned by @jborza in #78
|
||||||
- Fixed `No Qt platform plugin could be initialized` error, mentioned by @sunrainxyz in #59
|
- Fixed `No Qt platform plugin could be initialized` error, mentioned by @sunrainxyz in #59
|
||||||
|
- Fixed ordered list numbers not being included in EPUB content conversion. The numbers are now properly included in the converted content, mentioned by @jefro108 in #47
|
||||||
- Potentially fixed subtitle generation stucks at 9:59:59, mentioned by @bolaykim in #73
|
- Potentially fixed subtitle generation stucks at 9:59:59, mentioned by @bolaykim in #73
|
||||||
- Improvements in code and documentation.
|
- Improvements in code and documentation.
|
||||||
|
|
||||||
|
|||||||
@@ -321,9 +321,23 @@ class HandlerDialog(QDialog):
|
|||||||
html_content = self.doc_content.get(doc_href, "")
|
html_content = self.doc_content.get(doc_href, "")
|
||||||
if html_content:
|
if html_content:
|
||||||
soup = BeautifulSoup(html_content, "html.parser")
|
soup = BeautifulSoup(html_content, "html.parser")
|
||||||
|
|
||||||
|
# Handle ordered lists by prepending numbers to list items
|
||||||
|
for ol in soup.find_all("ol"):
|
||||||
|
# Get start attribute or default to 1
|
||||||
|
start = int(ol.get("start", 1))
|
||||||
|
for i, li in enumerate(ol.find_all("li", recursive=False)):
|
||||||
|
# Insert the number at the beginning of the list item
|
||||||
|
number_text = f"{start + i}) "
|
||||||
|
if li.string:
|
||||||
|
li.string.replace_with(number_text + li.string)
|
||||||
|
else:
|
||||||
|
li.insert(0, NavigableString(number_text))
|
||||||
|
|
||||||
# Remove sup and sub tags
|
# Remove sup and sub tags
|
||||||
for tag in soup.find_all(["sup", "sub"]):
|
for tag in soup.find_all(["sup", "sub"]):
|
||||||
tag.decompose()
|
tag.decompose()
|
||||||
|
|
||||||
text = clean_text(soup.get_text()).strip()
|
text = clean_text(soup.get_text()).strip()
|
||||||
if text:
|
if text:
|
||||||
self.content_texts[doc_href] = text
|
self.content_texts[doc_href] = text
|
||||||
@@ -627,10 +641,26 @@ class HandlerDialog(QDialog):
|
|||||||
slice_html = current_doc_html
|
slice_html = current_doc_html
|
||||||
if slice_html.strip():
|
if slice_html.strip():
|
||||||
slice_soup = BeautifulSoup(slice_html, "html.parser")
|
slice_soup = BeautifulSoup(slice_html, "html.parser")
|
||||||
|
# Add line breaks after paragraphs and divs
|
||||||
for tag in slice_soup.find_all(["p", "div"]):
|
for tag in slice_soup.find_all(["p", "div"]):
|
||||||
tag.append("\n\n")
|
tag.append("\n\n")
|
||||||
|
|
||||||
|
# Handle ordered lists by prepending numbers to list items
|
||||||
|
for ol in slice_soup.find_all("ol"):
|
||||||
|
# Get start attribute or default to 1
|
||||||
|
start = int(ol.get("start", 1))
|
||||||
|
for i, li in enumerate(ol.find_all("li", recursive=False)):
|
||||||
|
# Insert the number at the beginning of the list item
|
||||||
|
number_text = f"{start + i}) "
|
||||||
|
if li.string:
|
||||||
|
li.string.replace_with(number_text + li.string)
|
||||||
|
else:
|
||||||
|
li.insert(0, NavigableString(number_text))
|
||||||
|
|
||||||
|
# Remove sup and sub tags that might contain footnotes
|
||||||
for tag in slice_soup.find_all(["sup", "sub"]):
|
for tag in slice_soup.find_all(["sup", "sub"]):
|
||||||
tag.decompose()
|
tag.decompose()
|
||||||
|
|
||||||
text = clean_text(slice_soup.get_text()).strip()
|
text = clean_text(slice_soup.get_text()).strip()
|
||||||
if text:
|
if text:
|
||||||
self.content_texts[current_src] = text
|
self.content_texts[current_src] = text
|
||||||
|
|||||||
Reference in New Issue
Block a user