8000 Externalized cdataElements and rcdataElements into constants.py · awesome-python/html5lib-python@d142228 · GitHub
[go: up one dir, main page]

Skip to content

Commit d142228 8000

Browse files
committed
Externalized cdataElements and rcdataElements into constants.py
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40683
1 parent b1bf2eb commit d142228

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/constants.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,18 @@
158158
"input"
159159
))
160160

161+
cdataElements = frozenset(('title', 'textarea'))
162+
163+
rcdataElements = frozenset((
164+
'style',
165+
'script',
166+
'xmp',
167+
'iframe',
168+
'noembed',
169+
'noframes',
170+
'noscript'
171+
))
172+
161173
booleanAttributes = {
162174
"": frozenset(("irrelevant",)),
163175
"style": frozenset(("scoped",)),

src/html5parser.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
import utils
3232
from constants import contentModelFlags, spaceCharacters, asciiUpper2Lower
3333
from constants import scopingElements, formattingElements, specialElements
34-
from constants import headingElements, tableInsertModeElements, voidElements
34+
from constants import headingElements, tableInsertModeElements
35+
from constants import cdataElements, rcdataElements, voidElements
3536

3637
class HTMLParser(object):
3738
"""HTML parser. Generates a tree structure from a stream of (possibly
@@ -86,9 +87,9 @@ def _parse(self, stream, innerHTML=False, container="div",
8687
if innerHTML:
8788
self.innerHTML = container.lower()
8889

89-
if self.innerHTML in ('title', 'textarea'):
90+
if self.innerHTML in cdataElements:
9091
self.tokenizer.contentModelFlag = tokenizer.contentModelFlags["RCDATA"]
91-
elif self.innerHTML in ('style', 'script', 'xmp', 'iframe', 'noembed', 'noframes', 'noscript'):
92+
elif self.innerHTML in rcdataElements:
9293
self.tokenizer.contentModelFlag = tokenizer.contentModelFlags["CDATA"]
9394
elif self.innerHTML == 'plaintext':
9495
self.tokenizer.contentModelFlag = tokenizer.contentModelFlags["PLAINTEXT"]

0 commit comments

Comments
 (0)
0