gammo 0.1.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 (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