Skip to content

Commit 7d8287e

Browse files
deej-ioa-h
andauthored
feat(parser): support colons in element names (#723)
Co-authored-by: Adrian Hesketh <[email protected]> Co-authored-by: Adrian Hesketh <[email protected]>
1 parent e2ceaa3 commit 7d8287e

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

.version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.2.681
1+
0.2.682

parser/v2/elementparser.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,7 @@ func (attributesParser) Parse(in *parse.Input) (attributes []Attribute, ok bool,
361361
// Element name.
362362
var (
363363
elementNameFirst = "abcdefghijklmnopqrstuvwxyz"
364-
elementNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-"
364+
elementNameSubsequent = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-:"
365365
elementNameParser = parse.Func(func(in *parse.Input) (name string, ok bool, err error) {
366366
start := in.Index()
367367
var prefix, suffix string

parser/v2/elementparser_test.go

+25
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,31 @@ func TestAttributeParser(t *testing.T) {
4141
},
4242
},
4343
},
44+
{
45+
name: "element: colon in name",
46+
input: `<maps:map>`,
47+
parser: StripType(elementOpenTagParser),
48+
expected: elementOpenTag{
49+
Name: "maps:map",
50+
NameRange: Range{
51+
From: Position{Index: 1, Line: 0, Col: 1},
52+
To: Position{Index: 9, Line: 0, Col: 9},
53+
},
54+
},
55+
},
56+
{
57+
name: "element: colon in name, closing",
58+
input: `<maps:map>Content</maps:map>`,
59+
parser: StripType(element),
60+
expected: Element{
61+
Name: "maps:map",
62+
NameRange: Range{
63+
From: Position{Index: 1, Line: 0, Col: 1},
64+
To: Position{Index: 9, Line: 0, Col: 9},
65+
},
66+
Children: []Node{Text{Value: "Content"}},
67+
},
68+
},
4469
{
4570
name: "element: open with hyperscript attribute",
4671
input: `<div _="show = true">`,

0 commit comments

Comments
 (0)