diff --git a/src/mkdocs_to_pdf/generator.py b/src/mkdocs_to_pdf/generator.py index 3c0b9e0e..257f5395 100644 --- a/src/mkdocs_to_pdf/generator.py +++ b/src/mkdocs_to_pdf/generator.py @@ -242,7 +242,7 @@ def shift_heading(elem, page): page_path = self._page_path_for_id(page) h1 = soup.new_tag('h1', id=f'{page_path}') - h1.append(str(page.title)) + h1.append(BeautifulSoup(str(page.title), 'html.parser')) elem.insert(0, h1) return elem diff --git a/src/mkdocs_to_pdf/toc.py b/src/mkdocs_to_pdf/toc.py index f1457ff8..bb2a9e0f 100644 --- a/src/mkdocs_to_pdf/toc.py +++ b/src/mkdocs_to_pdf/toc.py @@ -1,9 +1,8 @@ -from bs4 import PageElement, Tag +from bs4 import PageElement, Tag, BeautifulSoup from .options import Options from .utils.soup_util import clone_element - def make_indexes(soup: PageElement, options: Options) -> None: """ Generate ordered chapter number and TOC of document. @@ -31,11 +30,7 @@ def makeLink(h: Tag) -> Tag: li = soup.new_tag('li') ref = h.get('id', '') a = soup.new_tag('a', href=f'#{ref}') - for el in h.contents: - if el.name == 'a': - a.append(el.contents[0]) - else: - a.append(clone_element(el)) + a.append(BeautifulSoup(h.decode_contents(), 'html.parser')) li.append(a) options.logger.debug(f"| [{h.get_text(separator=' ')}]({ref})") return li