From a951180190ee73ccab447c8c6813c2997c5d8168 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 1 Apr 2016 23:04:17 +0530 Subject: [PATCH] Filter out tags when rendering book --- src/calibre/srv/render_book.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/calibre/srv/render_book.py b/src/calibre/srv/render_book.py index 8dc9f744a5..fd3d76776c 100644 --- a/src/calibre/srv/render_book.py +++ b/src/calibre/srv/render_book.py @@ -188,8 +188,11 @@ boolean_attributes = frozenset('allowfullscreen,async,autofocus,autoplay,checked def serialize_elem(elem, nsmap): ns, name = split_name(elem.tag) + nl = name.lower() + if nl == 'meta': + return # Filter out tags as they have unknown side-effects if name.lower() in {'img', 'script', 'link', 'image', 'style'}: - name = name.lower() + name = nl ans = {'n':name} if elem.text: ans['x'] = elem.text @@ -260,10 +263,11 @@ def html_as_dict(root): elem, node = stack.pop() for i, child in enumerate(elem.iterchildren('*')): cnode = serialize_elem(child, nsmap) - tags.append(cnode) - child_tree_node = [len(tags)-1] - node.append(child_tree_node) - stack.append((child, child_tree_node)) + if cnode is not None: + tags.append(cnode) + child_tree_node = [len(tags)-1] + node.append(child_tree_node) + stack.append((child, child_tree_node)) ns_map = [ns for ns, nsnum in sorted(nsmap.iteritems(), key=lambda x: x[1])] return {'ns_map':ns_map, 'tag_map':tags, 'tree':tree}