mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 18:24:30 -04:00
Edit Book: Spell check should not fail if there are non-HTML files in the spine
Fixes #773 (Check type of the parsed data before spell check)
This commit is contained in:
parent
77a40a22c3
commit
022ab0ff3a
@ -119,8 +119,8 @@ def add_words_from_escaped_html(text, words, file_name, node, attr, locale):
|
|||||||
loc.location_node, loc.node_item = node, (False, attr)
|
loc.location_node, loc.node_item = node, (False, attr)
|
||||||
words[k].extend(locs)
|
words[k].extend(locs)
|
||||||
|
|
||||||
_opf_file_as = '{%s}file-as' % OPF_NAMESPACES['opf']
|
|
||||||
|
|
||||||
|
_opf_file_as = '{%s}file-as' % OPF_NAMESPACES['opf']
|
||||||
opf_spell_tags = {'title', 'creator', 'subject', 'description', 'publisher'}
|
opf_spell_tags = {'title', 'creator', 'subject', 'description', 'publisher'}
|
||||||
|
|
||||||
# We can only use barename() for tag names and simple attribute checks so that
|
# We can only use barename() for tag names and simple attribute checks so that
|
||||||
@ -136,6 +136,7 @@ def read_words_from_opf(root, words, file_name, book_locale):
|
|||||||
add_words_from_text(tag, 'text', words, file_name, book_locale)
|
add_words_from_text(tag, 'text', words, file_name, book_locale)
|
||||||
add_words_from_attr(tag, _opf_file_as, words, file_name, book_locale)
|
add_words_from_attr(tag, _opf_file_as, words, file_name, book_locale)
|
||||||
|
|
||||||
|
|
||||||
ncx_spell_tags = {'text'}
|
ncx_spell_tags = {'text'}
|
||||||
xml_spell_tags = opf_spell_tags | ncx_spell_tags
|
xml_spell_tags = opf_spell_tags | ncx_spell_tags
|
||||||
|
|
||||||
@ -145,6 +146,7 @@ def read_words_from_ncx(root, words, file_name, book_locale):
|
|||||||
if tag.text is not None:
|
if tag.text is not None:
|
||||||
add_words_from_text(tag, 'text', words, file_name, book_locale)
|
add_words_from_text(tag, 'text', words, file_name, book_locale)
|
||||||
|
|
||||||
|
|
||||||
html_spell_tags = {'script', 'style', 'link'}
|
html_spell_tags = {'script', 'style', 'link'}
|
||||||
|
|
||||||
|
|
||||||
@ -212,7 +214,7 @@ def get_all_words(container, book_locale, get_word_count=False):
|
|||||||
read_words_from_opf(root, words, file_name, book_locale)
|
read_words_from_opf(root, words, file_name, book_locale)
|
||||||
elif file_name == toc:
|
elif file_name == toc:
|
||||||
read_words_from_ncx(root, words, file_name, book_locale)
|
read_words_from_ncx(root, words, file_name, book_locale)
|
||||||
else:
|
elif hasattr(root, 'xpath'):
|
||||||
read_words_from_html(root, words, file_name, book_locale)
|
read_words_from_html(root, words, file_name, book_locale)
|
||||||
count = words.pop(None)
|
count = words.pop(None)
|
||||||
ans = {k:group_sort(v) for k, v in words.iteritems()}
|
ans = {k:group_sort(v) for k, v in words.iteritems()}
|
||||||
@ -273,6 +275,7 @@ def undo_replace_word(container, undo_cache):
|
|||||||
changed.add(file_name)
|
changed.add(file_name)
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import pprint
|
import pprint
|
||||||
from calibre.gui2.tweak_book import set_book_locale, dictionaries
|
from calibre.gui2.tweak_book import set_book_locale, dictionaries
|
||||||
|
Loading…
x
Reference in New Issue
Block a user