From a2a2f946c794ff065c3d5f3f6a437e84ecb962cd Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 17 Oct 2007 15:49:42 +0000 Subject: [PATCH] Fix TOC generation for single file LITs --- src/libprs500/ebooks/lrf/html/convert_from.py | 14 ++++++++++---- src/libprs500/ebooks/metadata/opf.py | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py index 46ef62b1d9..6ac3f9033f 100644 --- a/src/libprs500/ebooks/lrf/html/convert_from.py +++ b/src/libprs500/ebooks/lrf/html/convert_from.py @@ -595,10 +595,16 @@ class HTMLConverter(object): return outside_links def create_toc(self, toc): - for (path, txt) in toc: - if path in self.tops: - ascii_text = txt.encode('ascii', 'ignore') # Bug in SONY LRF renderer + for (path, fragment, txt) in toc: + ascii_text = txt.encode('ascii', 'ignore') # Bug in SONY LRF renderer + if not fragment and path in self.tops: self.book.addTocEntry(ascii_text, self.tops[path]) + else: + url = path+fragment + if url in self.targets: + print url + self.book.addTocEntry(ascii_text, self.targets[url]) + def end_page(self): """ @@ -632,7 +638,7 @@ class HTMLConverter(object): ib = ImageBlock(self.images[path], x1=width, y1=height, xsize=width, ysize=height, blockwidth=width, blockheight=height) - canvas.put_object(ib, int(5+(pwidth-width)/2.), int((pheight-height)/2.)) + canvas.put_object(ib, int((pwidth-width)/2.), int((pheight-height)/2.)) page.append(canvas) self.book.append(page) diff --git a/src/libprs500/ebooks/metadata/opf.py b/src/libprs500/ebooks/metadata/opf.py index b49e1daf3b..ed7794791f 100644 --- a/src/libprs500/ebooks/metadata/opf.py +++ b/src/libprs500/ebooks/metadata/opf.py @@ -82,11 +82,12 @@ class TOC(list): for a in soup.findAll('a'): if not a.has_key('href'): continue - href = urlparse(unquote(a['href']))[2] + purl = urlparse(unquote(a['href'])) + href, fragment = purl[2], purl[5] if not os.path.isabs(href): href = os.path.join(cwd, href) txt = ''.join([unicode(s).strip() for s in a.findAll(text=True)]) - self.append((href, txt)) + self.append((href, fragment, txt)) class OPFReader(MetaInformation):