gammo 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/Gemfile +9 -0
- data/Gemfile.lock +27 -0
- data/LICENSE.txt +21 -0
- data/README.md +177 -0
- data/Rakefile +25 -0
- data/gammo.gemspec +23 -0
- data/lib/gammo.rb +15 -0
- data/lib/gammo/attribute.rb +17 -0
- data/lib/gammo/fragment_parser.rb +65 -0
- data/lib/gammo/node.rb +157 -0
- data/lib/gammo/parser.rb +524 -0
- data/lib/gammo/parser/constants.rb +94 -0
- data/lib/gammo/parser/foreign.rb +307 -0
- data/lib/gammo/parser/insertion_mode.rb +74 -0
- data/lib/gammo/parser/insertion_mode/after_after_body.rb +36 -0
- data/lib/gammo/parser/insertion_mode/after_after_frameset.rb +32 -0
- data/lib/gammo/parser/insertion_mode/after_body.rb +46 -0
- data/lib/gammo/parser/insertion_mode/after_frameset.rb +39 -0
- data/lib/gammo/parser/insertion_mode/after_head.rb +70 -0
- data/lib/gammo/parser/insertion_mode/before_head.rb +49 -0
- data/lib/gammo/parser/insertion_mode/before_html.rb +45 -0
- data/lib/gammo/parser/insertion_mode/in_body.rb +463 -0
- data/lib/gammo/parser/insertion_mode/in_caption.rb +47 -0
- data/lib/gammo/parser/insertion_mode/in_cell.rb +46 -0
- data/lib/gammo/parser/insertion_mode/in_column_group.rb +66 -0
- data/lib/gammo/parser/insertion_mode/in_frameset.rb +48 -0
- data/lib/gammo/parser/insertion_mode/in_head.rb +98 -0
- data/lib/gammo/parser/insertion_mode/in_head_noscript.rb +52 -0
- data/lib/gammo/parser/insertion_mode/in_row.rb +53 -0
- data/lib/gammo/parser/insertion_mode/in_select.rb +77 -0
- data/lib/gammo/parser/insertion_mode/in_select_in_table.rb +46 -0
- data/lib/gammo/parser/insertion_mode/in_table.rb +114 -0
- data/lib/gammo/parser/insertion_mode/in_table_body.rb +55 -0
- data/lib/gammo/parser/insertion_mode/in_template.rb +80 -0
- data/lib/gammo/parser/insertion_mode/initial.rb +152 -0
- data/lib/gammo/parser/insertion_mode/text.rb +32 -0
- data/lib/gammo/parser/insertion_mode_stack.rb +8 -0
- data/lib/gammo/parser/node_stack.rb +24 -0
- data/lib/gammo/tags.rb +9 -0
- data/lib/gammo/tags/table.rb +744 -0
- data/lib/gammo/tokenizer.rb +373 -0
- data/lib/gammo/tokenizer/debug.rb +34 -0
- data/lib/gammo/tokenizer/entity.rb +2240 -0
- data/lib/gammo/tokenizer/escape.rb +174 -0
- data/lib/gammo/tokenizer/script_scanner.rb +229 -0
- data/lib/gammo/tokenizer/tokens.rb +66 -0
- data/lib/gammo/version.rb +3 -0
- data/misc/html.yaml +384 -0
- data/misc/table.erubi +14 -0
- 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,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
|
data/lib/gammo/tags.rb
ADDED
@@ -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
|