From 809ba2f328a68eb187c048400a20521f9d86997c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 28 May 2008 21:23:35 -0700 Subject: [PATCH] Fix regression that was causing the text of some links to be omitted when converting to LRF --- src/calibre/ebooks/lrf/html/convert_from.py | 52 +++++++++++---------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/src/calibre/ebooks/lrf/html/convert_from.py b/src/calibre/ebooks/lrf/html/convert_from.py index fe572a963a..53a4de944a 100644 --- a/src/calibre/ebooks/lrf/html/convert_from.py +++ b/src/calibre/ebooks/lrf/html/convert_from.py @@ -1423,32 +1423,34 @@ class HTMLConverter(object, LoggingInterface): if tagname in ["title", "script", "meta", 'del', 'frameset']: pass elif tagname == 'a' and self.link_levels >= 0: - if tag.has_key('href') and not self.link_exclude.match(tag['href'])\ - and urlparse(tag['href'])[0] 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']) + if tag.has_key('href') and not self.link_exclude.match(tag['href']): + if urlparse(tag['href'])[0] not in ('', 'file'): 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'): self.process_anchor(tag, tag_css, tag_pseudo_css) elif tagname == 'img':