Skip to content

Commit 858e1d3

Browse files
author
James Graham
committed
Update element categories for latest spec (r5166)
1 parent 62e3436 commit 858e1d3

File tree

1 file changed

+22
-18
lines changed

1 file changed

+22
-18
lines changed

html5lib/html5parser.py

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@ def __init__(self, parser, tree):
716716
("title", self.startTagTitle),
717717
(("noscript", "noframes", "style"), self.startTagNoScriptNoFramesStyle),
718718
("script", self.startTagScript),
719-
(("base", "link", "command"),
719+
(("base", "basefont", "bgsound", "command", "link"),
720720
self.startTagBaseLinkCommand),
721721
("meta", self.startTagMeta),
722722
("head", self.startTagHead)
@@ -814,7 +814,8 @@ def __init__(self, parser, tree):
814814
("html", self.startTagHtml),
815815
("body", self.startTagBody),
816816
("frameset", self.startTagFrameset),
817-
(("base", "link", "meta", "noframes", "script", "style", "title"),
817+
(("base", "basefont", "bgsound", "link", "meta", "noframes", "script",
818+
"style", "title"),
818819
self.startTagFromHead),
819820
("head", self.startTagHead)
820821
])
@@ -884,20 +885,21 @@ def __init__(self, parser, tree):
884885

885886
self.startTagHandler = utils.MethodDispatcher([
886887
("html", self.startTagHtml),
887-
(("base", "command", "link", "meta", "noframes", "script", "style",
888-
"title"), self.startTagProcessInHead),
888+
(("base", "basefont", "bgsound", "command", "link", "meta",
889+
"noframes", "script", "style", "title"),
890+
self.startTagProcessInHead),
889891
("body", self.startTagBody),
890892
("frameset", self.startTagFrameset),
891-
(("address", "article", "aside", "blockquote", "center", "datagrid",
892-
"details", "dir", "div", "dl", "fieldset", "figure",
893+
(("address", "article", "aside", "blockquote", "center", "details",
894+
"details", "dir", "div", "dl", "fieldset", "figcaption", "figure",
893895
"footer", "header", "hgroup", "menu", "nav", "ol", "p",
894-
"section", "ul"),
896+
"section", "summary", "ul"),
895897
self.startTagCloseP),
898+
(headingElements, self.startTagHeading),
896899
(("pre", "listing"), self.startTagPreListing),
897900
("form", self.startTagForm),
898901
(("li", "dd", "dt"), self.startTagListItem),
899902
("plaintext",self.startTagPlaintext),
900-
(headingElements, self.startTagHeading),
901903
("a", self.startTagA),
902904
(("b", "big", "code", "em", "font", "i", "s", "small", "strike",
903905
"strong", "tt", "u"),self.startTagFormatting),
@@ -906,8 +908,8 @@ def __init__(self, parser, tree):
906908
(("applet", "marquee", "object"), self.startTagAppletMarqueeObject),
907909
("xmp", self.startTagXmp),
908910
("table", self.startTagTable),
909-
(("area", "basefont", "bgsound", "br", "embed", "img", "input",
910-
"keygen", "spacer", "wbr"), self.startTagVoidFormatting),
911+
(("area", "br", "embed", "img", "input", "keygen", "spacer",
912+
"wbr"), self.startTagVoidFormatting),
911913
(("param", "source"), self.startTagParamSource),
912914
("hr", self.startTagHr),
913915
("image", self.startTagImage),
@@ -929,10 +931,10 @@ def __init__(self, parser, tree):
929931
self.endTagHandler = utils.MethodDispatcher([
930932
("body",self.endTagBody),
931933
("html",self.endTagHtml),
932-
(("address", "article", "aside", "blockquote", "center", "datagrid",
933-
"details", "dir", "div", "dl", "fieldset", "figure",
934+
(("address", "article", "aside", "blockquote", "center",
935+
"details", "dir", "div", "dl", "fieldset", "figcaption", "figure",
934936
"footer", "header", "hgroup", "listing", "menu", "nav", "ol", "pre",
935-
"section", "ul"), self.endTagBlock),
937+
"section", "summary", "ul"), self.endTagBlock),
936938
("form", self.endTagForm),
937939
("p",self.endTagP),
938940
(("dd", "dt", "li"), self.endTagListItem),
@@ -1277,7 +1279,7 @@ def startTagOther(self, token):
12771279
self.tree.insertElement(token)
12781280

12791281
def endTagP(self, token):
1280-
if not self.tree.elementInScope("p"):
1282+
if not self.tree.elementInScope("p", variant="button"):
12811283
self.startTagCloseP(impliedTagToken("p", "StartTag"))
12821284
self.parser.parseError("unexpected-end-tag", {"name": "p"})
12831285
self.endTagP(impliedTagToken("p", "EndTag"))
@@ -2358,7 +2360,11 @@ def processCharacters(self, token):
23582360
Phase.processCharacters(self, token)
23592361

23602362
def processEOF(self):
2361-
pass
2363+
self.parser.parseError("eof-in-foreign-lands")
2364+
#while self.tree.openElements.pop().name not in ("svg", "math"):
2365+
# pass
2366+
self.parser.phase = self.parser.secondaryPhase
2367+
self.parser.phase.processEOF()
23622368

23632369
def processStartTag(self, token):
23642370
currentNode = self.tree.openElements[-1]
@@ -2410,9 +2416,7 @@ def processEndTag(self, token):
24102416

24112417
while True:
24122418
if node.name == token["name"]:
2413-
popped = self.tree.openElements.pop()
2414-
while popped != node:
2415-
popped = self.tree.openElements.pop()
2419+
while self.tree.openElements.pop() != node:
24162420
assert self.tree.openElements
24172421
break
24182422
nodeIndex -= 1

0 commit comments

Comments
 (0)