@tkeron/html-parser 0.1.5 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +1 -7
  2. package/bun.lock +8 -3
  3. package/index.ts +4 -0
  4. package/package.json +13 -6
  5. package/src/css-selector.ts +45 -27
  6. package/src/dom-simulator.ts +162 -20
  7. package/src/encoding.ts +39 -0
  8. package/src/index.ts +9 -0
  9. package/src/parser.ts +478 -183
  10. package/src/serializer.ts +450 -0
  11. package/src/tokenizer.ts +59 -139
  12. package/tests/advanced.test.ts +119 -106
  13. package/tests/custom-elements.test.ts +172 -162
  14. package/tests/dom-extended.test.ts +12 -12
  15. package/tests/dom-manipulation.test.ts +637 -0
  16. package/tests/dom.test.ts +32 -27
  17. package/tests/helpers/tokenizer-adapter.test.ts +70 -0
  18. package/tests/helpers/tokenizer-adapter.ts +65 -0
  19. package/tests/helpers/tree-adapter.test.ts +39 -0
  20. package/tests/helpers/tree-adapter.ts +43 -0
  21. package/tests/html5lib-data/tokenizer/namedEntities.test +42422 -0
  22. package/tests/html5lib-data/tokenizer/pendingSpecChanges.test +9 -0
  23. package/tests/html5lib-data/tree-construction/adoption01.dat +354 -0
  24. package/tests/html5lib-data/tree-construction/adoption02.dat +39 -0
  25. package/tests/html5lib-data/tree-construction/domjs-unsafe.dat +0 -0
  26. package/tests/html5lib-data/tree-construction/entities02.dat +309 -0
  27. package/tests/html5lib-data/tree-construction/html5test-com.dat +301 -0
  28. package/tests/html5lib-data/tree-construction/math.dat +104 -0
  29. package/tests/html5lib-data/tree-construction/namespace-sensitivity.dat +22 -0
  30. package/tests/html5lib-data/tree-construction/noscript01.dat +237 -0
  31. package/tests/html5lib-data/tree-construction/ruby.dat +302 -0
  32. package/tests/html5lib-data/tree-construction/scriptdata01.dat +372 -0
  33. package/tests/html5lib-data/tree-construction/svg.dat +104 -0
  34. package/tests/html5lib-data/tree-construction/template.dat +1673 -0
  35. package/tests/html5lib-data/tree-construction/tests10.dat +853 -0
  36. package/tests/html5lib-data/tree-construction/tests11.dat +523 -0
  37. package/tests/html5lib-data/tree-construction/tests20.dat +842 -0
  38. package/tests/html5lib-data/tree-construction/tests21.dat +306 -0
  39. package/tests/html5lib-data/tree-construction/tests23.dat +168 -0
  40. package/tests/html5lib-data/tree-construction/tests24.dat +79 -0
  41. package/tests/html5lib-data/tree-construction/tests5.dat +210 -0
  42. package/tests/html5lib-data/tree-construction/tests6.dat +663 -0
  43. package/tests/html5lib-data/tree-construction/tests_innerHTML_1.dat +844 -0
  44. package/tests/parser.test.ts +172 -193
  45. package/tests/selectors.test.ts +64 -1
  46. package/tests/serializer-core.test.ts +16 -0
  47. package/tests/serializer-data/core.test +125 -0
  48. package/tests/serializer-data/injectmeta.test +66 -0
  49. package/tests/serializer-data/optionaltags.test +965 -0
  50. package/tests/serializer-data/options.test +60 -0
  51. package/tests/serializer-data/whitespace.test +51 -0
  52. package/tests/serializer-injectmeta.test.ts +16 -0
  53. package/tests/serializer-optionaltags.test.ts +16 -0
  54. package/tests/serializer-options.test.ts +16 -0
  55. package/tests/serializer-whitespace.test.ts +16 -0
  56. package/tests/tokenizer-namedEntities.test.ts +20 -0
  57. package/tests/tokenizer-pendingSpecChanges.test.ts +20 -0
  58. package/tests/tokenizer.test.ts +83 -0
  59. package/tests/tree-construction-adoption01.test.ts +37 -0
  60. package/tests/tree-construction-adoption02.test.ts +34 -0
  61. package/tests/tree-construction-domjs-unsafe.test.ts +24 -0
  62. package/tests/tree-construction-entities02.test.ts +33 -0
  63. package/tests/tree-construction-html5test-com.test.ts +24 -0
  64. package/tests/tree-construction-math.test.ts +18 -0
  65. package/tests/tree-construction-namespace-sensitivity.test.ts +18 -0
  66. package/tests/tree-construction-noscript01.test.ts +18 -0
  67. package/tests/tree-construction-ruby.test.ts +21 -0
  68. package/tests/tree-construction-scriptdata01.test.ts +21 -0
  69. package/tests/tree-construction-svg.test.ts +21 -0
  70. package/tests/tree-construction-template.test.ts +21 -0
  71. package/tests/tree-construction-tests10.test.ts +21 -0
  72. package/tests/tree-construction-tests11.test.ts +21 -0
  73. package/tests/tree-construction-tests20.test.ts +18 -0
  74. package/tests/tree-construction-tests21.test.ts +18 -0
  75. package/tests/tree-construction-tests23.test.ts +18 -0
  76. package/tests/tree-construction-tests24.test.ts +18 -0
  77. package/tests/tree-construction-tests5.test.ts +21 -0
  78. package/tests/tree-construction-tests6.test.ts +21 -0
  79. package/tests/tree-construction-tests_innerHTML_1.test.ts +21 -0
  80. package/tests/void-elements.test.ts +471 -0
  81. package/tests/official/README.md +0 -87
  82. package/tests/official/acid/acid-tests.test.ts +0 -309
  83. package/tests/official/final-output/final-output.test.ts +0 -361
  84. package/tests/official/html5lib/tokenizer-utils.ts +0 -192
  85. package/tests/official/html5lib/tokenizer.test.ts +0 -171
  86. package/tests/official/html5lib/tree-construction-utils.ts +0 -194
  87. package/tests/official/html5lib/tree-construction.test.ts +0 -250
  88. package/tests/official/validator/validator-tests.test.ts +0 -237
  89. package/tests/official/validator-nu/validator-nu.test.ts +0 -335
  90. package/tests/official/whatwg/whatwg-tests.test.ts +0 -205
  91. package/tests/official/wpt/wpt-tests.test.ts +0 -409
@@ -0,0 +1,523 @@
1
+ #data
2
+ <!DOCTYPE html><body><svg attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></svg>
3
+ #errors
4
+ #document
5
+ | <!DOCTYPE html>
6
+ | <html>
7
+ | <head>
8
+ | <body>
9
+ | <svg svg>
10
+ | attributeName=""
11
+ | attributeType=""
12
+ | baseFrequency=""
13
+ | baseProfile=""
14
+ | calcMode=""
15
+ | clipPathUnits=""
16
+ | diffuseConstant=""
17
+ | edgeMode=""
18
+ | filterUnits=""
19
+ | glyphRef=""
20
+ | gradientTransform=""
21
+ | gradientUnits=""
22
+ | kernelMatrix=""
23
+ | kernelUnitLength=""
24
+ | keyPoints=""
25
+ | keySplines=""
26
+ | keyTimes=""
27
+ | lengthAdjust=""
28
+ | limitingConeAngle=""
29
+ | markerHeight=""
30
+ | markerUnits=""
31
+ | markerWidth=""
32
+ | maskContentUnits=""
33
+ | maskUnits=""
34
+ | numOctaves=""
35
+ | pathLength=""
36
+ | patternContentUnits=""
37
+ | patternTransform=""
38
+ | patternUnits=""
39
+ | pointsAtX=""
40
+ | pointsAtY=""
41
+ | pointsAtZ=""
42
+ | preserveAlpha=""
43
+ | preserveAspectRatio=""
44
+ | primitiveUnits=""
45
+ | refX=""
46
+ | refY=""
47
+ | repeatCount=""
48
+ | repeatDur=""
49
+ | requiredExtensions=""
50
+ | requiredFeatures=""
51
+ | specularConstant=""
52
+ | specularExponent=""
53
+ | spreadMethod=""
54
+ | startOffset=""
55
+ | stdDeviation=""
56
+ | stitchTiles=""
57
+ | surfaceScale=""
58
+ | systemLanguage=""
59
+ | tableValues=""
60
+ | targetX=""
61
+ | targetY=""
62
+ | textLength=""
63
+ | viewBox=""
64
+ | viewTarget=""
65
+ | xChannelSelector=""
66
+ | yChannelSelector=""
67
+ | zoomAndPan=""
68
+
69
+ #data
70
+ <!DOCTYPE html><BODY><SVG ATTRIBUTENAME='' ATTRIBUTETYPE='' BASEFREQUENCY='' BASEPROFILE='' CALCMODE='' CLIPPATHUNITS='' DIFFUSECONSTANT='' EDGEMODE='' FILTERUNITS='' GLYPHREF='' GRADIENTTRANSFORM='' GRADIENTUNITS='' KERNELMATRIX='' KERNELUNITLENGTH='' KEYPOINTS='' KEYSPLINES='' KEYTIMES='' LENGTHADJUST='' LIMITINGCONEANGLE='' MARKERHEIGHT='' MARKERUNITS='' MARKERWIDTH='' MASKCONTENTUNITS='' MASKUNITS='' NUMOCTAVES='' PATHLENGTH='' PATTERNCONTENTUNITS='' PATTERNTRANSFORM='' PATTERNUNITS='' POINTSATX='' POINTSATY='' POINTSATZ='' PRESERVEALPHA='' PRESERVEASPECTRATIO='' PRIMITIVEUNITS='' REFX='' REFY='' REPEATCOUNT='' REPEATDUR='' REQUIREDEXTENSIONS='' REQUIREDFEATURES='' SPECULARCONSTANT='' SPECULAREXPONENT='' SPREADMETHOD='' STARTOFFSET='' STDDEVIATION='' STITCHTILES='' SURFACESCALE='' SYSTEMLANGUAGE='' TABLEVALUES='' TARGETX='' TARGETY='' TEXTLENGTH='' VIEWBOX='' VIEWTARGET='' XCHANNELSELECTOR='' YCHANNELSELECTOR='' ZOOMANDPAN=''></SVG>
71
+ #errors
72
+ #document
73
+ | <!DOCTYPE html>
74
+ | <html>
75
+ | <head>
76
+ | <body>
77
+ | <svg svg>
78
+ | attributeName=""
79
+ | attributeType=""
80
+ | baseFrequency=""
81
+ | baseProfile=""
82
+ | calcMode=""
83
+ | clipPathUnits=""
84
+ | diffuseConstant=""
85
+ | edgeMode=""
86
+ | filterUnits=""
87
+ | glyphRef=""
88
+ | gradientTransform=""
89
+ | gradientUnits=""
90
+ | kernelMatrix=""
91
+ | kernelUnitLength=""
92
+ | keyPoints=""
93
+ | keySplines=""
94
+ | keyTimes=""
95
+ | lengthAdjust=""
96
+ | limitingConeAngle=""
97
+ | markerHeight=""
98
+ | markerUnits=""
99
+ | markerWidth=""
100
+ | maskContentUnits=""
101
+ | maskUnits=""
102
+ | numOctaves=""
103
+ | pathLength=""
104
+ | patternContentUnits=""
105
+ | patternTransform=""
106
+ | patternUnits=""
107
+ | pointsAtX=""
108
+ | pointsAtY=""
109
+ | pointsAtZ=""
110
+ | preserveAlpha=""
111
+ | preserveAspectRatio=""
112
+ | primitiveUnits=""
113
+ | refX=""
114
+ | refY=""
115
+ | repeatCount=""
116
+ | repeatDur=""
117
+ | requiredExtensions=""
118
+ | requiredFeatures=""
119
+ | specularConstant=""
120
+ | specularExponent=""
121
+ | spreadMethod=""
122
+ | startOffset=""
123
+ | stdDeviation=""
124
+ | stitchTiles=""
125
+ | surfaceScale=""
126
+ | systemLanguage=""
127
+ | tableValues=""
128
+ | targetX=""
129
+ | targetY=""
130
+ | textLength=""
131
+ | viewBox=""
132
+ | viewTarget=""
133
+ | xChannelSelector=""
134
+ | yChannelSelector=""
135
+ | zoomAndPan=""
136
+
137
+ #data
138
+ <!DOCTYPE html><body><svg attributename='' attributetype='' basefrequency='' baseprofile='' calcmode='' clippathunits='' diffuseconstant='' edgemode='' filterunits='' filterres='' glyphref='' gradienttransform='' gradientunits='' kernelmatrix='' kernelunitlength='' keypoints='' keysplines='' keytimes='' lengthadjust='' limitingconeangle='' markerheight='' markerunits='' markerwidth='' maskcontentunits='' maskunits='' numoctaves='' pathlength='' patterncontentunits='' patterntransform='' patternunits='' pointsatx='' pointsaty='' pointsatz='' preservealpha='' preserveaspectratio='' primitiveunits='' refx='' refy='' repeatcount='' repeatdur='' requiredextensions='' requiredfeatures='' specularconstant='' specularexponent='' spreadmethod='' startoffset='' stddeviation='' stitchtiles='' surfacescale='' systemlanguage='' tablevalues='' targetx='' targety='' textlength='' viewbox='' viewtarget='' xchannelselector='' ychannelselector='' zoomandpan=''></svg>
139
+ #errors
140
+ #document
141
+ | <!DOCTYPE html>
142
+ | <html>
143
+ | <head>
144
+ | <body>
145
+ | <svg svg>
146
+ | attributeName=""
147
+ | attributeType=""
148
+ | baseFrequency=""
149
+ | baseProfile=""
150
+ | calcMode=""
151
+ | clipPathUnits=""
152
+ | diffuseConstant=""
153
+ | edgeMode=""
154
+ | filterUnits=""
155
+ | filterres=""
156
+ | glyphRef=""
157
+ | gradientTransform=""
158
+ | gradientUnits=""
159
+ | kernelMatrix=""
160
+ | kernelUnitLength=""
161
+ | keyPoints=""
162
+ | keySplines=""
163
+ | keyTimes=""
164
+ | lengthAdjust=""
165
+ | limitingConeAngle=""
166
+ | markerHeight=""
167
+ | markerUnits=""
168
+ | markerWidth=""
169
+ | maskContentUnits=""
170
+ | maskUnits=""
171
+ | numOctaves=""
172
+ | pathLength=""
173
+ | patternContentUnits=""
174
+ | patternTransform=""
175
+ | patternUnits=""
176
+ | pointsAtX=""
177
+ | pointsAtY=""
178
+ | pointsAtZ=""
179
+ | preserveAlpha=""
180
+ | preserveAspectRatio=""
181
+ | primitiveUnits=""
182
+ | refX=""
183
+ | refY=""
184
+ | repeatCount=""
185
+ | repeatDur=""
186
+ | requiredExtensions=""
187
+ | requiredFeatures=""
188
+ | specularConstant=""
189
+ | specularExponent=""
190
+ | spreadMethod=""
191
+ | startOffset=""
192
+ | stdDeviation=""
193
+ | stitchTiles=""
194
+ | surfaceScale=""
195
+ | systemLanguage=""
196
+ | tableValues=""
197
+ | targetX=""
198
+ | targetY=""
199
+ | textLength=""
200
+ | viewBox=""
201
+ | viewTarget=""
202
+ | xChannelSelector=""
203
+ | yChannelSelector=""
204
+ | zoomAndPan=""
205
+
206
+ #data
207
+ <!DOCTYPE html><body><math attributeName='' attributeType='' baseFrequency='' baseProfile='' calcMode='' clipPathUnits='' diffuseConstant='' edgeMode='' filterUnits='' glyphRef='' gradientTransform='' gradientUnits='' kernelMatrix='' kernelUnitLength='' keyPoints='' keySplines='' keyTimes='' lengthAdjust='' limitingConeAngle='' markerHeight='' markerUnits='' markerWidth='' maskContentUnits='' maskUnits='' numOctaves='' pathLength='' patternContentUnits='' patternTransform='' patternUnits='' pointsAtX='' pointsAtY='' pointsAtZ='' preserveAlpha='' preserveAspectRatio='' primitiveUnits='' refX='' refY='' repeatCount='' repeatDur='' requiredExtensions='' requiredFeatures='' specularConstant='' specularExponent='' spreadMethod='' startOffset='' stdDeviation='' stitchTiles='' surfaceScale='' systemLanguage='' tableValues='' targetX='' targetY='' textLength='' viewBox='' viewTarget='' xChannelSelector='' yChannelSelector='' zoomAndPan=''></math>
208
+ #errors
209
+ #document
210
+ | <!DOCTYPE html>
211
+ | <html>
212
+ | <head>
213
+ | <body>
214
+ | <math math>
215
+ | attributename=""
216
+ | attributetype=""
217
+ | basefrequency=""
218
+ | baseprofile=""
219
+ | calcmode=""
220
+ | clippathunits=""
221
+ | diffuseconstant=""
222
+ | edgemode=""
223
+ | filterunits=""
224
+ | glyphref=""
225
+ | gradienttransform=""
226
+ | gradientunits=""
227
+ | kernelmatrix=""
228
+ | kernelunitlength=""
229
+ | keypoints=""
230
+ | keysplines=""
231
+ | keytimes=""
232
+ | lengthadjust=""
233
+ | limitingconeangle=""
234
+ | markerheight=""
235
+ | markerunits=""
236
+ | markerwidth=""
237
+ | maskcontentunits=""
238
+ | maskunits=""
239
+ | numoctaves=""
240
+ | pathlength=""
241
+ | patterncontentunits=""
242
+ | patterntransform=""
243
+ | patternunits=""
244
+ | pointsatx=""
245
+ | pointsaty=""
246
+ | pointsatz=""
247
+ | preservealpha=""
248
+ | preserveaspectratio=""
249
+ | primitiveunits=""
250
+ | refx=""
251
+ | refy=""
252
+ | repeatcount=""
253
+ | repeatdur=""
254
+ | requiredextensions=""
255
+ | requiredfeatures=""
256
+ | specularconstant=""
257
+ | specularexponent=""
258
+ | spreadmethod=""
259
+ | startoffset=""
260
+ | stddeviation=""
261
+ | stitchtiles=""
262
+ | surfacescale=""
263
+ | systemlanguage=""
264
+ | tablevalues=""
265
+ | targetx=""
266
+ | targety=""
267
+ | textlength=""
268
+ | viewbox=""
269
+ | viewtarget=""
270
+ | xchannelselector=""
271
+ | ychannelselector=""
272
+ | zoomandpan=""
273
+
274
+ #data
275
+ <!DOCTYPE html><body><svg contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></svg>
276
+ #errors
277
+ #document
278
+ | <!DOCTYPE html>
279
+ | <html>
280
+ | <head>
281
+ | <body>
282
+ | <svg svg>
283
+ | contentscripttype=""
284
+ | contentstyletype=""
285
+ | externalresourcesrequired=""
286
+ | filterres=""
287
+
288
+ #data
289
+ <!DOCTYPE html><body><svg CONTENTSCRIPTTYPE='' CONTENTSTYLETYPE='' EXTERNALRESOURCESREQUIRED='' FILTERRES=''></svg>
290
+ #errors
291
+ #document
292
+ | <!DOCTYPE html>
293
+ | <html>
294
+ | <head>
295
+ | <body>
296
+ | <svg svg>
297
+ | contentscripttype=""
298
+ | contentstyletype=""
299
+ | externalresourcesrequired=""
300
+ | filterres=""
301
+
302
+ #data
303
+ <!DOCTYPE html><body><svg contentscripttype='' contentstyletype='' externalresourcesrequired='' filterres=''></svg>
304
+ #errors
305
+ #document
306
+ | <!DOCTYPE html>
307
+ | <html>
308
+ | <head>
309
+ | <body>
310
+ | <svg svg>
311
+ | contentscripttype=""
312
+ | contentstyletype=""
313
+ | externalresourcesrequired=""
314
+ | filterres=""
315
+
316
+ #data
317
+ <!DOCTYPE html><body><math contentScriptType='' contentStyleType='' externalResourcesRequired='' filterRes=''></math>
318
+ #errors
319
+ #document
320
+ | <!DOCTYPE html>
321
+ | <html>
322
+ | <head>
323
+ | <body>
324
+ | <math math>
325
+ | contentscripttype=""
326
+ | contentstyletype=""
327
+ | externalresourcesrequired=""
328
+ | filterres=""
329
+
330
+ #data
331
+ <!DOCTYPE html><body><svg><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></svg>
332
+ #errors
333
+ #document
334
+ | <!DOCTYPE html>
335
+ | <html>
336
+ | <head>
337
+ | <body>
338
+ | <svg svg>
339
+ | <svg altGlyph>
340
+ | <svg altGlyphDef>
341
+ | <svg altGlyphItem>
342
+ | <svg animateColor>
343
+ | <svg animateMotion>
344
+ | <svg animateTransform>
345
+ | <svg clipPath>
346
+ | <svg feBlend>
347
+ | <svg feColorMatrix>
348
+ | <svg feComponentTransfer>
349
+ | <svg feComposite>
350
+ | <svg feConvolveMatrix>
351
+ | <svg feDiffuseLighting>
352
+ | <svg feDisplacementMap>
353
+ | <svg feDistantLight>
354
+ | <svg feFlood>
355
+ | <svg feFuncA>
356
+ | <svg feFuncB>
357
+ | <svg feFuncG>
358
+ | <svg feFuncR>
359
+ | <svg feGaussianBlur>
360
+ | <svg feImage>
361
+ | <svg feMerge>
362
+ | <svg feMergeNode>
363
+ | <svg feMorphology>
364
+ | <svg feOffset>
365
+ | <svg fePointLight>
366
+ | <svg feSpecularLighting>
367
+ | <svg feSpotLight>
368
+ | <svg feTile>
369
+ | <svg feTurbulence>
370
+ | <svg foreignObject>
371
+ | <svg glyphRef>
372
+ | <svg linearGradient>
373
+ | <svg radialGradient>
374
+ | <svg textPath>
375
+
376
+ #data
377
+ <!DOCTYPE html><body><svg><altglyph /><altglyphdef /><altglyphitem /><animatecolor /><animatemotion /><animatetransform /><clippath /><feblend /><fecolormatrix /><fecomponenttransfer /><fecomposite /><feconvolvematrix /><fediffuselighting /><fedisplacementmap /><fedistantlight /><feflood /><fefunca /><fefuncb /><fefuncg /><fefuncr /><fegaussianblur /><feimage /><femerge /><femergenode /><femorphology /><feoffset /><fepointlight /><fespecularlighting /><fespotlight /><fetile /><feturbulence /><foreignobject /><glyphref /><lineargradient /><radialgradient /><textpath /></svg>
378
+ #errors
379
+ #document
380
+ | <!DOCTYPE html>
381
+ | <html>
382
+ | <head>
383
+ | <body>
384
+ | <svg svg>
385
+ | <svg altGlyph>
386
+ | <svg altGlyphDef>
387
+ | <svg altGlyphItem>
388
+ | <svg animateColor>
389
+ | <svg animateMotion>
390
+ | <svg animateTransform>
391
+ | <svg clipPath>
392
+ | <svg feBlend>
393
+ | <svg feColorMatrix>
394
+ | <svg feComponentTransfer>
395
+ | <svg feComposite>
396
+ | <svg feConvolveMatrix>
397
+ | <svg feDiffuseLighting>
398
+ | <svg feDisplacementMap>
399
+ | <svg feDistantLight>
400
+ | <svg feFlood>
401
+ | <svg feFuncA>
402
+ | <svg feFuncB>
403
+ | <svg feFuncG>
404
+ | <svg feFuncR>
405
+ | <svg feGaussianBlur>
406
+ | <svg feImage>
407
+ | <svg feMerge>
408
+ | <svg feMergeNode>
409
+ | <svg feMorphology>
410
+ | <svg feOffset>
411
+ | <svg fePointLight>
412
+ | <svg feSpecularLighting>
413
+ | <svg feSpotLight>
414
+ | <svg feTile>
415
+ | <svg feTurbulence>
416
+ | <svg foreignObject>
417
+ | <svg glyphRef>
418
+ | <svg linearGradient>
419
+ | <svg radialGradient>
420
+ | <svg textPath>
421
+
422
+ #data
423
+ <!DOCTYPE html><BODY><SVG><ALTGLYPH /><ALTGLYPHDEF /><ALTGLYPHITEM /><ANIMATECOLOR /><ANIMATEMOTION /><ANIMATETRANSFORM /><CLIPPATH /><FEBLEND /><FECOLORMATRIX /><FECOMPONENTTRANSFER /><FECOMPOSITE /><FECONVOLVEMATRIX /><FEDIFFUSELIGHTING /><FEDISPLACEMENTMAP /><FEDISTANTLIGHT /><FEFLOOD /><FEFUNCA /><FEFUNCB /><FEFUNCG /><FEFUNCR /><FEGAUSSIANBLUR /><FEIMAGE /><FEMERGE /><FEMERGENODE /><FEMORPHOLOGY /><FEOFFSET /><FEPOINTLIGHT /><FESPECULARLIGHTING /><FESPOTLIGHT /><FETILE /><FETURBULENCE /><FOREIGNOBJECT /><GLYPHREF /><LINEARGRADIENT /><RADIALGRADIENT /><TEXTPATH /></SVG>
424
+ #errors
425
+ #document
426
+ | <!DOCTYPE html>
427
+ | <html>
428
+ | <head>
429
+ | <body>
430
+ | <svg svg>
431
+ | <svg altGlyph>
432
+ | <svg altGlyphDef>
433
+ | <svg altGlyphItem>
434
+ | <svg animateColor>
435
+ | <svg animateMotion>
436
+ | <svg animateTransform>
437
+ | <svg clipPath>
438
+ | <svg feBlend>
439
+ | <svg feColorMatrix>
440
+ | <svg feComponentTransfer>
441
+ | <svg feComposite>
442
+ | <svg feConvolveMatrix>
443
+ | <svg feDiffuseLighting>
444
+ | <svg feDisplacementMap>
445
+ | <svg feDistantLight>
446
+ | <svg feFlood>
447
+ | <svg feFuncA>
448
+ | <svg feFuncB>
449
+ | <svg feFuncG>
450
+ | <svg feFuncR>
451
+ | <svg feGaussianBlur>
452
+ | <svg feImage>
453
+ | <svg feMerge>
454
+ | <svg feMergeNode>
455
+ | <svg feMorphology>
456
+ | <svg feOffset>
457
+ | <svg fePointLight>
458
+ | <svg feSpecularLighting>
459
+ | <svg feSpotLight>
460
+ | <svg feTile>
461
+ | <svg feTurbulence>
462
+ | <svg foreignObject>
463
+ | <svg glyphRef>
464
+ | <svg linearGradient>
465
+ | <svg radialGradient>
466
+ | <svg textPath>
467
+
468
+ #data
469
+ <!DOCTYPE html><body><math><altGlyph /><altGlyphDef /><altGlyphItem /><animateColor /><animateMotion /><animateTransform /><clipPath /><feBlend /><feColorMatrix /><feComponentTransfer /><feComposite /><feConvolveMatrix /><feDiffuseLighting /><feDisplacementMap /><feDistantLight /><feFlood /><feFuncA /><feFuncB /><feFuncG /><feFuncR /><feGaussianBlur /><feImage /><feMerge /><feMergeNode /><feMorphology /><feOffset /><fePointLight /><feSpecularLighting /><feSpotLight /><feTile /><feTurbulence /><foreignObject /><glyphRef /><linearGradient /><radialGradient /><textPath /></math>
470
+ #errors
471
+ #document
472
+ | <!DOCTYPE html>
473
+ | <html>
474
+ | <head>
475
+ | <body>
476
+ | <math math>
477
+ | <math altglyph>
478
+ | <math altglyphdef>
479
+ | <math altglyphitem>
480
+ | <math animatecolor>
481
+ | <math animatemotion>
482
+ | <math animatetransform>
483
+ | <math clippath>
484
+ | <math feblend>
485
+ | <math fecolormatrix>
486
+ | <math fecomponenttransfer>
487
+ | <math fecomposite>
488
+ | <math feconvolvematrix>
489
+ | <math fediffuselighting>
490
+ | <math fedisplacementmap>
491
+ | <math fedistantlight>
492
+ | <math feflood>
493
+ | <math fefunca>
494
+ | <math fefuncb>
495
+ | <math fefuncg>
496
+ | <math fefuncr>
497
+ | <math fegaussianblur>
498
+ | <math feimage>
499
+ | <math femerge>
500
+ | <math femergenode>
501
+ | <math femorphology>
502
+ | <math feoffset>
503
+ | <math fepointlight>
504
+ | <math fespecularlighting>
505
+ | <math fespotlight>
506
+ | <math fetile>
507
+ | <math feturbulence>
508
+ | <math foreignobject>
509
+ | <math glyphref>
510
+ | <math lineargradient>
511
+ | <math radialgradient>
512
+ | <math textpath>
513
+
514
+ #data
515
+ <!DOCTYPE html><body><svg><solidColor /></svg>
516
+ #errors
517
+ #document
518
+ | <!DOCTYPE html>
519
+ | <html>
520
+ | <head>
521
+ | <body>
522
+ | <svg svg>
523
+ | <svg solidcolor>