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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy