mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Add kobo js to dummy title page
This commit is contained in:
parent
644f6701c6
commit
7fb8fad292
@ -36,7 +36,7 @@ from calibre.srv.render_book import Profiler, calculate_number_of_workers
|
|||||||
from calibre.utils.localization import canonicalize_lang, get_lang
|
from calibre.utils.localization import canonicalize_lang, get_lang
|
||||||
from calibre.utils.short_uuid import uuid4
|
from calibre.utils.short_uuid import uuid4
|
||||||
|
|
||||||
KOBO_CSS_ID = 'kobostylehacks'
|
KOBO_CSS_ID = 'kobostylehacks' # kepubify uses class, actual books from Kobo use id
|
||||||
KOBO_JS_NAME = 'kobo.js'
|
KOBO_JS_NAME = 'kobo.js'
|
||||||
KOBO_CSS_NAME = 'kobo.css'
|
KOBO_CSS_NAME = 'kobo.css'
|
||||||
OUTER_DIV_ID = 'book-columns'
|
OUTER_DIV_ID = 'book-columns'
|
||||||
@ -358,7 +358,9 @@ def is_probably_a_title_page(root):
|
|||||||
return (num_images + num_svgs == 1 and textlen <= 10) or (textlen <= 50 and (num_images + num_svgs) < 1)
|
return (num_images + num_svgs == 1 and textlen <= 10) or (textlen <= 50 and (num_images + num_svgs) < 1)
|
||||||
|
|
||||||
|
|
||||||
def add_dummy_title_page(container: Container, cover_image_name: str, mi) -> None:
|
def add_dummy_title_page(container: Container, cover_image_name: str, mi, kobo_js_name: str) -> None:
|
||||||
|
titlepage_name = container.add_file(f'{DUMMY_TITLE_PAGE_NAME}.xhtml', modify_name_if_needed=True, spine_index=0)
|
||||||
|
kobo_js_href = container.name_to_href(kobo_js_name, titlepage_name)
|
||||||
html = f'''\
|
html = f'''\
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
@ -374,12 +376,13 @@ def add_dummy_title_page(container: Container, cover_image_name: str, mi) -> Non
|
|||||||
<style type="text/css" id="{KOBO_CSS_ID}">
|
<style type="text/css" id="{KOBO_CSS_ID}">
|
||||||
{KOBO_CSS}
|
{KOBO_CSS}
|
||||||
</style>
|
</style>
|
||||||
|
<script type="text/javascript" src="{kobo_js_href}"/>
|
||||||
</head>
|
</head>
|
||||||
<body><div id="{OUTER_DIV_ID}"><div id="{INNER_DIV_ID}">
|
<body><div id="{OUTER_DIV_ID}"><div id="{INNER_DIV_ID}">
|
||||||
__CONTENT__
|
__CONTENT__
|
||||||
</div></div></body></html>
|
</div></div></body>
|
||||||
|
</html>
|
||||||
'''
|
'''
|
||||||
titlepage_name = container.add_file(f'{DUMMY_TITLE_PAGE_NAME}.xhtml', modify_name_if_needed=True, spine_index=0)
|
|
||||||
if cover_image_name:
|
if cover_image_name:
|
||||||
cover_href = container.name_to_href(cover_image_name, titlepage_name)
|
cover_href = container.name_to_href(cover_image_name, titlepage_name)
|
||||||
html = html.replace('__CONTENT__', f'<img src="{cover_href}" alt="cover" style="height: 100%" />')
|
html = html.replace('__CONTENT__', f'<img src="{cover_href}" alt="cover" style="height: 100%" />')
|
||||||
@ -491,10 +494,10 @@ def kepubify_container(container: Container, opts: Options, max_workers: int = 0
|
|||||||
cdata = generate_cover(mi)
|
cdata = generate_cover(mi)
|
||||||
cover_image_name = container.add_file(f'{DUMMY_COVER_IMAGE_NAME}.jpeg', cdata, modify_name_if_needed=True)
|
cover_image_name = container.add_file(f'{DUMMY_COVER_IMAGE_NAME}.jpeg', cdata, modify_name_if_needed=True)
|
||||||
container.apply_unique_properties(cover_image_name, 'cover-image')
|
container.apply_unique_properties(cover_image_name, 'cover-image')
|
||||||
|
kobo_js_name = container.add_file(
|
||||||
|
uniqify_name(container, KOBO_JS_NAME), kobo_js(), media_type='application/javascript', suggested_id='js-kobo.js')
|
||||||
if not find_cover_page(container) and not first_spine_item_is_probably_title_page(container):
|
if not find_cover_page(container) and not first_spine_item_is_probably_title_page(container):
|
||||||
add_dummy_title_page(container, cover_image_name, mi)
|
add_dummy_title_page(container, cover_image_name, mi, kobo_js_name)
|
||||||
kobo_js_name = uniqify_name(container, KOBO_JS_NAME)
|
|
||||||
kobo_js_name = container.add_file(kobo_js_name, kobo_js(), media_type='application/javascript', suggested_id='js-kobo.js')
|
|
||||||
do_work_in_parallel(container, kobo_js_name, opts, metadata_lang, max_workers)
|
do_work_in_parallel(container, kobo_js_name, opts, metadata_lang, max_workers)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user