Filter out <meta> tags when rendering book

This commit is contained in:
Kovid Goyal 2016-04-01 23:04:17 +05:30
parent 585c9ced46
commit a951180190

View File

@ -188,8 +188,11 @@ boolean_attributes = frozenset('allowfullscreen,async,autofocus,autoplay,checked
def serialize_elem(elem, nsmap): def serialize_elem(elem, nsmap):
ns, name = split_name(elem.tag) ns, name = split_name(elem.tag)
nl = name.lower()
if nl == 'meta':
return # Filter out <meta> tags as they have unknown side-effects
if name.lower() in {'img', 'script', 'link', 'image', 'style'}: if name.lower() in {'img', 'script', 'link', 'image', 'style'}:
name = name.lower() name = nl
ans = {'n':name} ans = {'n':name}
if elem.text: if elem.text:
ans['x'] = elem.text ans['x'] = elem.text
@ -260,10 +263,11 @@ def html_as_dict(root):
elem, node = stack.pop() elem, node = stack.pop()
for i, child in enumerate(elem.iterchildren('*')): for i, child in enumerate(elem.iterchildren('*')):
cnode = serialize_elem(child, nsmap) cnode = serialize_elem(child, nsmap)
tags.append(cnode) if cnode is not None:
child_tree_node = [len(tags)-1] tags.append(cnode)
node.append(child_tree_node) child_tree_node = [len(tags)-1]
stack.append((child, child_tree_node)) 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])] 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} return {'ns_map':ns_map, 'tag_map':tags, 'tree':tree}