mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
When exporting highlights as text or markdown also output top level chapter titles
This commit is contained in:
parent
da6c7c6c3c
commit
d8649c6fed
@ -187,18 +187,29 @@ class Export(Dialog): # {{{
|
|||||||
for a in self.annotations:
|
for a in self.annotations:
|
||||||
bid_groups.setdefault(a['book_id'], []).append(a)
|
bid_groups.setdefault(a['book_id'], []).append(a)
|
||||||
for book_id, group in bid_groups.items():
|
for book_id, group in bid_groups.items():
|
||||||
|
chapter_groups = {}
|
||||||
|
def_chap = (_('Unknown chapter'),)
|
||||||
|
for a in group:
|
||||||
|
toc_titles = a.get('toc_family_titles', def_chap)
|
||||||
|
chapter_groups.setdefault(toc_titles[0], []).append(a)
|
||||||
|
|
||||||
lines.append('## ' + db.field_for('title', book_id))
|
lines.append('## ' + db.field_for('title', book_id))
|
||||||
lines.append('')
|
lines.append('')
|
||||||
for a in group:
|
|
||||||
atype = a['type']
|
for chapter, group in chapter_groups.items():
|
||||||
if library_id:
|
if len(chapter_groups) > 1:
|
||||||
link_prefix = f'calibre://view-book/{library_id}/{book_id}/{a["format"]}?open_at='
|
lines.append('### ' + chapter)
|
||||||
else:
|
lines.append('')
|
||||||
link_prefix = None
|
for a in group:
|
||||||
if atype == 'highlight':
|
atype = a['type']
|
||||||
render_highlight_as_text(a, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
if library_id:
|
||||||
elif atype == 'bookmark':
|
link_prefix = f'calibre://view-book/{library_id}/{book_id}/{a["format"]}?open_at='
|
||||||
render_bookmark_as_text(a, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
else:
|
||||||
|
link_prefix = None
|
||||||
|
if atype == 'highlight':
|
||||||
|
render_highlight_as_text(a, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
||||||
|
elif atype == 'bookmark':
|
||||||
|
render_bookmark_as_text(a, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
||||||
lines.append('')
|
lines.append('')
|
||||||
return '\n'.join(lines).strip()
|
return '\n'.join(lines).strip()
|
||||||
# }}}
|
# }}}
|
||||||
|
@ -141,8 +141,17 @@ class Export(ExportBase):
|
|||||||
lines = []
|
lines = []
|
||||||
as_markdown = fmt == 'md'
|
as_markdown = fmt == 'md'
|
||||||
link_prefix = link_prefix_for_location_links()
|
link_prefix = link_prefix_for_location_links()
|
||||||
for hl in self.annotations:
|
chapter_groups = {}
|
||||||
render_highlight_as_text(hl, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
def_chap = (_('Unknown chapter'),)
|
||||||
|
for a in self.annotations:
|
||||||
|
toc_titles = a.get('toc_family_titles', def_chap)
|
||||||
|
chapter_groups.setdefault(toc_titles[0], []).append(a)
|
||||||
|
for chapter, group in chapter_groups.items():
|
||||||
|
if len(chapter_groups) > 1:
|
||||||
|
lines.append('### ' + chapter)
|
||||||
|
lines.append('')
|
||||||
|
for hl in group:
|
||||||
|
render_highlight_as_text(hl, lines, as_markdown=as_markdown, link_prefix=link_prefix)
|
||||||
return '\n'.join(lines).strip()
|
return '\n'.join(lines).strip()
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user