Make functionality to ensure nav re-useable

This commit is contained in:
Kovid Goyal 2021-10-23 11:29:03 +05:30
parent be73536c26
commit bd7d859ac2
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -674,8 +674,7 @@ def ensure_single_nav_of_type(root, ntype='toc'):
return nav return nav
def commit_nav_toc(container, toc, lang=None, landmarks=None, previous_nav=None): def ensure_container_has_nav(container, lang=None, previous_nav=None):
from calibre.ebooks.oeb.polish.pretty import pretty_xml_tree
tocname = find_existing_nav_toc(container) tocname = find_existing_nav_toc(container)
if previous_nav is not None: if previous_nav is not None:
nav_name = container.href_to_name(previous_nav[0]) nav_name = container.href_to_name(previous_nav[0])
@ -697,6 +696,12 @@ def commit_nav_toc(container, toc, lang=None, landmarks=None, previous_nav=None)
lang = lang_as_iso639_1(lang) or lang lang = lang_as_iso639_1(lang) or lang
root.set('lang', lang) root.set('lang', lang)
root.set('{%s}lang' % XML_NS, lang) root.set('{%s}lang' % XML_NS, lang)
return tocname, root
def commit_nav_toc(container, toc, lang=None, landmarks=None, previous_nav=None):
from calibre.ebooks.oeb.polish.pretty import pretty_xml_tree
tocname, root = ensure_container_has_nav(container, lang=lang, previous_nav=previous_nav)
nav = ensure_single_nav_of_type(root, 'toc') nav = ensure_single_nav_of_type(root, 'toc')
if toc.toc_title: if toc.toc_title:
nav.append(nav.makeelement(XHTML('h1'))) nav.append(nav.makeelement(XHTML('h1')))