diff --git a/src/calibre/ebooks/html.py b/src/calibre/ebooks/html.py index 044c3390df..0f497a598c 100644 --- a/src/calibre/ebooks/html.py +++ b/src/calibre/ebooks/html.py @@ -177,7 +177,6 @@ class HTMLFile(object): raise IgnoreFile(msg, err.errno) self.is_binary = not bool(self.HTML_PAT.search(src[:1024])) - self.title = None if not self.is_binary: if encoding is None: encoding = xml_to_unicode(src[:4096], verbose=verbose)[-1] @@ -187,7 +186,7 @@ class HTMLFile(object): src = src.decode(encoding, 'replace') match = self.TITLE_PAT.search(src) - self.title = match.group(1) if match is not None else None + self.title = match.group(1) if match is not None else self.title self.find_links(src) @@ -650,7 +649,6 @@ class Processor(Parser): elem.set('id', id) add_item(href, id, text, toc, type='chapter') - referrer = toc if self.htmlfile.referrer is not None: try: @@ -662,14 +660,13 @@ class Processor(Parser): break except KeyError: pass + if referrer is toc: + text = self.htmlfile.title + name = self.htmlfile_map[self.htmlfile.referrer] + href = 'content/'+name + referrer = add_item(href, None, text, toc) - - - - if referrer.href != href: # Happens for root file - target = add_item(href, None, unicode(self.htmlfile.title), referrer, type='file') - # Add links to TOC if int(self.opts.max_toc_links) > 0: for link in list(self.LINKS_PATH(self.root))[:self.opts.max_toc_links]: @@ -682,10 +679,9 @@ class Processor(Parser): href, fragment = parts[0], None if len(parts) > 1: fragment = parts[1] - if self.htmlfile.referrer is not None: - name = self.htmlfile_map[self.htmlfile.referrer.path] - add_item(href, fragment, text, target) - + add_item(href, fragment, text, referrer) + + @classmethod def preprocess_css(cls, css, dpi=96): def rescale(match):