diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py
index a030c324f8..262c290fbf 100644
--- a/src/libprs500/ebooks/lrf/html/convert_from.py
+++ b/src/libprs500/ebooks/lrf/html/convert_from.py
@@ -362,6 +362,7 @@ class HTMLConverter(object):
self.targets = {} #: and id elements
self.links = {} #: elements
self.processed_files = []
+ self.unused_target_blocks = [] #: Used to remove extra TextBlocks
self.link_level = 0 #: Current link level
self.memory = [] #: Used to ensure that duplicate CSS unhandled erros are not reported
self.tops = {} #: element representing the top of each HTML file in the LRF file
@@ -648,6 +649,10 @@ class HTMLConverter(object):
cb = CharButton(jb, text=text)
para.contents = []
para.append(cb)
+ try:
+ self.unused_target_blocks.remove(tb)
+ except:
+ pass
finally:
os.chdir(cwd)
@@ -1183,10 +1188,12 @@ class HTMLConverter(object):
self.current_para.append(elem(text))
elif tagname in ['p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6']:
- if tag.has_key('id'):
+ if tag.has_key('id'):
target = self.book.create_text_block(textStyle=self.current_block.textStyle,
blockStyle=self.current_block.blockStyle)
- self.targets[self.target_prefix+tag['id']] = target
+ tkey = self.target_prefix+tag['id']
+ self.targets[tkey] = target
+ self.unused_target_blocks.append(target)
self.end_current_block()
self.current_page.append(target)
src = self.get_text(tag, limit=1000)
@@ -1272,7 +1279,13 @@ class HTMLConverter(object):
self.end_current_block()
+ def remove_unused_target_blocks(self):
+ for block in self.unused_target_blocks:
+ block.parent.contents.remove(block)
+ block.parent = None
+
def writeto(self, path, lrs=False):
+ self.remove_unused_target_blocks()
self.book.renderLrs(path) if lrs else self.book.renderLrf(path)
def cleanup(self):