From ff3ae041b92406cd6217ae30737ec27ab3129b1c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 20 Dec 2011 10:04:49 +0530 Subject: [PATCH] MOBI Input: Map invalid tags to

tags before parsing, to handle broken nesting. Fixes #905715 (Private bug) --- src/calibre/ebooks/mobi/reader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/calibre/ebooks/mobi/reader.py b/src/calibre/ebooks/mobi/reader.py index 057b119145..8d92403b9f 100644 --- a/src/calibre/ebooks/mobi/reader.py +++ b/src/calibre/ebooks/mobi/reader.py @@ -502,6 +502,7 @@ class MobiReader(object): self.processed_html = self.processed_html.replace('> <', '>\n<') self.processed_html = self.processed_html.replace(']*>', '', self.processed_html) + self.processed_html = re.sub(r'<(/?)o:p', r'<\1p', self.processed_html) # Swap inline and block level elements, and order block level elements according to priority # - lxml and beautifulsoup expect/assume a specific order based on xhtml spec self.processed_html = re.sub(r'(?i)(?P(<(h\d+|i|b|u|em|small|big|strong|tt)>\s*){1,})(?P]*>)', '\g'+'\g', self.processed_html)