From 1bdebd326cec9699cd18f040a32a79b8b925eb84 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Tue, 21 Aug 2012 09:13:11 -0400 Subject: Fixed a problem with the html5lib builder not handling comments correctly. --- bs4/builder/_html5lib.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'bs4/builder/_html5lib.py') diff --git a/bs4/builder/_html5lib.py b/bs4/builder/_html5lib.py index 6001e38..29650a6 100644 --- a/bs4/builder/_html5lib.py +++ b/bs4/builder/_html5lib.py @@ -72,6 +72,22 @@ class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder): doctype = Doctype.for_name_and_ids(name, publicId, systemId) self.soup.object_was_parsed(doctype) + def insertComment(self, token, parent=None): + comment = Comment(token['data']) + parent = parent or self.soup + # We can't rely on self.soup.previousElement, because this + # comment may have been parsed a long time ago and inserted. + if parent is None: + parent = self.soup.currentTag + else: + parent = parent.element + if len(parent.contents) > 0: + previous_element = parent.contents[-1] + else: + previous_element = parent + + self.soup.object_was_parsed(comment, parent, previous_element) + def elementClass(self, name, namespace): tag = self.soup.new_tag(name, namespace) return Element(tag, self.soup, namespace) -- cgit v1.2.3