mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
3848fb45d0
commit
a80357301c
@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
- [1918437] E-book viewer: Fix incorrect ToC navigation in books that link the entries to inline tags that wrap block tags that span multiple pages
|
- [1918437] E-book viewer: Fix incorrect ToC navigation in books that link the entries to inline tags that wrap block tags that span multiple pages
|
||||||
|
|
||||||
- [1920592] Category editor: Searching in library shouldn't automatically opens Quickview
|
- [1920592] Category editor: Searching in library shouldn't automatically open Quickview
|
||||||
|
|
||||||
- [1919260] Conversion: Fix a hang caused by long sequences of non-word characters when heuristics are enabled, either explicitly or for some input formats such as TXT
|
- [1919260] Conversion: Fix a hang caused by long sequences of non-word characters when heuristics are enabled, either explicitly or for some input formats such as TXT
|
||||||
|
|
||||||
|
@ -1006,7 +1006,7 @@ I want some feature added to calibre. What can I do?
|
|||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
You have two choices:
|
You have two choices:
|
||||||
1. Create a patch by hacking on calibre and send it to me for review and inclusion. See `Development <https://calibre-ebook.com/get-involved>`_.
|
1. Create a patch by hacking on calibre and send it to me for review and inclusion. See `Development <https://calibre-ebook.com/get-involved>`_.
|
||||||
2. `Open a bug requesting the feature <https://calibre-ebook.com/bugs>`_ . Remember that while you may think your feature request is extremely important/essential, calibre developers might not agree. Fortunately, calibre is open source, which means you always have the option of implementing your feature yourself, or hiring someone to do it for you. Furthermore, calibre has a comprehensive plugin architecture, so you might be able to develop your feature as a plugin, see :ref:`pluginstutorial`.
|
2. `Open a bug requesting the feature <https://calibre-ebook.com/bugs>`_. Remember that while you may think your feature request is extremely important/essential, calibre developers might not agree. Fortunately, calibre is open source, which means you always have the option of implementing your feature yourself, or hiring someone to do it for you. Furthermore, calibre has a comprehensive plugin architecture, so you might be able to develop your feature as a plugin, see :ref:`pluginstutorial`.
|
||||||
|
|
||||||
Why doesn't calibre have an automatic update?
|
Why doesn't calibre have an automatic update?
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
@ -529,7 +529,7 @@ page for the author. This can be customized by right clicking on the author
|
|||||||
name and selecting Manage this author.
|
name and selecting Manage this author.
|
||||||
|
|
||||||
Similarly, if you download metadata for the book, the Book details panel will
|
Similarly, if you download metadata for the book, the Book details panel will
|
||||||
automatically show you links pointing to the web pages for the book on amazon,
|
automatically show you links pointing to the web pages for the book on Amazon,
|
||||||
worldcat, etc. from where the metadata was downloaded.
|
worldcat, etc. from where the metadata was downloaded.
|
||||||
|
|
||||||
You can right click on individual e-book formats in the Book details panel to
|
You can right click on individual e-book formats in the Book details panel to
|
||||||
|
@ -304,7 +304,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu):
|
|||||||
dt = data['type']
|
dt = data['type']
|
||||||
|
|
||||||
def add_copy_action(name):
|
def add_copy_action(name):
|
||||||
copy_menu.addAction(QIcon(I('edit-copy.png')), _('Copy {} to clipboard').format(name), lambda: QApplication.instance().clipboard().setText(name))
|
copy_menu.addAction(QIcon(I('edit-copy.png')), _('The text: {}').format(name), lambda: QApplication.instance().clipboard().setText(name))
|
||||||
|
|
||||||
if dt == 'format':
|
if dt == 'format':
|
||||||
add_format_entries(menu, data, book_info, copy_menu, search_menu)
|
add_format_entries(menu, data, book_info, copy_menu, search_menu)
|
||||||
@ -313,7 +313,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu):
|
|||||||
if data['url'] != 'calibre':
|
if data['url'] != 'calibre':
|
||||||
ac = book_info.copy_link_action
|
ac = book_info.copy_link_action
|
||||||
ac.current_url = data['url']
|
ac.current_url = data['url']
|
||||||
ac.setText(_('&Copy author link'))
|
ac.setText(_('&Author link'))
|
||||||
copy_menu.addAction(ac)
|
copy_menu.addAction(ac)
|
||||||
add_copy_action(author)
|
add_copy_action(author)
|
||||||
init_find_in_tag_browser(search_menu, find_action, 'authors', author)
|
init_find_in_tag_browser(search_menu, find_action, 'authors', author)
|
||||||
@ -338,7 +338,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu):
|
|||||||
if isinstance(path, int):
|
if isinstance(path, int):
|
||||||
path = get_gui().library_view.model().db.abspath(path, index_is_id=True)
|
path = get_gui().library_view.model().db.abspath(path, index_is_id=True)
|
||||||
ac.current_url = path
|
ac.current_url = path
|
||||||
ac.setText(_('Copy path'))
|
ac.setText(_('The location of the book'))
|
||||||
copy_menu.addAction(ac)
|
copy_menu.addAction(ac)
|
||||||
else:
|
else:
|
||||||
field = data.get('field')
|
field = data.get('field')
|
||||||
@ -348,7 +348,7 @@ def add_item_specific_entries(menu, data, book_info, copy_menu, search_menu):
|
|||||||
if field == 'identifiers':
|
if field == 'identifiers':
|
||||||
ac = book_info.copy_link_action
|
ac = book_info.copy_link_action
|
||||||
ac.current_url = value
|
ac.current_url = value
|
||||||
ac.setText(_('&Copy identifier'))
|
ac.setText(_('&Identifier'))
|
||||||
copy_menu.addAction(ac)
|
copy_menu.addAction(ac)
|
||||||
remove_value = data['id_type']
|
remove_value = data['id_type']
|
||||||
init_find_in_tag_browser(search_menu, find_action, field, remove_value)
|
init_find_in_tag_browser(search_menu, find_action, field, remove_value)
|
||||||
|
@ -1709,14 +1709,14 @@ class BasicNewsRecipe(Recipe):
|
|||||||
'''
|
'''
|
||||||
Convenience method to take a
|
Convenience method to take a
|
||||||
`BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`_
|
`BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`_
|
||||||
`Tag` and extract the text from it recursively, including any CDATA sections
|
:code:`Tag` and extract the text from it recursively, including any CDATA sections
|
||||||
and alt tag attributes. Return a possibly empty Unicode string.
|
and alt tag attributes. Return a possibly empty Unicode string.
|
||||||
|
|
||||||
`use_alt`: If `True` try to use the alt attribute for tags that don't
|
`use_alt`: If `True` try to use the alt attribute for tags that don't
|
||||||
have any textual content
|
have any textual content
|
||||||
|
|
||||||
`tag`: `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`_
|
`tag`: `BeautifulSoup <https://www.crummy.com/software/BeautifulSoup/bs4/doc/>`_
|
||||||
`Tag`
|
:code:`Tag`
|
||||||
'''
|
'''
|
||||||
if tag is None:
|
if tag is None:
|
||||||
return ''
|
return ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user