mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 10:44:09 -04:00
Optimize prefix insertion
This commit is contained in:
parent
3f8c675690
commit
49e45e052e
@ -1364,28 +1364,19 @@ class CatalogBuilder:
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def format_prefix(self, prefix_char):
|
def insert_prefix(self, soup, parent_tag, pos, prefix_char):
|
||||||
""" Generate HTML snippet with prefix character.
|
""" Generate HTML snippet with prefix character.
|
||||||
|
|
||||||
Return a <code> snippet for Kindle, <span> snippet for EPUB.
|
Insert a <code> snippet for Kindle, <span> snippet for EPUB.
|
||||||
Optimized to preserve first-column alignment for MOBI, EPUB.
|
Optimized to preserve first-column alignment for MOBI, EPUB.
|
||||||
|
|
||||||
Args:
|
|
||||||
prefix_char (str): prefix character or None
|
|
||||||
|
|
||||||
Return:
|
|
||||||
(str): BeautifulSoup HTML snippet to be inserted into <p> line item entry.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
prefix_char = prepare_string_for_xml(prefix_char or NBSP)
|
|
||||||
if self.opts.fmt == 'mobi':
|
if self.opts.fmt == 'mobi':
|
||||||
tagname = 'code'
|
tag = soup.new_tag('code')
|
||||||
html = f'<{tagname}>{prefix_char}</{tagname}>'
|
|
||||||
else:
|
else:
|
||||||
tagname = 'span'
|
tag = soup.new_tag('span')
|
||||||
html = f'<{tagname} class="prefix">{prefix_char}</{tagname}>'
|
tag['class'] = 'prefix'
|
||||||
soup = BeautifulSoup(html)
|
tag.append(prefix_char or NBSP)
|
||||||
return soup.find(tagname)
|
parent_tag.insert(pos, tag)
|
||||||
|
|
||||||
def generate_author_anchor(self, author):
|
def generate_author_anchor(self, author):
|
||||||
""" Generate legal XHTML anchor.
|
""" Generate legal XHTML anchor.
|
||||||
@ -1566,7 +1557,7 @@ class CatalogBuilder:
|
|||||||
pBookTag['class'] = "line_item"
|
pBookTag['class'] = "line_item"
|
||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
pBookTag.insert(ptc, self.format_prefix(book['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, book['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
@ -1717,7 +1708,7 @@ class CatalogBuilder:
|
|||||||
pBookTag['class'] = "line_item"
|
pBookTag['class'] = "line_item"
|
||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
pBookTag.insert(ptc, self.format_prefix(new_entry['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, new_entry['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
@ -1769,7 +1760,7 @@ class CatalogBuilder:
|
|||||||
pBookTag['class'] = "line_item"
|
pBookTag['class'] = "line_item"
|
||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
pBookTag.insert(ptc, self.format_prefix(new_entry['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, new_entry['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
@ -2285,7 +2276,7 @@ class CatalogBuilder:
|
|||||||
pBookTag['class'] = "line_item"
|
pBookTag['class'] = "line_item"
|
||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
pBookTag.insert(ptc, self.format_prefix(book['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, book['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
@ -2418,7 +2409,7 @@ class CatalogBuilder:
|
|||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
book['prefix'] = self.discover_prefix(book)
|
book['prefix'] = self.discover_prefix(book)
|
||||||
pBookTag.insert(ptc, self.format_prefix(book['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, book['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
@ -2577,7 +2568,7 @@ class CatalogBuilder:
|
|||||||
pBookTag['class'] = "line_item"
|
pBookTag['class'] = "line_item"
|
||||||
ptc = 0
|
ptc = 0
|
||||||
|
|
||||||
pBookTag.insert(ptc, self.format_prefix(book['prefix']))
|
self.insert_prefix(soup, pBookTag, ptc, book['prefix'])
|
||||||
ptc += 1
|
ptc += 1
|
||||||
|
|
||||||
spanTag = soup.new_tag("span")
|
spanTag = soup.new_tag("span")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user