mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Access the publications Landmarks via Go to...
This commit is contained in:
parent
1600c3a347
commit
929595c805
@ -26,7 +26,7 @@ from calibre.ebooks.oeb.polish.cover import set_epub_cover, find_cover_image
|
||||
from calibre.ebooks.oeb.polish.css import transform_css
|
||||
from calibre.ebooks.oeb.polish.utils import extract
|
||||
from calibre.ebooks.css_transform_rules import StyleDeclaration
|
||||
from calibre.ebooks.oeb.polish.toc import get_toc
|
||||
from calibre.ebooks.oeb.polish.toc import get_toc, get_landmarks
|
||||
from calibre.ebooks.oeb.polish.utils import guess_type
|
||||
from calibre.utils.short_uuid import uuid4
|
||||
from calibre.utils.logging import default_log
|
||||
@ -182,11 +182,14 @@ class Container(ContainerBase):
|
||||
}
|
||||
raster_cover_name, titlepage_name = self.create_cover_page(input_fmt.lower())
|
||||
toc = get_toc(self).to_dict(count())
|
||||
spine = [name for name, is_linear in self.spine_names]
|
||||
spineq = frozenset(spine)
|
||||
landmarks = [l for l in get_landmarks(self) if l['dest'] in spineq]
|
||||
|
||||
self.book_render_data = data = {
|
||||
'version': RENDER_VERSION,
|
||||
'toc':toc,
|
||||
'spine':[name for name, is_linear in self.spine_names],
|
||||
'spine':spine,
|
||||
'link_uid': uuid4(),
|
||||
'book_hash': book_hash,
|
||||
'is_comic': input_fmt.lower() in {'cbc', 'cbz', 'cbr', 'cb7'},
|
||||
@ -196,6 +199,7 @@ class Container(ContainerBase):
|
||||
'total_length': 0,
|
||||
'spine_length': 0,
|
||||
'toc_anchor_map': toc_anchor_map(toc),
|
||||
'landmarks': landmarks,
|
||||
}
|
||||
# Mark the spine as dirty since we have to ensure it is normalized
|
||||
for name in data['spine']:
|
||||
|
@ -14,6 +14,7 @@ from read_book.globals import current_book
|
||||
def create_goto_list(onclick):
|
||||
ans = E.div()
|
||||
items = v'[]'
|
||||
landmarks = current_book().manifest.landmarks
|
||||
toc = current_book().manifest.toc
|
||||
id_map = get_toc_maps(toc)[1]
|
||||
before, after = get_border_nodes(toc, id_map)
|
||||
@ -23,6 +24,8 @@ def create_goto_list(onclick):
|
||||
items.push(create_item(_('Previous Section'), icon='caret-left', subtitle=before.title, action=onclick.bind(None, before.dest, before.frag)))
|
||||
items.push(create_item(_('Document Start'), action=onclick.bind(None, def(view): view.goto_doc_boundary(True);)))
|
||||
items.push(create_item(_('Document End'), action=onclick.bind(None, def(view): view.goto_doc_boundary(False);)))
|
||||
for l in landmarks:
|
||||
items.push(create_item(l.title, action=onclick.bind(None, l.dest, l.frag)))
|
||||
build_list(ans, items)
|
||||
return ans
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user