gammo 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +9 -0
  5. data/Gemfile.lock +27 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +177 -0
  8. data/Rakefile +25 -0
  9. data/gammo.gemspec +23 -0
  10. data/lib/gammo.rb +15 -0
  11. data/lib/gammo/attribute.rb +17 -0
  12. data/lib/gammo/fragment_parser.rb +65 -0
  13. data/lib/gammo/node.rb +157 -0
  14. data/lib/gammo/parser.rb +524 -0
  15. data/lib/gammo/parser/constants.rb +94 -0
  16. data/lib/gammo/parser/foreign.rb +307 -0
  17. data/lib/gammo/parser/insertion_mode.rb +74 -0
  18. data/lib/gammo/parser/insertion_mode/after_after_body.rb +36 -0
  19. data/lib/gammo/parser/insertion_mode/after_after_frameset.rb +32 -0
  20. data/lib/gammo/parser/insertion_mode/after_body.rb +46 -0
  21. data/lib/gammo/parser/insertion_mode/after_frameset.rb +39 -0
  22. data/lib/gammo/parser/insertion_mode/after_head.rb +70 -0
  23. data/lib/gammo/parser/insertion_mode/before_head.rb +49 -0
  24. data/lib/gammo/parser/insertion_mode/before_html.rb +45 -0
  25. data/lib/gammo/parser/insertion_mode/in_body.rb +463 -0
  26. data/lib/gammo/parser/insertion_mode/in_caption.rb +47 -0
  27. data/lib/gammo/parser/insertion_mode/in_cell.rb +46 -0
  28. data/lib/gammo/parser/insertion_mode/in_column_group.rb +66 -0
  29. data/lib/gammo/parser/insertion_mode/in_frameset.rb +48 -0
  30. data/lib/gammo/parser/insertion_mode/in_head.rb +98 -0
  31. data/lib/gammo/parser/insertion_mode/in_head_noscript.rb +52 -0
  32. data/lib/gammo/parser/insertion_mode/in_row.rb +53 -0
  33. data/lib/gammo/parser/insertion_mode/in_select.rb +77 -0
  34. data/lib/gammo/parser/insertion_mode/in_select_in_table.rb +46 -0
  35. data/lib/gammo/parser/insertion_mode/in_table.rb +114 -0
  36. data/lib/gammo/parser/insertion_mode/in_table_body.rb +55 -0
  37. data/lib/gammo/parser/insertion_mode/in_template.rb +80 -0
  38. data/lib/gammo/parser/insertion_mode/initial.rb +152 -0
  39. data/lib/gammo/parser/insertion_mode/text.rb +32 -0
  40. data/lib/gammo/parser/insertion_mode_stack.rb +8 -0
  41. data/lib/gammo/parser/node_stack.rb +24 -0
  42. data/lib/gammo/tags.rb +9 -0
  43. data/lib/gammo/tags/table.rb +744 -0
  44. data/lib/gammo/tokenizer.rb +373 -0
  45. data/lib/gammo/tokenizer/debug.rb +34 -0
  46. data/lib/gammo/tokenizer/entity.rb +2240 -0
  47. data/lib/gammo/tokenizer/escape.rb +174 -0
  48. data/lib/gammo/tokenizer/script_scanner.rb +229 -0
  49. data/lib/gammo/tokenizer/tokens.rb +66 -0
  50. data/lib/gammo/version.rb +3 -0
  51. data/misc/html.yaml +384 -0
  52. data/misc/table.erubi +14 -0
  53. metadata +97 -0
@@ -0,0 +1,32 @@
1
+ module Gammo
2
+ class Parser
3
+ # Section 12.2.6.4.7.
4
+ class Text < InsertionMode
5
+ def error_token(token)
6
+ parser.open_elements.pop
7
+ end
8
+
9
+ def text_token(token)
10
+ d = token.data
11
+ n = parser.open_elements.last
12
+ if n.tag == Tags::Textarea && n.first_child.nil?
13
+ d = d.slice(1..-1) if d != "" && d.start_with?(?\r)
14
+ d = d.slice(1..-1) if d != "" && d.start_with?(?\n)
15
+ end
16
+ halt true if d == ""
17
+ parser.add_text(d)
18
+ halt true
19
+ end
20
+
21
+ def end_tag_token(token)
22
+ parser.open_elements.pop
23
+ end
24
+
25
+ def default(token)
26
+ parser.insertion_mode = parser.original_insertion_mode
27
+ parser.original_insertion_mode = nil
28
+ halt token.instance_of?(Tokenizer::EndTagToken)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,8 @@
1
+ require 'delegate'
2
+
3
+ module Gammo
4
+ class Parser
5
+ # @!visibility private
6
+ InsertionModeStack = Class.new(DelegateClass(Array))
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ require 'delegate'
2
+
3
+ module Gammo
4
+ class Parser
5
+ # @!visibility private
6
+ class NodeStack < DelegateClass(Array)
7
+ def initialize(array)
8
+ super(array)
9
+ end
10
+
11
+ def slice(*args)
12
+ self.class.new(super)
13
+ end
14
+
15
+ def reverse_each_with_index
16
+ len = length - 1
17
+ self.reverse.each_with_index do |elm, index|
18
+ yield(elm, len)
19
+ len -= 1
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ require 'gammo/tags/table'
2
+
3
+ module Gammo
4
+ module Tags
5
+ def self.lookup(name)
6
+ TABLE[name]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,744 @@
1
+ # Code generated by rake generate; DO NOT EDIT.
2
+ module Gammo
3
+ module Tags
4
+ A = 'a'.freeze
5
+ Abbr = 'abbr'.freeze
6
+ Address = 'address'.freeze
7
+ Area = 'area'.freeze
8
+ Article = 'article'.freeze
9
+ Aside = 'aside'.freeze
10
+ Audio = 'audio'.freeze
11
+ B = 'b'.freeze
12
+ Base = 'base'.freeze
13
+ Bdi = 'bdi'.freeze
14
+ Bdo = 'bdo'.freeze
15
+ Blockquote = 'blockquote'.freeze
16
+ Body = 'body'.freeze
17
+ Br = 'br'.freeze
18
+ Button = 'button'.freeze
19
+ Canvas = 'canvas'.freeze
20
+ Caption = 'caption'.freeze
21
+ Cite = 'cite'.freeze
22
+ Code = 'code'.freeze
23
+ Col = 'col'.freeze
24
+ Colgroup = 'colgroup'.freeze
25
+ Command = 'command'.freeze
26
+ Data = 'data'.freeze
27
+ Datalist = 'datalist'.freeze
28
+ Dd = 'dd'.freeze
29
+ Del = 'del'.freeze
30
+ Details = 'details'.freeze
31
+ Dfn = 'dfn'.freeze
32
+ Dialog = 'dialog'.freeze
33
+ Div = 'div'.freeze
34
+ Dl = 'dl'.freeze
35
+ Dt = 'dt'.freeze
36
+ Em = 'em'.freeze
37
+ Embed = 'embed'.freeze
38
+ Fieldset = 'fieldset'.freeze
39
+ Figcaption = 'figcaption'.freeze
40
+ Figure = 'figure'.freeze
41
+ Footer = 'footer'.freeze
42
+ Form = 'form'.freeze
43
+ H1 = 'h1'.freeze
44
+ H2 = 'h2'.freeze
45
+ H3 = 'h3'.freeze
46
+ H4 = 'h4'.freeze
47
+ H5 = 'h5'.freeze
48
+ H6 = 'h6'.freeze
49
+ Head = 'head'.freeze
50
+ Header = 'header'.freeze
51
+ Hgroup = 'hgroup'.freeze
52
+ Hr = 'hr'.freeze
53
+ Html = 'html'.freeze
54
+ I = 'i'.freeze
55
+ Iframe = 'iframe'.freeze
56
+ Img = 'img'.freeze
57
+ Input = 'input'.freeze
58
+ Ins = 'ins'.freeze
59
+ Kbd = 'kbd'.freeze
60
+ Keygen = 'keygen'.freeze
61
+ Label = 'label'.freeze
62
+ Legend = 'legend'.freeze
63
+ Li = 'li'.freeze
64
+ Link = 'link'.freeze
65
+ Main = 'main'.freeze
66
+ Map = 'map'.freeze
67
+ Mark = 'mark'.freeze
68
+ Menu = 'menu'.freeze
69
+ Menuitem = 'menuitem'.freeze
70
+ Meta = 'meta'.freeze
71
+ Meter = 'meter'.freeze
72
+ Nav = 'nav'.freeze
73
+ Noscript = 'noscript'.freeze
74
+ Object = 'object'.freeze
75
+ Ol = 'ol'.freeze
76
+ Optgroup = 'optgroup'.freeze
77
+ Option = 'option'.freeze
78
+ Output = 'output'.freeze
79
+ P = 'p'.freeze
80
+ Param = 'param'.freeze
81
+ Picture = 'picture'.freeze
82
+ Pre = 'pre'.freeze
83
+ Progress = 'progress'.freeze
84
+ Q = 'q'.freeze
85
+ Rp = 'rp'.freeze
86
+ Rt = 'rt'.freeze
87
+ Ruby = 'ruby'.freeze
88
+ S = 's'.freeze
89
+ Samp = 'samp'.freeze
90
+ Script = 'script'.freeze
91
+ Section = 'section'.freeze
92
+ Select = 'select'.freeze
93
+ Slot = 'slot'.freeze
94
+ Small = 'small'.freeze
95
+ Source = 'source'.freeze
96
+ Span = 'span'.freeze
97
+ Strong = 'strong'.freeze
98
+ Style = 'style'.freeze
99
+ Sub = 'sub'.freeze
100
+ Summary = 'summary'.freeze
101
+ Sup = 'sup'.freeze
102
+ Table = 'table'.freeze
103
+ Tbody = 'tbody'.freeze
104
+ Td = 'td'.freeze
105
+ Template = 'template'.freeze
106
+ Textarea = 'textarea'.freeze
107
+ Tfoot = 'tfoot'.freeze
108
+ Th = 'th'.freeze
109
+ Thead = 'thead'.freeze
110
+ Time = 'time'.freeze
111
+ Title = 'title'.freeze
112
+ Tr = 'tr'.freeze
113
+ Track = 'track'.freeze
114
+ U = 'u'.freeze
115
+ Ul = 'ul'.freeze
116
+ Var = 'var'.freeze
117
+ Video = 'video'.freeze
118
+ Wbr = 'wbr'.freeze
119
+ Accept = 'accept'.freeze
120
+ AcceptCharset = 'accept-charset'.freeze
121
+ Accesskey = 'accesskey'.freeze
122
+ Action = 'action'.freeze
123
+ Allowfullscreen = 'allowfullscreen'.freeze
124
+ Allowpaymentrequest = 'allowpaymentrequest'.freeze
125
+ Allowusermedia = 'allowusermedia'.freeze
126
+ Alt = 'alt'.freeze
127
+ As = 'as'.freeze
128
+ Async = 'async'.freeze
129
+ Autocomplete = 'autocomplete'.freeze
130
+ Autofocus = 'autofocus'.freeze
131
+ Autoplay = 'autoplay'.freeze
132
+ Challenge = 'challenge'.freeze
133
+ Charset = 'charset'.freeze
134
+ Checked = 'checked'.freeze
135
+ Class = 'class'.freeze
136
+ Color = 'color'.freeze
137
+ Cols = 'cols'.freeze
138
+ Colspan = 'colspan'.freeze
139
+ Content = 'content'.freeze
140
+ Contenteditable = 'contenteditable'.freeze
141
+ Contextmenu = 'contextmenu'.freeze
142
+ Controls = 'controls'.freeze
143
+ Coords = 'coords'.freeze
144
+ Crossorigin = 'crossorigin'.freeze
145
+ Datetime = 'datetime'.freeze
146
+ Default = 'default'.freeze
147
+ Defer = 'defer'.freeze
148
+ Dir = 'dir'.freeze
149
+ Dirname = 'dirname'.freeze
150
+ Disabled = 'disabled'.freeze
151
+ Download = 'download'.freeze
152
+ Draggable = 'draggable'.freeze
153
+ Dropzone = 'dropzone'.freeze
154
+ Enctype = 'enctype'.freeze
155
+ For = 'for'.freeze
156
+ Formaction = 'formaction'.freeze
157
+ Formenctype = 'formenctype'.freeze
158
+ Formmethod = 'formmethod'.freeze
159
+ Formnovalidate = 'formnovalidate'.freeze
160
+ Formtarget = 'formtarget'.freeze
161
+ Headers = 'headers'.freeze
162
+ Height = 'height'.freeze
163
+ Hidden = 'hidden'.freeze
164
+ High = 'high'.freeze
165
+ Href = 'href'.freeze
166
+ Hreflang = 'hreflang'.freeze
167
+ HttpEquiv = 'http-equiv'.freeze
168
+ Icon = 'icon'.freeze
169
+ Id = 'id'.freeze
170
+ Inputmode = 'inputmode'.freeze
171
+ Integrity = 'integrity'.freeze
172
+ Is = 'is'.freeze
173
+ Ismap = 'ismap'.freeze
174
+ Itemid = 'itemid'.freeze
175
+ Itemprop = 'itemprop'.freeze
176
+ Itemref = 'itemref'.freeze
177
+ Itemscope = 'itemscope'.freeze
178
+ Itemtype = 'itemtype'.freeze
179
+ Keytype = 'keytype'.freeze
180
+ Kind = 'kind'.freeze
181
+ Lang = 'lang'.freeze
182
+ List = 'list'.freeze
183
+ Loop = 'loop'.freeze
184
+ Low = 'low'.freeze
185
+ Manifest = 'manifest'.freeze
186
+ Max = 'max'.freeze
187
+ Maxlength = 'maxlength'.freeze
188
+ Media = 'media'.freeze
189
+ Mediagroup = 'mediagroup'.freeze
190
+ Method = 'method'.freeze
191
+ Min = 'min'.freeze
192
+ Minlength = 'minlength'.freeze
193
+ Multiple = 'multiple'.freeze
194
+ Muted = 'muted'.freeze
195
+ Name = 'name'.freeze
196
+ Nomodule = 'nomodule'.freeze
197
+ Nonce = 'nonce'.freeze
198
+ Novalidate = 'novalidate'.freeze
199
+ Open = 'open'.freeze
200
+ Optimum = 'optimum'.freeze
201
+ Pattern = 'pattern'.freeze
202
+ Ping = 'ping'.freeze
203
+ Placeholder = 'placeholder'.freeze
204
+ Playsinline = 'playsinline'.freeze
205
+ Poster = 'poster'.freeze
206
+ Preload = 'preload'.freeze
207
+ Radiogroup = 'radiogroup'.freeze
208
+ Readonly = 'readonly'.freeze
209
+ Referrerpolicy = 'referrerpolicy'.freeze
210
+ Rel = 'rel'.freeze
211
+ Required = 'required'.freeze
212
+ Reversed = 'reversed'.freeze
213
+ Rows = 'rows'.freeze
214
+ Rowspan = 'rowspan'.freeze
215
+ Sandbox = 'sandbox'.freeze
216
+ Spellcheck = 'spellcheck'.freeze
217
+ Scope = 'scope'.freeze
218
+ Scoped = 'scoped'.freeze
219
+ Seamless = 'seamless'.freeze
220
+ Selected = 'selected'.freeze
221
+ Shape = 'shape'.freeze
222
+ Size = 'size'.freeze
223
+ Sizes = 'sizes'.freeze
224
+ Sortable = 'sortable'.freeze
225
+ Sorted = 'sorted'.freeze
226
+ Src = 'src'.freeze
227
+ Srcdoc = 'srcdoc'.freeze
228
+ Srclang = 'srclang'.freeze
229
+ Srcset = 'srcset'.freeze
230
+ Start = 'start'.freeze
231
+ Step = 'step'.freeze
232
+ Tabindex = 'tabindex'.freeze
233
+ Target = 'target'.freeze
234
+ Translate = 'translate'.freeze
235
+ Type = 'type'.freeze
236
+ Typemustmatch = 'typemustmatch'.freeze
237
+ Updateviacache = 'updateviacache'.freeze
238
+ Usemap = 'usemap'.freeze
239
+ Value = 'value'.freeze
240
+ Width = 'width'.freeze
241
+ Workertype = 'workertype'.freeze
242
+ Wrap = 'wrap'.freeze
243
+ Onabort = 'onabort'.freeze
244
+ Onautocomplete = 'onautocomplete'.freeze
245
+ Onautocompleteerror = 'onautocompleteerror'.freeze
246
+ Onauxclick = 'onauxclick'.freeze
247
+ Onafterprint = 'onafterprint'.freeze
248
+ Onbeforeprint = 'onbeforeprint'.freeze
249
+ Onbeforeunload = 'onbeforeunload'.freeze
250
+ Onblur = 'onblur'.freeze
251
+ Oncancel = 'oncancel'.freeze
252
+ Oncanplay = 'oncanplay'.freeze
253
+ Oncanplaythrough = 'oncanplaythrough'.freeze
254
+ Onchange = 'onchange'.freeze
255
+ Onclick = 'onclick'.freeze
256
+ Onclose = 'onclose'.freeze
257
+ Oncontextmenu = 'oncontextmenu'.freeze
258
+ Oncopy = 'oncopy'.freeze
259
+ Oncuechange = 'oncuechange'.freeze
260
+ Oncut = 'oncut'.freeze
261
+ Ondblclick = 'ondblclick'.freeze
262
+ Ondrag = 'ondrag'.freeze
263
+ Ondragend = 'ondragend'.freeze
264
+ Ondragenter = 'ondragenter'.freeze
265
+ Ondragexit = 'ondragexit'.freeze
266
+ Ondragleave = 'ondragleave'.freeze
267
+ Ondragover = 'ondragover'.freeze
268
+ Ondragstart = 'ondragstart'.freeze
269
+ Ondrop = 'ondrop'.freeze
270
+ Ondurationchange = 'ondurationchange'.freeze
271
+ Onemptied = 'onemptied'.freeze
272
+ Onended = 'onended'.freeze
273
+ Onerror = 'onerror'.freeze
274
+ Onfocus = 'onfocus'.freeze
275
+ Onhashchange = 'onhashchange'.freeze
276
+ Oninput = 'oninput'.freeze
277
+ Oninvalid = 'oninvalid'.freeze
278
+ Onkeydown = 'onkeydown'.freeze
279
+ Onkeypress = 'onkeypress'.freeze
280
+ Onkeyup = 'onkeyup'.freeze
281
+ Onlanguagechange = 'onlanguagechange'.freeze
282
+ Onload = 'onload'.freeze
283
+ Onloadeddata = 'onloadeddata'.freeze
284
+ Onloadedmetadata = 'onloadedmetadata'.freeze
285
+ Onloadend = 'onloadend'.freeze
286
+ Onloadstart = 'onloadstart'.freeze
287
+ Onmessage = 'onmessage'.freeze
288
+ Onmessageerror = 'onmessageerror'.freeze
289
+ Onmousedown = 'onmousedown'.freeze
290
+ Onmouseenter = 'onmouseenter'.freeze
291
+ Onmouseleave = 'onmouseleave'.freeze
292
+ Onmousemove = 'onmousemove'.freeze
293
+ Onmouseout = 'onmouseout'.freeze
294
+ Onmouseover = 'onmouseover'.freeze
295
+ Onmouseup = 'onmouseup'.freeze
296
+ Onmousewheel = 'onmousewheel'.freeze
297
+ Onwheel = 'onwheel'.freeze
298
+ Onoffline = 'onoffline'.freeze
299
+ Ononline = 'ononline'.freeze
300
+ Onpagehide = 'onpagehide'.freeze
301
+ Onpageshow = 'onpageshow'.freeze
302
+ Onpaste = 'onpaste'.freeze
303
+ Onpause = 'onpause'.freeze
304
+ Onplay = 'onplay'.freeze
305
+ Onplaying = 'onplaying'.freeze
306
+ Onpopstate = 'onpopstate'.freeze
307
+ Onprogress = 'onprogress'.freeze
308
+ Onratechange = 'onratechange'.freeze
309
+ Onreset = 'onreset'.freeze
310
+ Onresize = 'onresize'.freeze
311
+ Onrejectionhandled = 'onrejectionhandled'.freeze
312
+ Onscroll = 'onscroll'.freeze
313
+ Onsecuritypolicyviolation = 'onsecuritypolicyviolation'.freeze
314
+ Onseeked = 'onseeked'.freeze
315
+ Onseeking = 'onseeking'.freeze
316
+ Onselect = 'onselect'.freeze
317
+ Onshow = 'onshow'.freeze
318
+ Onsort = 'onsort'.freeze
319
+ Onstalled = 'onstalled'.freeze
320
+ Onstorage = 'onstorage'.freeze
321
+ Onsubmit = 'onsubmit'.freeze
322
+ Onsuspend = 'onsuspend'.freeze
323
+ Ontimeupdate = 'ontimeupdate'.freeze
324
+ Ontoggle = 'ontoggle'.freeze
325
+ Onunhandledrejection = 'onunhandledrejection'.freeze
326
+ Onunload = 'onunload'.freeze
327
+ Onvolumechange = 'onvolumechange'.freeze
328
+ Onwaiting = 'onwaiting'.freeze
329
+ Acronym = 'acronym'.freeze
330
+ Align = 'align'.freeze
331
+ Annotation = 'annotation'.freeze
332
+ AnnotationXml = 'annotation-xml'.freeze
333
+ Applet = 'applet'.freeze
334
+ Basefont = 'basefont'.freeze
335
+ Bgsound = 'bgsound'.freeze
336
+ Big = 'big'.freeze
337
+ Blink = 'blink'.freeze
338
+ Center = 'center'.freeze
339
+ Desc = 'desc'.freeze
340
+ Face = 'face'.freeze
341
+ Font = 'font'.freeze
342
+ ForeignObject = 'foreignObject'.freeze
343
+ Foreignobject = 'foreignobject'.freeze
344
+ Frame = 'frame'.freeze
345
+ Frameset = 'frameset'.freeze
346
+ Image = 'image'.freeze
347
+ Isindex = 'isindex'.freeze
348
+ Listing = 'listing'.freeze
349
+ Malignmark = 'malignmark'.freeze
350
+ Marquee = 'marquee'.freeze
351
+ Math = 'math'.freeze
352
+ Mglyph = 'mglyph'.freeze
353
+ Mi = 'mi'.freeze
354
+ Mn = 'mn'.freeze
355
+ Mo = 'mo'.freeze
356
+ Ms = 'ms'.freeze
357
+ Mtext = 'mtext'.freeze
358
+ Nobr = 'nobr'.freeze
359
+ Noembed = 'noembed'.freeze
360
+ Noframes = 'noframes'.freeze
361
+ Plaintext = 'plaintext'.freeze
362
+ Prompt = 'prompt'.freeze
363
+ Public = 'public'.freeze
364
+ Rb = 'rb'.freeze
365
+ Rtc = 'rtc'.freeze
366
+ Spacer = 'spacer'.freeze
367
+ Strike = 'strike'.freeze
368
+ Svg = 'svg'.freeze
369
+ System = 'system'.freeze
370
+ Tt = 'tt'.freeze
371
+ Xmp = 'xmp'.freeze
372
+
373
+ TABLE = {
374
+ 'a' => A,
375
+ 'abbr' => Abbr,
376
+ 'address' => Address,
377
+ 'area' => Area,
378
+ 'article' => Article,
379
+ 'aside' => Aside,
380
+ 'audio' => Audio,
381
+ 'b' => B,
382
+ 'base' => Base,
383
+ 'bdi' => Bdi,
384
+ 'bdo' => Bdo,
385
+ 'blockquote' => Blockquote,
386
+ 'body' => Body,
387
+ 'br' => Br,
388
+ 'button' => Button,
389
+ 'canvas' => Canvas,
390
+ 'caption' => Caption,
391
+ 'cite' => Cite,
392
+ 'code' => Code,
393
+ 'col' => Col,
394
+ 'colgroup' => Colgroup,
395
+ 'command' => Command,
396
+ 'data' => Data,
397
+ 'datalist' => Datalist,
398
+ 'dd' => Dd,
399
+ 'del' => Del,
400
+ 'details' => Details,
401
+ 'dfn' => Dfn,
402
+ 'dialog' => Dialog,
403
+ 'div' => Div,
404
+ 'dl' => Dl,
405
+ 'dt' => Dt,
406
+ 'em' => Em,
407
+ 'embed' => Embed,
408
+ 'fieldset' => Fieldset,
409
+ 'figcaption' => Figcaption,
410
+ 'figure' => Figure,
411
+ 'footer' => Footer,
412
+ 'form' => Form,
413
+ 'h1' => H1,
414
+ 'h2' => H2,
415
+ 'h3' => H3,
416
+ 'h4' => H4,
417
+ 'h5' => H5,
418
+ 'h6' => H6,
419
+ 'head' => Head,
420
+ 'header' => Header,
421
+ 'hgroup' => Hgroup,
422
+ 'hr' => Hr,
423
+ 'html' => Html,
424
+ 'i' => I,
425
+ 'iframe' => Iframe,
426
+ 'img' => Img,
427
+ 'input' => Input,
428
+ 'ins' => Ins,
429
+ 'kbd' => Kbd,
430
+ 'keygen' => Keygen,
431
+ 'label' => Label,
432
+ 'legend' => Legend,
433
+ 'li' => Li,
434
+ 'link' => Link,
435
+ 'main' => Main,
436
+ 'map' => Map,
437
+ 'mark' => Mark,
438
+ 'menu' => Menu,
439
+ 'menuitem' => Menuitem,
440
+ 'meta' => Meta,
441
+ 'meter' => Meter,
442
+ 'nav' => Nav,
443
+ 'noscript' => Noscript,
444
+ 'object' => Object,
445
+ 'ol' => Ol,
446
+ 'optgroup' => Optgroup,
447
+ 'option' => Option,
448
+ 'output' => Output,
449
+ 'p' => P,
450
+ 'param' => Param,
451
+ 'picture' => Picture,
452
+ 'pre' => Pre,
453
+ 'progress' => Progress,
454
+ 'q' => Q,
455
+ 'rp' => Rp,
456
+ 'rt' => Rt,
457
+ 'ruby' => Ruby,
458
+ 's' => S,
459
+ 'samp' => Samp,
460
+ 'script' => Script,
461
+ 'section' => Section,
462
+ 'select' => Select,
463
+ 'slot' => Slot,
464
+ 'small' => Small,
465
+ 'source' => Source,
466
+ 'span' => Span,
467
+ 'strong' => Strong,
468
+ 'style' => Style,
469
+ 'sub' => Sub,
470
+ 'summary' => Summary,
471
+ 'sup' => Sup,
472
+ 'table' => Table,
473
+ 'tbody' => Tbody,
474
+ 'td' => Td,
475
+ 'template' => Template,
476
+ 'textarea' => Textarea,
477
+ 'tfoot' => Tfoot,
478
+ 'th' => Th,
479
+ 'thead' => Thead,
480
+ 'time' => Time,
481
+ 'title' => Title,
482
+ 'tr' => Tr,
483
+ 'track' => Track,
484
+ 'u' => U,
485
+ 'ul' => Ul,
486
+ 'var' => Var,
487
+ 'video' => Video,
488
+ 'wbr' => Wbr,
489
+ 'accept' => Accept,
490
+ 'accept-charset' => AcceptCharset,
491
+ 'accesskey' => Accesskey,
492
+ 'action' => Action,
493
+ 'allowfullscreen' => Allowfullscreen,
494
+ 'allowpaymentrequest' => Allowpaymentrequest,
495
+ 'allowusermedia' => Allowusermedia,
496
+ 'alt' => Alt,
497
+ 'as' => As,
498
+ 'async' => Async,
499
+ 'autocomplete' => Autocomplete,
500
+ 'autofocus' => Autofocus,
501
+ 'autoplay' => Autoplay,
502
+ 'challenge' => Challenge,
503
+ 'charset' => Charset,
504
+ 'checked' => Checked,
505
+ 'class' => Class,
506
+ 'color' => Color,
507
+ 'cols' => Cols,
508
+ 'colspan' => Colspan,
509
+ 'content' => Content,
510
+ 'contenteditable' => Contenteditable,
511
+ 'contextmenu' => Contextmenu,
512
+ 'controls' => Controls,
513
+ 'coords' => Coords,
514
+ 'crossorigin' => Crossorigin,
515
+ 'datetime' => Datetime,
516
+ 'default' => Default,
517
+ 'defer' => Defer,
518
+ 'dir' => Dir,
519
+ 'dirname' => Dirname,
520
+ 'disabled' => Disabled,
521
+ 'download' => Download,
522
+ 'draggable' => Draggable,
523
+ 'dropzone' => Dropzone,
524
+ 'enctype' => Enctype,
525
+ 'for' => For,
526
+ 'formaction' => Formaction,
527
+ 'formenctype' => Formenctype,
528
+ 'formmethod' => Formmethod,
529
+ 'formnovalidate' => Formnovalidate,
530
+ 'formtarget' => Formtarget,
531
+ 'headers' => Headers,
532
+ 'height' => Height,
533
+ 'hidden' => Hidden,
534
+ 'high' => High,
535
+ 'href' => Href,
536
+ 'hreflang' => Hreflang,
537
+ 'http-equiv' => HttpEquiv,
538
+ 'icon' => Icon,
539
+ 'id' => Id,
540
+ 'inputmode' => Inputmode,
541
+ 'integrity' => Integrity,
542
+ 'is' => Is,
543
+ 'ismap' => Ismap,
544
+ 'itemid' => Itemid,
545
+ 'itemprop' => Itemprop,
546
+ 'itemref' => Itemref,
547
+ 'itemscope' => Itemscope,
548
+ 'itemtype' => Itemtype,
549
+ 'keytype' => Keytype,
550
+ 'kind' => Kind,
551
+ 'lang' => Lang,
552
+ 'list' => List,
553
+ 'loop' => Loop,
554
+ 'low' => Low,
555
+ 'manifest' => Manifest,
556
+ 'max' => Max,
557
+ 'maxlength' => Maxlength,
558
+ 'media' => Media,
559
+ 'mediagroup' => Mediagroup,
560
+ 'method' => Method,
561
+ 'min' => Min,
562
+ 'minlength' => Minlength,
563
+ 'multiple' => Multiple,
564
+ 'muted' => Muted,
565
+ 'name' => Name,
566
+ 'nomodule' => Nomodule,
567
+ 'nonce' => Nonce,
568
+ 'novalidate' => Novalidate,
569
+ 'open' => Open,
570
+ 'optimum' => Optimum,
571
+ 'pattern' => Pattern,
572
+ 'ping' => Ping,
573
+ 'placeholder' => Placeholder,
574
+ 'playsinline' => Playsinline,
575
+ 'poster' => Poster,
576
+ 'preload' => Preload,
577
+ 'radiogroup' => Radiogroup,
578
+ 'readonly' => Readonly,
579
+ 'referrerpolicy' => Referrerpolicy,
580
+ 'rel' => Rel,
581
+ 'required' => Required,
582
+ 'reversed' => Reversed,
583
+ 'rows' => Rows,
584
+ 'rowspan' => Rowspan,
585
+ 'sandbox' => Sandbox,
586
+ 'spellcheck' => Spellcheck,
587
+ 'scope' => Scope,
588
+ 'scoped' => Scoped,
589
+ 'seamless' => Seamless,
590
+ 'selected' => Selected,
591
+ 'shape' => Shape,
592
+ 'size' => Size,
593
+ 'sizes' => Sizes,
594
+ 'sortable' => Sortable,
595
+ 'sorted' => Sorted,
596
+ 'src' => Src,
597
+ 'srcdoc' => Srcdoc,
598
+ 'srclang' => Srclang,
599
+ 'srcset' => Srcset,
600
+ 'start' => Start,
601
+ 'step' => Step,
602
+ 'tabindex' => Tabindex,
603
+ 'target' => Target,
604
+ 'translate' => Translate,
605
+ 'type' => Type,
606
+ 'typemustmatch' => Typemustmatch,
607
+ 'updateviacache' => Updateviacache,
608
+ 'usemap' => Usemap,
609
+ 'value' => Value,
610
+ 'width' => Width,
611
+ 'workertype' => Workertype,
612
+ 'wrap' => Wrap,
613
+ 'onabort' => Onabort,
614
+ 'onautocomplete' => Onautocomplete,
615
+ 'onautocompleteerror' => Onautocompleteerror,
616
+ 'onauxclick' => Onauxclick,
617
+ 'onafterprint' => Onafterprint,
618
+ 'onbeforeprint' => Onbeforeprint,
619
+ 'onbeforeunload' => Onbeforeunload,
620
+ 'onblur' => Onblur,
621
+ 'oncancel' => Oncancel,
622
+ 'oncanplay' => Oncanplay,
623
+ 'oncanplaythrough' => Oncanplaythrough,
624
+ 'onchange' => Onchange,
625
+ 'onclick' => Onclick,
626
+ 'onclose' => Onclose,
627
+ 'oncontextmenu' => Oncontextmenu,
628
+ 'oncopy' => Oncopy,
629
+ 'oncuechange' => Oncuechange,
630
+ 'oncut' => Oncut,
631
+ 'ondblclick' => Ondblclick,
632
+ 'ondrag' => Ondrag,
633
+ 'ondragend' => Ondragend,
634
+ 'ondragenter' => Ondragenter,
635
+ 'ondragexit' => Ondragexit,
636
+ 'ondragleave' => Ondragleave,
637
+ 'ondragover' => Ondragover,
638
+ 'ondragstart' => Ondragstart,
639
+ 'ondrop' => Ondrop,
640
+ 'ondurationchange' => Ondurationchange,
641
+ 'onemptied' => Onemptied,
642
+ 'onended' => Onended,
643
+ 'onerror' => Onerror,
644
+ 'onfocus' => Onfocus,
645
+ 'onhashchange' => Onhashchange,
646
+ 'oninput' => Oninput,
647
+ 'oninvalid' => Oninvalid,
648
+ 'onkeydown' => Onkeydown,
649
+ 'onkeypress' => Onkeypress,
650
+ 'onkeyup' => Onkeyup,
651
+ 'onlanguagechange' => Onlanguagechange,
652
+ 'onload' => Onload,
653
+ 'onloadeddata' => Onloadeddata,
654
+ 'onloadedmetadata' => Onloadedmetadata,
655
+ 'onloadend' => Onloadend,
656
+ 'onloadstart' => Onloadstart,
657
+ 'onmessage' => Onmessage,
658
+ 'onmessageerror' => Onmessageerror,
659
+ 'onmousedown' => Onmousedown,
660
+ 'onmouseenter' => Onmouseenter,
661
+ 'onmouseleave' => Onmouseleave,
662
+ 'onmousemove' => Onmousemove,
663
+ 'onmouseout' => Onmouseout,
664
+ 'onmouseover' => Onmouseover,
665
+ 'onmouseup' => Onmouseup,
666
+ 'onmousewheel' => Onmousewheel,
667
+ 'onwheel' => Onwheel,
668
+ 'onoffline' => Onoffline,
669
+ 'ononline' => Ononline,
670
+ 'onpagehide' => Onpagehide,
671
+ 'onpageshow' => Onpageshow,
672
+ 'onpaste' => Onpaste,
673
+ 'onpause' => Onpause,
674
+ 'onplay' => Onplay,
675
+ 'onplaying' => Onplaying,
676
+ 'onpopstate' => Onpopstate,
677
+ 'onprogress' => Onprogress,
678
+ 'onratechange' => Onratechange,
679
+ 'onreset' => Onreset,
680
+ 'onresize' => Onresize,
681
+ 'onrejectionhandled' => Onrejectionhandled,
682
+ 'onscroll' => Onscroll,
683
+ 'onsecuritypolicyviolation' => Onsecuritypolicyviolation,
684
+ 'onseeked' => Onseeked,
685
+ 'onseeking' => Onseeking,
686
+ 'onselect' => Onselect,
687
+ 'onshow' => Onshow,
688
+ 'onsort' => Onsort,
689
+ 'onstalled' => Onstalled,
690
+ 'onstorage' => Onstorage,
691
+ 'onsubmit' => Onsubmit,
692
+ 'onsuspend' => Onsuspend,
693
+ 'ontimeupdate' => Ontimeupdate,
694
+ 'ontoggle' => Ontoggle,
695
+ 'onunhandledrejection' => Onunhandledrejection,
696
+ 'onunload' => Onunload,
697
+ 'onvolumechange' => Onvolumechange,
698
+ 'onwaiting' => Onwaiting,
699
+ 'acronym' => Acronym,
700
+ 'align' => Align,
701
+ 'annotation' => Annotation,
702
+ 'annotation-xml' => AnnotationXml,
703
+ 'applet' => Applet,
704
+ 'basefont' => Basefont,
705
+ 'bgsound' => Bgsound,
706
+ 'big' => Big,
707
+ 'blink' => Blink,
708
+ 'center' => Center,
709
+ 'desc' => Desc,
710
+ 'face' => Face,
711
+ 'font' => Font,
712
+ 'foreignObject' => ForeignObject,
713
+ 'foreignobject' => Foreignobject,
714
+ 'frame' => Frame,
715
+ 'frameset' => Frameset,
716
+ 'image' => Image,
717
+ 'isindex' => Isindex,
718
+ 'listing' => Listing,
719
+ 'malignmark' => Malignmark,
720
+ 'marquee' => Marquee,
721
+ 'math' => Math,
722
+ 'mglyph' => Mglyph,
723
+ 'mi' => Mi,
724
+ 'mn' => Mn,
725
+ 'mo' => Mo,
726
+ 'ms' => Ms,
727
+ 'mtext' => Mtext,
728
+ 'nobr' => Nobr,
729
+ 'noembed' => Noembed,
730
+ 'noframes' => Noframes,
731
+ 'plaintext' => Plaintext,
732
+ 'prompt' => Prompt,
733
+ 'public' => Public,
734
+ 'rb' => Rb,
735
+ 'rtc' => Rtc,
736
+ 'spacer' => Spacer,
737
+ 'strike' => Strike,
738
+ 'svg' => Svg,
739
+ 'system' => System,
740
+ 'tt' => Tt,
741
+ 'xmp' => Xmp,
742
+ }
743
+ end
744
+ end