From 458e22a6ac73dc86ab74c9bee1d2c03f24a8b8f5 Mon Sep 17 00:00:00 2001 From: John Schember Date: Thu, 14 May 2009 07:15:25 -0400 Subject: [PATCH] fb2 output, style tail text properly. --- src/calibre/ebooks/fb2/fb2ml.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/calibre/ebooks/fb2/fb2ml.py b/src/calibre/ebooks/fb2/fb2ml.py index e328c3744b..0c0a4fb3f3 100644 --- a/src/calibre/ebooks/fb2/fb2ml.py +++ b/src/calibre/ebooks/fb2/fb2ml.py @@ -106,7 +106,7 @@ class FB2MLizer(object): tag_count += 1 fb2_text += '<%s>' % fb2_tag tag_stack.append(fb2_tag) - + for s in STYLES: style_tag = STYLE_MAP.get(style[s], None) if style_tag: @@ -115,19 +115,29 @@ class FB2MLizer(object): tag_stack.append(style_tag) fb2_text += elem.text + + for item in elem: + fb2_text += self.dump_text(item, stylizer, tag_stack) + + close_tags = [] + for i in range(0, tag_count): + close_tags.insert(0, tag_stack.pop()) + + fb2_text += self.close_tags(close_tags) if hasattr(elem, 'tail') and elem.tail != None and elem.tail.strip() != '': if 'p' not in tag_stack: fb2_text += '

%s

' % elem.tail else: fb2_text += elem.tail - - for item in elem: - fb2_text += self.dump_text(item, stylizer, tag_stack) - - for i in range(0, tag_count): - fb2_tag = tag_stack.pop() - fb2_text += '' % fb2_tag return fb2_text + def close_tags(self, tags): + fb2_text = u'' + for i in range(0, len(tags)): + fb2_tag = tags.pop() + fb2_text += '' % fb2_tag + + return fb2_text +