mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix regression that was causing the text of some links to be omitted when converting to LRF
This commit is contained in:
parent
c54d51ccbf
commit
809ba2f328
@ -1423,32 +1423,34 @@ class HTMLConverter(object, LoggingInterface):
|
|||||||
if tagname in ["title", "script", "meta", 'del', 'frameset']:
|
if tagname in ["title", "script", "meta", 'del', 'frameset']:
|
||||||
pass
|
pass
|
||||||
elif tagname == 'a' and self.link_levels >= 0:
|
elif tagname == 'a' and self.link_levels >= 0:
|
||||||
if tag.has_key('href') and not self.link_exclude.match(tag['href'])\
|
if tag.has_key('href') and not self.link_exclude.match(tag['href']):
|
||||||
and urlparse(tag['href'])[0] in ('', 'file'):
|
if urlparse(tag['href'])[0] not in ('', 'file'):
|
||||||
path = munge_paths(self.target_prefix, tag['href'])[0]
|
|
||||||
ext = os.path.splitext(path)[1]
|
|
||||||
if ext: ext = ext[1:].lower()
|
|
||||||
enc = sys.getfilesystemencoding()
|
|
||||||
if not enc:
|
|
||||||
enc = 'utf8'
|
|
||||||
if isinstance(path, unicode):
|
|
||||||
path = path.encode(enc, 'replace')
|
|
||||||
if os.access(path, os.R_OK) and os.path.isfile(path):
|
|
||||||
if ext in ['png', 'jpg', 'bmp', 'jpeg']:
|
|
||||||
self.process_image(path, tag_css)
|
|
||||||
else:
|
|
||||||
text = self.get_text(tag, limit=1000)
|
|
||||||
if not text.strip():
|
|
||||||
text = "Link"
|
|
||||||
self.add_text(text, tag_css, {}, force_span_use=True)
|
|
||||||
self.links.append(self.create_link(self.current_para.contents, tag))
|
|
||||||
if tag.has_key('id') or tag.has_key('name'):
|
|
||||||
key = 'name' if tag.has_key('name') else 'id'
|
|
||||||
self.targets[self.target_prefix+tag[key]] = self.current_block
|
|
||||||
self.current_block.must_append = True
|
|
||||||
else:
|
|
||||||
self.log_debug('Could not follow link to '+tag['href'])
|
|
||||||
self.process_children(tag, tag_css, tag_pseudo_css)
|
self.process_children(tag, tag_css, tag_pseudo_css)
|
||||||
|
else:
|
||||||
|
path = munge_paths(self.target_prefix, tag['href'])[0]
|
||||||
|
ext = os.path.splitext(path)[1]
|
||||||
|
if ext: ext = ext[1:].lower()
|
||||||
|
enc = sys.getfilesystemencoding()
|
||||||
|
if not enc:
|
||||||
|
enc = 'utf8'
|
||||||
|
if isinstance(path, unicode):
|
||||||
|
path = path.encode(enc, 'replace')
|
||||||
|
if os.access(path, os.R_OK) and os.path.isfile(path):
|
||||||
|
if ext in ['png', 'jpg', 'bmp', 'jpeg']:
|
||||||
|
self.process_image(path, tag_css)
|
||||||
|
else:
|
||||||
|
text = self.get_text(tag, limit=1000)
|
||||||
|
if not text.strip():
|
||||||
|
text = "Link"
|
||||||
|
self.add_text(text, tag_css, {}, force_span_use=True)
|
||||||
|
self.links.append(self.create_link(self.current_para.contents, tag))
|
||||||
|
if tag.has_key('id') or tag.has_key('name'):
|
||||||
|
key = 'name' if tag.has_key('name') else 'id'
|
||||||
|
self.targets[self.target_prefix+tag[key]] = self.current_block
|
||||||
|
self.current_block.must_append = True
|
||||||
|
else:
|
||||||
|
self.log_debug('Could not follow link to '+tag['href'])
|
||||||
|
self.process_children(tag, tag_css, tag_pseudo_css)
|
||||||
elif tag.has_key('name') or tag.has_key('id'):
|
elif tag.has_key('name') or tag.has_key('id'):
|
||||||
self.process_anchor(tag, tag_css, tag_pseudo_css)
|
self.process_anchor(tag, tag_css, tag_pseudo_css)
|
||||||
elif tagname == 'img':
|
elif tagname == 'img':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user