summaryrefslogtreecommitdiff
path: root/vendor/github.com/tdewolff/parse/v2/html/lex.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tdewolff/parse/v2/html/lex.go')
-rw-r--r--vendor/github.com/tdewolff/parse/v2/html/lex.go21
1 files changed, 14 insertions, 7 deletions
diff --git a/vendor/github.com/tdewolff/parse/v2/html/lex.go b/vendor/github.com/tdewolff/parse/v2/html/lex.go
index 4eb50f49d..e44a77ce8 100644
--- a/vendor/github.com/tdewolff/parse/v2/html/lex.go
+++ b/vendor/github.com/tdewolff/parse/v2/html/lex.go
@@ -21,8 +21,9 @@ const (
EndTagToken
AttributeToken
TextToken
- SvgToken
+ SVGToken
MathToken
+ XMLToken
TemplateToken
)
@@ -47,10 +48,14 @@ func (tt TokenType) String() string {
return "Attribute"
case TextToken:
return "Text"
- case SvgToken:
- return "Svg"
+ case SVGToken:
+ return "SVG"
case MathToken:
return "Math"
+ case XMLToken:
+ return "XML"
+ case TemplateToken:
+ return "Template"
}
return "Invalid(" + strconv.Itoa(int(tt)) + ")"
}
@@ -371,8 +376,8 @@ func (l *Lexer) shiftStartTag() (TokenType, []byte) {
l.r.Move(1)
}
l.text = parse.ToLower(l.r.Lexeme()[1:])
- if h := ToHash(l.text); h == Textarea || h == Title || h == Style || h == Xmp || h == Iframe || h == Script || h == Plaintext || h == Svg || h == Math {
- if h == Svg || h == Math {
+ if h := ToHash(l.text); h == Textarea || h == Title || h == Style || h == Xmp || h == Iframe || h == Script || h == Plaintext || h == Svg || h == Math || h == Xml {
+ if h == Svg || h == Math || h == Xml {
data := l.shiftXML(h)
if l.err != nil {
return ErrorToken, nil
@@ -380,9 +385,11 @@ func (l *Lexer) shiftStartTag() (TokenType, []byte) {
l.inTag = false
if h == Svg {
- return SvgToken, data
+ return SVGToken, data
+ } else if h == Math {
+ return MathToken, data
}
- return MathToken, data
+ return XMLToken, data
}
l.rawTag = h
}