nokogiri 1.12.5 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/README.md +9 -7
  4. data/bin/nokogiri +63 -50
  5. data/dependencies.yml +5 -6
  6. data/ext/nokogiri/extconf.rb +47 -35
  7. data/ext/nokogiri/xml_document.c +35 -35
  8. data/ext/nokogiri/xml_document_fragment.c +0 -2
  9. data/ext/nokogiri/xml_dtd.c +2 -2
  10. data/ext/nokogiri/xml_encoding_handler.c +25 -11
  11. data/ext/nokogiri/xml_node.c +638 -333
  12. data/ext/nokogiri/xml_reader.c +37 -11
  13. data/ext/nokogiri/xml_xpath_context.c +72 -49
  14. data/gumbo-parser/src/parser.c +0 -11
  15. data/lib/nokogiri/class_resolver.rb +67 -0
  16. data/lib/nokogiri/css/node.rb +9 -8
  17. data/lib/nokogiri/css/parser.rb +11 -3
  18. data/lib/nokogiri/css/parser.y +10 -2
  19. data/lib/nokogiri/css/parser_extras.rb +20 -20
  20. data/lib/nokogiri/css/syntax_error.rb +1 -0
  21. data/lib/nokogiri/css/tokenizer.rb +2 -1
  22. data/lib/nokogiri/css/tokenizer.rex +2 -1
  23. data/lib/nokogiri/css/xpath_visitor.rb +174 -75
  24. data/lib/nokogiri/css.rb +38 -6
  25. data/lib/nokogiri/decorators/slop.rb +8 -7
  26. data/lib/nokogiri/extension.rb +1 -1
  27. data/lib/nokogiri/gumbo.rb +1 -0
  28. data/lib/nokogiri/html.rb +16 -10
  29. data/lib/nokogiri/html4/builder.rb +1 -0
  30. data/lib/nokogiri/html4/document.rb +84 -75
  31. data/lib/nokogiri/html4/document_fragment.rb +11 -7
  32. data/lib/nokogiri/html4/element_description.rb +1 -0
  33. data/lib/nokogiri/html4/element_description_defaults.rb +426 -520
  34. data/lib/nokogiri/html4/entity_lookup.rb +2 -1
  35. data/lib/nokogiri/html4/sax/parser.rb +2 -1
  36. data/lib/nokogiri/html4/sax/parser_context.rb +1 -0
  37. data/lib/nokogiri/html4/sax/push_parser.rb +7 -7
  38. data/lib/nokogiri/html4.rb +11 -5
  39. data/lib/nokogiri/html5/document.rb +24 -10
  40. data/lib/nokogiri/html5/document_fragment.rb +5 -2
  41. data/lib/nokogiri/html5/node.rb +6 -3
  42. data/lib/nokogiri/html5.rb +68 -64
  43. data/lib/nokogiri/jruby/dependencies.rb +10 -9
  44. data/lib/nokogiri/syntax_error.rb +1 -0
  45. data/lib/nokogiri/version/constant.rb +2 -1
  46. data/lib/nokogiri/version/info.rb +19 -13
  47. data/lib/nokogiri/version.rb +1 -0
  48. data/lib/nokogiri/xml/attr.rb +5 -3
  49. data/lib/nokogiri/xml/attribute_decl.rb +2 -1
  50. data/lib/nokogiri/xml/builder.rb +32 -32
  51. data/lib/nokogiri/xml/cdata.rb +2 -1
  52. data/lib/nokogiri/xml/character_data.rb +1 -0
  53. data/lib/nokogiri/xml/document.rb +139 -103
  54. data/lib/nokogiri/xml/document_fragment.rb +41 -38
  55. data/lib/nokogiri/xml/dtd.rb +3 -2
  56. data/lib/nokogiri/xml/element_content.rb +1 -0
  57. data/lib/nokogiri/xml/element_decl.rb +2 -1
  58. data/lib/nokogiri/xml/entity_decl.rb +3 -2
  59. data/lib/nokogiri/xml/entity_reference.rb +1 -0
  60. data/lib/nokogiri/xml/namespace.rb +2 -0
  61. data/lib/nokogiri/xml/node/save_options.rb +6 -3
  62. data/lib/nokogiri/xml/node.rb +512 -348
  63. data/lib/nokogiri/xml/node_set.rb +46 -54
  64. data/lib/nokogiri/xml/notation.rb +12 -0
  65. data/lib/nokogiri/xml/parse_options.rb +11 -7
  66. data/lib/nokogiri/xml/pp/character_data.rb +8 -6
  67. data/lib/nokogiri/xml/pp/node.rb +24 -26
  68. data/lib/nokogiri/xml/pp.rb +1 -0
  69. data/lib/nokogiri/xml/processing_instruction.rb +2 -1
  70. data/lib/nokogiri/xml/reader.rb +17 -19
  71. data/lib/nokogiri/xml/relax_ng.rb +1 -0
  72. data/lib/nokogiri/xml/sax/document.rb +20 -19
  73. data/lib/nokogiri/xml/sax/parser.rb +36 -34
  74. data/lib/nokogiri/xml/sax/parser_context.rb +7 -3
  75. data/lib/nokogiri/xml/sax/push_parser.rb +5 -5
  76. data/lib/nokogiri/xml/sax.rb +1 -0
  77. data/lib/nokogiri/xml/schema.rb +7 -6
  78. data/lib/nokogiri/xml/searchable.rb +42 -22
  79. data/lib/nokogiri/xml/syntax_error.rb +4 -4
  80. data/lib/nokogiri/xml/text.rb +1 -0
  81. data/lib/nokogiri/xml/xpath/syntax_error.rb +2 -1
  82. data/lib/nokogiri/xml/xpath.rb +12 -0
  83. data/lib/nokogiri/xml/xpath_context.rb +2 -3
  84. data/lib/nokogiri/xml.rb +3 -3
  85. data/lib/nokogiri/xslt/stylesheet.rb +1 -0
  86. data/lib/nokogiri/xslt.rb +3 -2
  87. data/lib/nokogiri.rb +19 -16
  88. data/lib/xsd/xmlparser/nokogiri.rb +25 -24
  89. data/patches/libxml2/0008-htmlParseComment-handle-abruptly-closed-comments.patch +61 -0
  90. data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  91. metadata +101 -27
@@ -1,85 +1,85 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Nokogiri
3
4
  module HTML4
4
5
  class ElementDescription
5
-
6
6
  # Methods are defined protected by method_defined? because at
7
7
  # this point the C-library or Java library is already loaded,
8
8
  # and we don't want to clobber any methods that have been
9
9
  # defined there.
10
10
 
11
11
  Desc = Struct.new("HTMLElementDescription", :name,
12
- :startTag, :endTag, :saveEndTag,
13
- :empty, :depr, :dtd, :isinline,
14
- :desc,
15
- :subelts, :defaultsubelt,
16
- :attrs_opt, :attrs_depr, :attrs_req)
12
+ :startTag, :endTag, :saveEndTag,
13
+ :empty, :depr, :dtd, :isinline,
14
+ :desc,
15
+ :subelts, :defaultsubelt,
16
+ :attrs_opt, :attrs_depr, :attrs_req)
17
17
 
18
18
  # This is filled in down below.
19
- DefaultDescriptions = Hash.new()
19
+ DefaultDescriptions = {} # rubocop:disable Naming/ConstantName
20
20
 
21
21
  def default_desc
22
22
  DefaultDescriptions[name.downcase]
23
23
  end
24
24
  private :default_desc
25
25
 
26
- unless method_defined? :implied_start_tag?
26
+ unless method_defined?(:implied_start_tag?)
27
27
  def implied_start_tag?
28
28
  d = default_desc
29
29
  d ? d.startTag : nil
30
30
  end
31
31
  end
32
32
 
33
- unless method_defined? :implied_end_tag?
33
+ unless method_defined?(:implied_end_tag?)
34
34
  def implied_end_tag?
35
35
  d = default_desc
36
36
  d ? d.endTag : nil
37
37
  end
38
38
  end
39
39
 
40
- unless method_defined? :save_end_tag?
40
+ unless method_defined?(:save_end_tag?)
41
41
  def save_end_tag?
42
42
  d = default_desc
43
43
  d ? d.saveEndTag : nil
44
44
  end
45
45
  end
46
46
 
47
- unless method_defined? :deprecated?
47
+ unless method_defined?(:deprecated?)
48
48
  def deprecated?
49
49
  d = default_desc
50
50
  d ? d.depr : nil
51
51
  end
52
52
  end
53
53
 
54
- unless method_defined? :description
54
+ unless method_defined?(:description)
55
55
  def description
56
56
  d = default_desc
57
57
  d ? d.desc : nil
58
58
  end
59
59
  end
60
60
 
61
- unless method_defined? :default_sub_element
61
+ unless method_defined?(:default_sub_element)
62
62
  def default_sub_element
63
63
  d = default_desc
64
64
  d ? d.defaultsubelt : nil
65
65
  end
66
66
  end
67
67
 
68
- unless method_defined? :optional_attributes
68
+ unless method_defined?(:optional_attributes)
69
69
  def optional_attributes
70
70
  d = default_desc
71
71
  d ? d.attrs_opt : []
72
72
  end
73
73
  end
74
74
 
75
- unless method_defined? :deprecated_attributes
75
+ unless method_defined?(:deprecated_attributes)
76
76
  def deprecated_attributes
77
77
  d = default_desc
78
78
  d ? d.attrs_depr : []
79
79
  end
80
80
  end
81
81
 
82
- unless method_defined? :required_attributes
82
+ unless method_defined?(:required_attributes)
83
83
  def required_attributes
84
84
  d = default_desc
85
85
  d ? d.attrs_req : []
@@ -129,18 +129,18 @@ module Nokogiri
129
129
 
130
130
  # Attributes defined and categorized
131
131
  FONTSTYLE = ["tt", "i", "b", "u", "s", "strike", "big", "small"]
132
- PHRASE = ['em', 'strong', 'dfn', 'code', 'samp',
133
- 'kbd', 'var', 'cite', 'abbr', 'acronym']
134
- SPECIAL = ['a', 'img', 'applet', 'embed', 'object', 'font','basefont',
135
- 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo',
136
- 'iframe']
132
+ PHRASE = ["em", "strong", "dfn", "code", "samp",
133
+ "kbd", "var", "cite", "abbr", "acronym",]
134
+ SPECIAL = ["a", "img", "applet", "embed", "object", "font", "basefont",
135
+ "br", "script", "map", "q", "sub", "sup", "span", "bdo",
136
+ "iframe",]
137
137
  PCDATA = []
138
- HEADING = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
139
- LIST = ['ul', 'ol', 'dir', 'menu']
140
- FORMCTRL = ['input', 'select', 'textarea', 'label', 'button']
141
- BLOCK = [HEADING, LIST, 'pre', 'p', 'dl', 'div', 'center', 'noscript',
142
- 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table',
143
- 'fieldset', 'address']
138
+ HEADING = ["h1", "h2", "h3", "h4", "h5", "h6"]
139
+ LIST = ["ul", "ol", "dir", "menu"]
140
+ FORMCTRL = ["input", "select", "textarea", "label", "button"]
141
+ BLOCK = [HEADING, LIST, "pre", "p", "dl", "div", "center", "noscript",
142
+ "noframes", "blockquote", "form", "isindex", "hr", "table",
143
+ "fieldset", "address",]
144
144
  INLINE = [PCDATA, FONTSTYLE, PHRASE, SPECIAL, FORMCTRL]
145
145
  FLOW = [BLOCK, INLINE]
146
146
  MODIFIER = []
@@ -151,517 +151,423 @@ module Nokogiri
151
151
  HTML_PCDATA = PCDATA
152
152
  HTML_CDATA = HTML_PCDATA
153
153
 
154
- COREATTRS = ['id', 'class', 'style', 'title']
155
- I18N = ['lang', 'dir']
156
- EVENTS = ['onclick', 'ondblclick', 'onmousedown', 'onmouseup',
157
- 'onmouseover', 'onmouseout', 'onkeypress', 'onkeydown',
158
- 'onkeyup']
159
- ATTRS = [COREATTRS, I18N,EVENTS]
160
- CELLHALIGN = ['align', 'char', 'charoff']
161
- CELLVALIGN = ['valign']
154
+ COREATTRS = ["id", "class", "style", "title"]
155
+ I18N = ["lang", "dir"]
156
+ EVENTS = ["onclick", "ondblclick", "onmousedown", "onmouseup",
157
+ "onmouseover", "onmouseout", "onkeypress", "onkeydown",
158
+ "onkeyup",]
159
+ ATTRS = [COREATTRS, I18N, EVENTS]
160
+ CELLHALIGN = ["align", "char", "charoff"]
161
+ CELLVALIGN = ["valign"]
162
162
 
163
163
  HTML_ATTRS = ATTRS
164
164
  CORE_I18N_ATTRS = [COREATTRS, I18N]
165
165
  CORE_ATTRS = COREATTRS
166
166
  I18N_ATTRS = I18N
167
167
 
168
+ A_ATTRS = [ATTRS, "charset", "type", "name",
169
+ "href", "hreflang", "rel", "rev", "accesskey", "shape",
170
+ "coords", "tabindex", "onfocus", "onblur",]
171
+ TARGET_ATTR = ["target"]
172
+ ROWS_COLS_ATTR = ["rows", "cols"]
173
+ ALT_ATTR = ["alt"]
174
+ SRC_ALT_ATTRS = ["src", "alt"]
175
+ HREF_ATTRS = ["href"]
176
+ CLEAR_ATTRS = ["clear"]
177
+ INLINE_P = [INLINE, "p"]
168
178
 
169
- A_ATTRS = [ATTRS, 'charset', 'type', 'name',
170
- 'href', 'hreflang', 'rel', 'rev', 'accesskey', 'shape',
171
- 'coords', 'tabindex', 'onfocus', 'onblur']
172
- TARGET_ATTR = ['target']
173
- ROWS_COLS_ATTR = ['rows', 'cols']
174
- ALT_ATTR = ['alt']
175
- SRC_ALT_ATTRS = ['src', 'alt']
176
- HREF_ATTRS = ['href']
177
- CLEAR_ATTRS = ['clear']
178
- INLINE_P = [INLINE, 'p']
179
-
180
- FLOW_PARAM = [FLOW, 'param']
181
- APPLET_ATTRS = [COREATTRS , 'codebase',
182
- 'archive', 'alt', 'name', 'height', 'width', 'align',
183
- 'hspace', 'vspace']
184
- AREA_ATTRS = ['shape', 'coords', 'href', 'nohref',
185
- 'tabindex', 'accesskey', 'onfocus', 'onblur']
186
- BASEFONT_ATTRS = ['id', 'size', 'color', 'face']
187
- QUOTE_ATTRS = [ATTRS, 'cite']
188
- BODY_CONTENTS = [FLOW, 'ins', 'del']
189
- BODY_ATTRS = [ATTRS, 'onload', 'onunload']
190
- BODY_DEPR = ['background', 'bgcolor', 'text',
191
- 'link', 'vlink', 'alink']
192
- BUTTON_ATTRS = [ATTRS, 'name', 'value', 'type',
193
- 'disabled', 'tabindex', 'accesskey', 'onfocus', 'onblur']
194
-
179
+ FLOW_PARAM = [FLOW, "param"]
180
+ APPLET_ATTRS = [COREATTRS, "codebase",
181
+ "archive", "alt", "name", "height", "width", "align",
182
+ "hspace", "vspace",]
183
+ AREA_ATTRS = ["shape", "coords", "href", "nohref",
184
+ "tabindex", "accesskey", "onfocus", "onblur",]
185
+ BASEFONT_ATTRS = ["id", "size", "color", "face"]
186
+ QUOTE_ATTRS = [ATTRS, "cite"]
187
+ BODY_CONTENTS = [FLOW, "ins", "del"]
188
+ BODY_ATTRS = [ATTRS, "onload", "onunload"]
189
+ BODY_DEPR = ["background", "bgcolor", "text",
190
+ "link", "vlink", "alink",]
191
+ BUTTON_ATTRS = [ATTRS, "name", "value", "type",
192
+ "disabled", "tabindex", "accesskey", "onfocus", "onblur",]
195
193
 
196
- COL_ATTRS = [ATTRS, 'span', 'width', CELLHALIGN, CELLVALIGN]
197
- COL_ELT = ['col']
198
- EDIT_ATTRS = [ATTRS, 'datetime', 'cite']
199
- COMPACT_ATTRS = [ATTRS, 'compact']
200
- DL_CONTENTS = ['dt', 'dd']
201
- COMPACT_ATTR = ['compact']
202
- LABEL_ATTR = ['label']
203
- FIELDSET_CONTENTS = [FLOW, 'legend' ]
204
- FONT_ATTRS = [COREATTRS, I18N, 'size', 'color', 'face' ]
205
- FORM_CONTENTS = [HEADING, LIST, INLINE, 'pre', 'p', 'div', 'center',
206
- 'noscript', 'noframes', 'blockquote', 'isindex', 'hr',
207
- 'table', 'fieldset', 'address']
208
- FORM_ATTRS = [ATTRS, 'method', 'enctype', 'accept', 'name', 'onsubmit',
209
- 'onreset', 'accept-charset']
210
- FRAME_ATTRS = [COREATTRS, 'longdesc', 'name', 'src', 'frameborder',
211
- 'marginwidth', 'marginheight', 'noresize', 'scrolling' ]
212
- FRAMESET_ATTRS = [COREATTRS, 'rows', 'cols', 'onload', 'onunload']
213
- FRAMESET_CONTENTS = ['frameset', 'frame', 'noframes']
214
- HEAD_ATTRS = [I18N, 'profile']
215
- HEAD_CONTENTS = ['title', 'isindex', 'base', 'script', 'style', 'meta',
216
- 'link', 'object']
217
- HR_DEPR = ['align', 'noshade', 'size', 'width']
218
- VERSION_ATTR = ['version']
219
- HTML_CONTENT = ['head', 'body', 'frameset']
220
- IFRAME_ATTRS = [COREATTRS, 'longdesc', 'name', 'src', 'frameborder',
221
- 'marginwidth', 'marginheight', 'scrolling', 'align',
222
- 'height', 'width']
223
- IMG_ATTRS = [ATTRS, 'longdesc', 'name', 'height', 'width', 'usemap',
224
- 'ismap']
225
- EMBED_ATTRS = [COREATTRS, 'align', 'alt', 'border', 'code', 'codebase',
226
- 'frameborder', 'height', 'hidden', 'hspace', 'name',
227
- 'palette', 'pluginspace', 'pluginurl', 'src', 'type',
228
- 'units', 'vspace', 'width']
229
- INPUT_ATTRS = [ATTRS, 'type', 'name', 'value', 'checked', 'disabled',
230
- 'readonly', 'size', 'maxlength', 'src', 'alt', 'usemap',
231
- 'ismap', 'tabindex', 'accesskey', 'onfocus', 'onblur',
232
- 'onselect', 'onchange', 'accept']
233
- PROMPT_ATTRS = [COREATTRS, I18N, 'prompt']
234
- LABEL_ATTRS = [ATTRS, 'for', 'accesskey', 'onfocus', 'onblur']
235
- LEGEND_ATTRS = [ATTRS, 'accesskey']
236
- ALIGN_ATTR = ['align']
237
- LINK_ATTRS = [ATTRS, 'charset', 'href', 'hreflang', 'type', 'rel', 'rev',
238
- 'media']
239
- MAP_CONTENTS = [BLOCK, 'area']
240
- NAME_ATTR = ['name']
241
- ACTION_ATTR = ['action']
242
- BLOCKLI_ELT = [BLOCK, 'li']
243
- META_ATTRS = [I18N, 'http-equiv', 'name', 'scheme']
244
- CONTENT_ATTR = ['content']
245
- TYPE_ATTR = ['type']
246
- NOFRAMES_CONTENT = ['body', FLOW, MODIFIER]
247
- OBJECT_CONTENTS = [FLOW, 'param']
248
- OBJECT_ATTRS = [ATTRS, 'declare', 'classid', 'codebase', 'data', 'type',
249
- 'codetype', 'archive', 'standby', 'height', 'width',
250
- 'usemap', 'name', 'tabindex']
251
- OBJECT_DEPR = ['align', 'border', 'hspace', 'vspace']
252
- OL_ATTRS = ['type', 'compact', 'start']
253
- OPTION_ELT = ['option']
254
- OPTGROUP_ATTRS = [ATTRS, 'disabled']
255
- OPTION_ATTRS = [ATTRS, 'disabled', 'label', 'selected', 'value']
256
- PARAM_ATTRS = ['id', 'value', 'valuetype', 'type']
257
- WIDTH_ATTR = ['width']
258
- PRE_CONTENT = [PHRASE, 'tt', 'i', 'b', 'u', 's', 'strike', 'a', 'br',
259
- 'script', 'map', 'q', 'span', 'bdo', 'iframe']
260
- SCRIPT_ATTRS = ['charset', 'src', 'defer', 'event', 'for']
261
- LANGUAGE_ATTR = ['language']
262
- SELECT_CONTENT = ['optgroup', 'option']
263
- SELECT_ATTRS = [ATTRS, 'name', 'size', 'multiple', 'disabled', 'tabindex',
264
- 'onfocus', 'onblur', 'onchange']
265
- STYLE_ATTRS = [I18N, 'media', 'title']
266
- TABLE_ATTRS = [ATTRS, 'summary', 'width', 'border', 'frame', 'rules',
267
- 'cellspacing', 'cellpadding', 'datapagesize']
268
- TABLE_DEPR = ['align', 'bgcolor']
269
- TABLE_CONTENTS = ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody',
270
- 'tr']
271
- TR_ELT = ['tr']
194
+ COL_ATTRS = [ATTRS, "span", "width", CELLHALIGN, CELLVALIGN]
195
+ COL_ELT = ["col"]
196
+ EDIT_ATTRS = [ATTRS, "datetime", "cite"]
197
+ COMPACT_ATTRS = [ATTRS, "compact"]
198
+ DL_CONTENTS = ["dt", "dd"]
199
+ COMPACT_ATTR = ["compact"]
200
+ LABEL_ATTR = ["label"]
201
+ FIELDSET_CONTENTS = [FLOW, "legend"]
202
+ FONT_ATTRS = [COREATTRS, I18N, "size", "color", "face"]
203
+ FORM_CONTENTS = [HEADING, LIST, INLINE, "pre", "p", "div", "center",
204
+ "noscript", "noframes", "blockquote", "isindex", "hr",
205
+ "table", "fieldset", "address",]
206
+ FORM_ATTRS = [ATTRS, "method", "enctype", "accept", "name", "onsubmit",
207
+ "onreset", "accept-charset",]
208
+ FRAME_ATTRS = [COREATTRS, "longdesc", "name", "src", "frameborder",
209
+ "marginwidth", "marginheight", "noresize", "scrolling",]
210
+ FRAMESET_ATTRS = [COREATTRS, "rows", "cols", "onload", "onunload"]
211
+ FRAMESET_CONTENTS = ["frameset", "frame", "noframes"]
212
+ HEAD_ATTRS = [I18N, "profile"]
213
+ HEAD_CONTENTS = ["title", "isindex", "base", "script", "style", "meta",
214
+ "link", "object",]
215
+ HR_DEPR = ["align", "noshade", "size", "width"]
216
+ VERSION_ATTR = ["version"]
217
+ HTML_CONTENT = ["head", "body", "frameset"]
218
+ IFRAME_ATTRS = [COREATTRS, "longdesc", "name", "src", "frameborder",
219
+ "marginwidth", "marginheight", "scrolling", "align",
220
+ "height", "width",]
221
+ IMG_ATTRS = [ATTRS, "longdesc", "name", "height", "width", "usemap",
222
+ "ismap",]
223
+ EMBED_ATTRS = [COREATTRS, "align", "alt", "border", "code", "codebase",
224
+ "frameborder", "height", "hidden", "hspace", "name",
225
+ "palette", "pluginspace", "pluginurl", "src", "type",
226
+ "units", "vspace", "width",]
227
+ INPUT_ATTRS = [ATTRS, "type", "name", "value", "checked", "disabled",
228
+ "readonly", "size", "maxlength", "src", "alt", "usemap",
229
+ "ismap", "tabindex", "accesskey", "onfocus", "onblur",
230
+ "onselect", "onchange", "accept",]
231
+ PROMPT_ATTRS = [COREATTRS, I18N, "prompt"]
232
+ LABEL_ATTRS = [ATTRS, "for", "accesskey", "onfocus", "onblur"]
233
+ LEGEND_ATTRS = [ATTRS, "accesskey"]
234
+ ALIGN_ATTR = ["align"]
235
+ LINK_ATTRS = [ATTRS, "charset", "href", "hreflang", "type", "rel", "rev",
236
+ "media",]
237
+ MAP_CONTENTS = [BLOCK, "area"]
238
+ NAME_ATTR = ["name"]
239
+ ACTION_ATTR = ["action"]
240
+ BLOCKLI_ELT = [BLOCK, "li"]
241
+ META_ATTRS = [I18N, "http-equiv", "name", "scheme"]
242
+ CONTENT_ATTR = ["content"]
243
+ TYPE_ATTR = ["type"]
244
+ NOFRAMES_CONTENT = ["body", FLOW, MODIFIER]
245
+ OBJECT_CONTENTS = [FLOW, "param"]
246
+ OBJECT_ATTRS = [ATTRS, "declare", "classid", "codebase", "data", "type",
247
+ "codetype", "archive", "standby", "height", "width",
248
+ "usemap", "name", "tabindex",]
249
+ OBJECT_DEPR = ["align", "border", "hspace", "vspace"]
250
+ OL_ATTRS = ["type", "compact", "start"]
251
+ OPTION_ELT = ["option"]
252
+ OPTGROUP_ATTRS = [ATTRS, "disabled"]
253
+ OPTION_ATTRS = [ATTRS, "disabled", "label", "selected", "value"]
254
+ PARAM_ATTRS = ["id", "value", "valuetype", "type"]
255
+ WIDTH_ATTR = ["width"]
256
+ PRE_CONTENT = [PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br",
257
+ "script", "map", "q", "span", "bdo", "iframe",]
258
+ SCRIPT_ATTRS = ["charset", "src", "defer", "event", "for"]
259
+ LANGUAGE_ATTR = ["language"]
260
+ SELECT_CONTENT = ["optgroup", "option"]
261
+ SELECT_ATTRS = [ATTRS, "name", "size", "multiple", "disabled", "tabindex",
262
+ "onfocus", "onblur", "onchange",]
263
+ STYLE_ATTRS = [I18N, "media", "title"]
264
+ TABLE_ATTRS = [ATTRS, "summary", "width", "border", "frame", "rules",
265
+ "cellspacing", "cellpadding", "datapagesize",]
266
+ TABLE_DEPR = ["align", "bgcolor"]
267
+ TABLE_CONTENTS = ["caption", "col", "colgroup", "thead", "tfoot", "tbody",
268
+ "tr",]
269
+ TR_ELT = ["tr"]
272
270
  TALIGN_ATTRS = [ATTRS, CELLHALIGN, CELLVALIGN]
273
- TH_TD_DEPR = ['nowrap', 'bgcolor', 'width', 'height']
274
- TH_TD_ATTR = [ATTRS, 'abbr', 'axis', 'headers', 'scope', 'rowspan',
275
- 'colspan', CELLHALIGN, CELLVALIGN]
276
- TEXTAREA_ATTRS = [ATTRS, 'name', 'disabled', 'readonly', 'tabindex',
277
- 'accesskey', 'onfocus', 'onblur', 'onselect',
278
- 'onchange']
279
- TR_CONTENTS = ['th', 'td']
280
- BGCOLOR_ATTR = ['bgcolor']
281
- LI_ELT = ['li']
282
- UL_DEPR = ['type', 'compact']
283
- DIR_ATTR = ['dir']
271
+ TH_TD_DEPR = ["nowrap", "bgcolor", "width", "height"]
272
+ TH_TD_ATTR = [ATTRS, "abbr", "axis", "headers", "scope", "rowspan",
273
+ "colspan", CELLHALIGN, CELLVALIGN,]
274
+ TEXTAREA_ATTRS = [ATTRS, "name", "disabled", "readonly", "tabindex",
275
+ "accesskey", "onfocus", "onblur", "onselect",
276
+ "onchange",]
277
+ TR_CONTENTS = ["th", "td"]
278
+ BGCOLOR_ATTR = ["bgcolor"]
279
+ LI_ELT = ["li"]
280
+ UL_DEPR = ["type", "compact"]
281
+ DIR_ATTR = ["dir"]
284
282
 
285
283
  [
286
- ['a', false, false, false, false, false, :any, true,
287
- 'anchor ',
288
- HTML_INLINE, nil, A_ATTRS, TARGET_ATTR, []
289
- ],
290
- ['abbr', false, false, false, false, false, :any, true,
291
- 'abbreviated form',
292
- HTML_INLINE, nil, HTML_ATTRS, [], []
293
- ],
294
- ['acronym', false, false, false, false, false, :any, true, '',
295
- HTML_INLINE, nil, HTML_ATTRS, [], []
296
- ],
297
- ['address', false, false, false, false, false, :any, false,
298
- 'information on author',
299
- INLINE_P , nil, HTML_ATTRS, [], []
300
- ],
301
- ['applet', false, false, false, false, true, :loose, true,
302
- 'java applet ',
303
- FLOW_PARAM, nil, [], APPLET_ATTRS, []
304
- ],
305
- ['area', false, true, true, true, false, :any, false,
306
- 'client-side image map area ',
307
- EMPTY, nil, AREA_ATTRS, TARGET_ATTR, ALT_ATTR
308
- ],
309
- ['b', false, true, false, false, false, :any, true,
310
- 'bold text style',
311
- HTML_INLINE, nil, HTML_ATTRS, [], []
312
- ],
313
- ['base', false, true, true, true, false, :any, false,
314
- 'document base uri ',
315
- EMPTY, nil, [], TARGET_ATTR, HREF_ATTRS
316
- ],
317
- ['basefont', false, true, true, true, true, :loose, true,
318
- 'base font size ',
319
- EMPTY, nil, [], BASEFONT_ATTRS, []
320
- ],
321
- ['bdo', false, false, false, false, false, :any, true,
322
- 'i18n bidi over-ride ',
323
- HTML_INLINE, nil, CORE_I18N_ATTRS, [], DIR_ATTR
324
- ],
325
- ['big', false, true, false, false, false, :any, true,
326
- 'large text style',
327
- HTML_INLINE, nil, HTML_ATTRS, [], []
328
- ],
329
- ['blockquote', false, false, false, false, false, :any, false,
330
- 'long quotation ',
331
- HTML_FLOW, nil, QUOTE_ATTRS, [], []
332
- ],
333
- ['body', true, true, false, false, false, :any, false,
334
- 'document body ',
335
- BODY_CONTENTS, 'div', BODY_ATTRS, BODY_DEPR, []
336
- ],
337
- ['br', false, true, true, true, false, :any, true,
338
- 'forced line break ',
339
- EMPTY, nil, CORE_ATTRS, CLEAR_ATTRS, []
340
- ],
341
- ['button', false, false, false, false, false, :any, true,
342
- 'push button ',
343
- [HTML_FLOW, MODIFIER], nil, BUTTON_ATTRS, [], []
344
- ],
345
- ['caption', false, false, false, false, false, :any, false,
346
- 'table caption ',
347
- HTML_INLINE, nil, HTML_ATTRS, [], []
348
- ],
349
- ['center', false, true, false, false, true, :loose, false,
350
- 'shorthand for div align=center ',
351
- HTML_FLOW, nil, [], HTML_ATTRS, []
352
- ],
353
- ['cite', false, false, false, false, false, :any, true, 'citation',
354
- HTML_INLINE, nil, HTML_ATTRS, [], []
355
- ],
356
- ['code', false, false, false, false, false, :any, true,
357
- 'computer code fragment',
358
- HTML_INLINE, nil, HTML_ATTRS, [], []
359
- ],
360
- ['col', false, true, true, true, false, :any, false, 'table column ',
361
- EMPTY, nil, COL_ATTRS, [], []
362
- ],
363
- ['colgroup', false, true, false, false, false, :any, false,
364
- 'table column group ',
365
- COL_ELT, 'col', COL_ATTRS, [], []
366
- ],
367
- ['dd', false, true, false, false, false, :any, false,
368
- 'definition description ',
369
- HTML_FLOW, nil, HTML_ATTRS, [], []
370
- ],
371
- ['del', false, false, false, false, false, :any, true,
372
- 'deleted text ',
373
- HTML_FLOW, nil, EDIT_ATTRS, [], []
374
- ],
375
- ['dfn', false, false, false, false, false, :any, true,
376
- 'instance definition',
377
- HTML_INLINE, nil, HTML_ATTRS, [], []
378
- ],
379
- ['dir', false, false, false, false, true, :loose, false,
380
- 'directory list',
381
- BLOCKLI_ELT, 'li', [], COMPACT_ATTRS, []
382
- ],
383
- ['div', false, false, false, false, false, :any, false,
384
- 'generic language/style container',
385
- HTML_FLOW, nil, HTML_ATTRS, ALIGN_ATTR, []
386
- ],
387
- ['dl', false, false, false, false, false, :any, false,
388
- 'definition list ',
389
- DL_CONTENTS, 'dd', HTML_ATTRS, COMPACT_ATTR, []
390
- ],
391
- ['dt', false, true, false, false, false, :any, false,
392
- 'definition term ',
393
- HTML_INLINE, nil, HTML_ATTRS, [], []
394
- ],
395
- ['em', false, true, false, false, false, :any, true,
396
- 'emphasis',
397
- HTML_INLINE, nil, HTML_ATTRS, [], []
398
- ],
399
- ['embed', false, true, false, false, true, :loose, true,
400
- 'generic embedded object ',
401
- EMPTY, nil, EMBED_ATTRS, [], []
402
- ],
403
- ['fieldset', false, false, false, false, false, :any, false,
404
- 'form control group ',
405
- FIELDSET_CONTENTS, nil, HTML_ATTRS, [], []
406
- ],
407
- ['font', false, true, false, false, true, :loose, true,
408
- 'local change to font ',
409
- HTML_INLINE, nil, [], FONT_ATTRS, []
410
- ],
411
- ['form', false, false, false, false, false, :any, false,
412
- 'interactive form ',
413
- FORM_CONTENTS, 'fieldset', FORM_ATTRS, TARGET_ATTR, ACTION_ATTR
414
- ],
415
- ['frame', false, true, true, true, false, :frameset, false,
416
- 'subwindow ',
417
- EMPTY, nil, [], FRAME_ATTRS, []
418
- ],
419
- ['frameset', false, false, false, false, false, :frameset, false,
420
- 'window subdivision',
421
- FRAMESET_CONTENTS, 'noframes', [], FRAMESET_ATTRS, []
422
- ],
423
- ['htrue', false, false, false, false, false, :any, false,
424
- 'heading ',
425
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
426
- ],
427
- ['htrue', false, false, false, false, false, :any, false,
428
- 'heading ',
429
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
430
- ],
431
- ['htrue', false, false, false, false, false, :any, false,
432
- 'heading ',
433
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
434
- ],
435
- ['h4', false, false, false, false, false, :any, false,
436
- 'heading ',
437
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
438
- ],
439
- ['h5', false, false, false, false, false, :any, false,
440
- 'heading ',
441
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
442
- ],
443
- ['h6', false, false, false, false, false, :any, false,
444
- 'heading ',
445
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
446
- ],
447
- ['head', true, true, false, false, false, :any, false,
448
- 'document head ',
449
- HEAD_CONTENTS, nil, HEAD_ATTRS, [], []
450
- ],
451
- ['hr', false, true, true, true, false, :any, false,
452
- 'horizontal rule ',
453
- EMPTY, nil, HTML_ATTRS, HR_DEPR, []
454
- ],
455
- ['html', true, true, false, false, false, :any, false,
456
- 'document root element ',
457
- HTML_CONTENT, nil, I18N_ATTRS, VERSION_ATTR, []
458
- ],
459
- ['i', false, true, false, false, false, :any, true,
460
- 'italic text style',
461
- HTML_INLINE, nil, HTML_ATTRS, [], []
462
- ],
463
- ['iframe', false, false, false, false, false, :any, true,
464
- 'inline subwindow ',
465
- HTML_FLOW, nil, [], IFRAME_ATTRS, []
466
- ],
467
- ['img', false, true, true, true, false, :any, true,
468
- 'embedded image ',
469
- EMPTY, nil, IMG_ATTRS, ALIGN_ATTR, SRC_ALT_ATTRS
470
- ],
471
- ['input', false, true, true, true, false, :any, true,
472
- 'form control ',
473
- EMPTY, nil, INPUT_ATTRS, ALIGN_ATTR, []
474
- ],
475
- ['ins', false, false, false, false, false, :any, true,
476
- 'inserted text',
477
- HTML_FLOW, nil, EDIT_ATTRS, [], []
478
- ],
479
- ['isindex', false, true, true, true, true, :loose, false,
480
- 'single line prompt ',
481
- EMPTY, nil, [], PROMPT_ATTRS, []
482
- ],
483
- ['kbd', false, false, false, false, false, :any, true,
484
- 'text to be entered by the user',
485
- HTML_INLINE, nil, HTML_ATTRS, [], []
486
- ],
487
- ['label', false, false, false, false, false, :any, true,
488
- 'form field label text ',
489
- [HTML_INLINE, MODIFIER], nil, LABEL_ATTRS, [], []
490
- ],
491
- ['legend', false, false, false, false, false, :any, false,
492
- 'fieldset legend ',
493
- HTML_INLINE, nil, LEGEND_ATTRS, ALIGN_ATTR, []
494
- ],
495
- ['li', false, true, true, false, false, :any, false,
496
- 'list item ',
497
- HTML_FLOW, nil, HTML_ATTRS, [], []
498
- ],
499
- ['link', false, true, true, true, false, :any, false,
500
- 'a media-independent link ',
501
- EMPTY, nil, LINK_ATTRS, TARGET_ATTR, []
502
- ],
503
- ['map', false, false, false, false, false, :any, true,
504
- 'client-side image map ',
505
- MAP_CONTENTS, nil, HTML_ATTRS, [], NAME_ATTR
506
- ],
507
- ['menu', false, false, false, false, true, :loose, false,
508
- 'menu list ',
509
- BLOCKLI_ELT, nil, [], COMPACT_ATTRS, []
510
- ],
511
- ['meta', false, true, true, true, false, :any, false,
512
- 'generic metainformation ',
513
- EMPTY, nil, META_ATTRS, [], CONTENT_ATTR
514
- ],
515
- ['noframes', false, false, false, false, false, :frameset, false,
516
- 'alternate content container for non frame-based rendering ',
517
- NOFRAMES_CONTENT, 'body', HTML_ATTRS, [], []
518
- ],
519
- ['noscript', false, false, false, false, false, :any, false,
520
- 'alternate content container for non script-based rendering ',
521
- HTML_FLOW, 'div', HTML_ATTRS, [], []
522
- ],
523
- ['object', false, false, false, false, false, :any, true,
524
- 'generic embedded object ',
525
- OBJECT_CONTENTS, 'div', OBJECT_ATTRS, OBJECT_DEPR, []
526
- ],
527
- ['ol', false, false, false, false, false, :any, false,
528
- 'ordered list ',
529
- LI_ELT, 'li', HTML_ATTRS, OL_ATTRS, []
530
- ],
531
- ['optgroup', false, false, false, false, false, :any, false,
532
- 'option group ',
533
- OPTION_ELT, 'option', OPTGROUP_ATTRS, [], LABEL_ATTR
534
- ],
535
- ['option', false, true, false, false, false, :any, false,
536
- 'selectable choice ',
537
- HTML_PCDATA, nil, OPTION_ATTRS, [], []
538
- ],
539
- ['p', false, true, false, false, false, :any, false,
540
- 'paragraph ',
541
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
542
- ],
543
- ['param', false, true, true, true, false, :any, false,
544
- 'named property value ',
545
- EMPTY, nil, PARAM_ATTRS, [], NAME_ATTR
546
- ],
547
- ['pre', false, false, false, false, false, :any, false,
548
- 'preformatted text ',
549
- PRE_CONTENT, nil, HTML_ATTRS, WIDTH_ATTR, []
550
- ],
551
- ['q', false, false, false, false, false, :any, true,
552
- 'short inline quotation ',
553
- HTML_INLINE, nil, QUOTE_ATTRS, [], []
554
- ],
555
- ['s', false, true, false, false, true, :loose, true,
556
- 'strike-through text style',
557
- HTML_INLINE, nil, [], HTML_ATTRS, []
558
- ],
559
- ['samp', false, false, false, false, false, :any, true,
560
- 'sample program output, scripts, etc.',
561
- HTML_INLINE, nil, HTML_ATTRS, [], []
562
- ],
563
- ['script', false, false, false, false, false, :any, true,
564
- 'script statements ',
565
- HTML_CDATA, nil, SCRIPT_ATTRS, LANGUAGE_ATTR, TYPE_ATTR
566
- ],
567
- ['select', false, false, false, false, false, :any, true,
568
- 'option selector ',
569
- SELECT_CONTENT, nil, SELECT_ATTRS, [], []
570
- ],
571
- ['small', false, true, false, false, false, :any, true,
572
- 'small text style',
573
- HTML_INLINE, nil, HTML_ATTRS, [], []
574
- ],
575
- ['span', false, false, false, false, false, :any, true,
576
- 'generic language/style container ',
577
- HTML_INLINE, nil, HTML_ATTRS, [], []
578
- ],
579
- ['strike', false, true, false, false, true, :loose, true,
580
- 'strike-through text',
581
- HTML_INLINE, nil, [], HTML_ATTRS, []
582
- ],
583
- ['strong', false, true, false, false, false, :any, true,
584
- 'strong emphasis',
585
- HTML_INLINE, nil, HTML_ATTRS, [], []
586
- ],
587
- ['style', false, false, false, false, false, :any, false,
588
- 'style info ',
589
- HTML_CDATA, nil, STYLE_ATTRS, [], TYPE_ATTR
590
- ],
591
- ['sub', false, true, false, false, false, :any, true,
592
- 'subscript',
593
- HTML_INLINE, nil, HTML_ATTRS, [], []
594
- ],
595
- ['sup', false, true, false, false, false, :any, true,
596
- 'superscript ',
597
- HTML_INLINE, nil, HTML_ATTRS, [], []
598
- ],
599
- ['table', false, false, false, false, false, :any, false,
600
- '',
601
- TABLE_CONTENTS, 'tr', TABLE_ATTRS, TABLE_DEPR, []
602
- ],
603
- ['tbody', true, false, false, false, false, :any, false,
604
- 'table body ',
605
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
606
- ],
607
- ['td', false, false, false, false, false, :any, false,
608
- 'table data cell',
609
- HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, []
610
- ],
611
- ['textarea', false, false, false, false, false, :any, true,
612
- 'multi-line text field ',
613
- HTML_PCDATA, nil, TEXTAREA_ATTRS, [], ROWS_COLS_ATTR
614
- ],
615
- ['tfoot', false, true, false, false, false, :any, false,
616
- 'table footer ',
617
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
618
- ],
619
- ['th', false, true, false, false, false, :any, false,
620
- 'table header cell',
621
- HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, []
622
- ],
623
- ['thead', false, true, false, false, false, :any, false,
624
- 'table header ',
625
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
626
- ],
627
- ['title', false, false, false, false, false, :any, false,
628
- 'document title ',
629
- HTML_PCDATA, nil, I18N_ATTRS, [], []
630
- ],
631
- ['tr', false, false, false, false, false, :any, false,
632
- 'table row ',
633
- TR_CONTENTS, 'td', TALIGN_ATTRS, BGCOLOR_ATTR, []
634
- ],
635
- ['tt', false, true, false, false, false, :any, true,
636
- 'teletype or monospaced text style',
637
- HTML_INLINE, nil, HTML_ATTRS, [], []
638
- ],
639
- ['u', false, true, false, false, true, :loose, true,
640
- 'underlined text style',
641
- HTML_INLINE, nil, [], HTML_ATTRS, []
642
- ],
643
- ['ul', false, false, false, false, false, :any, false,
644
- 'unordered list ',
645
- LI_ELT, 'li', HTML_ATTRS, UL_DEPR, []
646
- ],
647
- ['var', false, false, false, false, false, :any, true,
648
- 'instance of a variable or program argument',
649
- HTML_INLINE, nil, HTML_ATTRS, [], []
650
- ]
284
+ ["a", false, false, false, false, false, :any, true,
285
+ "anchor ",
286
+ HTML_INLINE, nil, A_ATTRS, TARGET_ATTR, [],],
287
+ ["abbr", false, false, false, false, false, :any, true,
288
+ "abbreviated form",
289
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
290
+ ["acronym", false, false, false, false, false, :any, true, "",
291
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
292
+ ["address", false, false, false, false, false, :any, false,
293
+ "information on author",
294
+ INLINE_P, nil, HTML_ATTRS, [], [],],
295
+ ["applet", false, false, false, false, true, :loose, true,
296
+ "java applet ",
297
+ FLOW_PARAM, nil, [], APPLET_ATTRS, [],],
298
+ ["area", false, true, true, true, false, :any, false,
299
+ "client-side image map area ",
300
+ EMPTY, nil, AREA_ATTRS, TARGET_ATTR, ALT_ATTR,],
301
+ ["b", false, true, false, false, false, :any, true,
302
+ "bold text style",
303
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
304
+ ["base", false, true, true, true, false, :any, false,
305
+ "document base uri ",
306
+ EMPTY, nil, [], TARGET_ATTR, HREF_ATTRS,],
307
+ ["basefont", false, true, true, true, true, :loose, true,
308
+ "base font size ",
309
+ EMPTY, nil, [], BASEFONT_ATTRS, [],],
310
+ ["bdo", false, false, false, false, false, :any, true,
311
+ "i18n bidi over-ride ",
312
+ HTML_INLINE, nil, CORE_I18N_ATTRS, [], DIR_ATTR,],
313
+ ["big", false, true, false, false, false, :any, true,
314
+ "large text style",
315
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
316
+ ["blockquote", false, false, false, false, false, :any, false,
317
+ "long quotation ",
318
+ HTML_FLOW, nil, QUOTE_ATTRS, [], [],],
319
+ ["body", true, true, false, false, false, :any, false,
320
+ "document body ",
321
+ BODY_CONTENTS, "div", BODY_ATTRS, BODY_DEPR, [],],
322
+ ["br", false, true, true, true, false, :any, true,
323
+ "forced line break ",
324
+ EMPTY, nil, CORE_ATTRS, CLEAR_ATTRS, [],],
325
+ ["button", false, false, false, false, false, :any, true,
326
+ "push button ",
327
+ [HTML_FLOW, MODIFIER], nil, BUTTON_ATTRS, [], [],],
328
+ ["caption", false, false, false, false, false, :any, false,
329
+ "table caption ",
330
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
331
+ ["center", false, true, false, false, true, :loose, false,
332
+ "shorthand for div align=center ",
333
+ HTML_FLOW, nil, [], HTML_ATTRS, [],],
334
+ ["cite", false, false, false, false, false, :any, true, "citation",
335
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
336
+ ["code", false, false, false, false, false, :any, true,
337
+ "computer code fragment",
338
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
339
+ ["col", false, true, true, true, false, :any, false, "table column ",
340
+ EMPTY, nil, COL_ATTRS, [], [],],
341
+ ["colgroup", false, true, false, false, false, :any, false,
342
+ "table column group ",
343
+ COL_ELT, "col", COL_ATTRS, [], [],],
344
+ ["dd", false, true, false, false, false, :any, false,
345
+ "definition description ",
346
+ HTML_FLOW, nil, HTML_ATTRS, [], [],],
347
+ ["del", false, false, false, false, false, :any, true,
348
+ "deleted text ",
349
+ HTML_FLOW, nil, EDIT_ATTRS, [], [],],
350
+ ["dfn", false, false, false, false, false, :any, true,
351
+ "instance definition",
352
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
353
+ ["dir", false, false, false, false, true, :loose, false,
354
+ "directory list",
355
+ BLOCKLI_ELT, "li", [], COMPACT_ATTRS, [],],
356
+ ["div", false, false, false, false, false, :any, false,
357
+ "generic language/style container",
358
+ HTML_FLOW, nil, HTML_ATTRS, ALIGN_ATTR, [],],
359
+ ["dl", false, false, false, false, false, :any, false,
360
+ "definition list ",
361
+ DL_CONTENTS, "dd", HTML_ATTRS, COMPACT_ATTR, [],],
362
+ ["dt", false, true, false, false, false, :any, false,
363
+ "definition term ",
364
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
365
+ ["em", false, true, false, false, false, :any, true,
366
+ "emphasis",
367
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
368
+ ["embed", false, true, false, false, true, :loose, true,
369
+ "generic embedded object ",
370
+ EMPTY, nil, EMBED_ATTRS, [], [],],
371
+ ["fieldset", false, false, false, false, false, :any, false,
372
+ "form control group ",
373
+ FIELDSET_CONTENTS, nil, HTML_ATTRS, [], [],],
374
+ ["font", false, true, false, false, true, :loose, true,
375
+ "local change to font ",
376
+ HTML_INLINE, nil, [], FONT_ATTRS, [],],
377
+ ["form", false, false, false, false, false, :any, false,
378
+ "interactive form ",
379
+ FORM_CONTENTS, "fieldset", FORM_ATTRS, TARGET_ATTR, ACTION_ATTR,],
380
+ ["frame", false, true, true, true, false, :frameset, false,
381
+ "subwindow ",
382
+ EMPTY, nil, [], FRAME_ATTRS, [],],
383
+ ["frameset", false, false, false, false, false, :frameset, false,
384
+ "window subdivision",
385
+ FRAMESET_CONTENTS, "noframes", [], FRAMESET_ATTRS, [],],
386
+ ["htrue", false, false, false, false, false, :any, false,
387
+ "heading ",
388
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
389
+ ["htrue", false, false, false, false, false, :any, false,
390
+ "heading ",
391
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
392
+ ["htrue", false, false, false, false, false, :any, false,
393
+ "heading ",
394
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
395
+ ["h4", false, false, false, false, false, :any, false,
396
+ "heading ",
397
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
398
+ ["h5", false, false, false, false, false, :any, false,
399
+ "heading ",
400
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
401
+ ["h6", false, false, false, false, false, :any, false,
402
+ "heading ",
403
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
404
+ ["head", true, true, false, false, false, :any, false,
405
+ "document head ",
406
+ HEAD_CONTENTS, nil, HEAD_ATTRS, [], [],],
407
+ ["hr", false, true, true, true, false, :any, false,
408
+ "horizontal rule ",
409
+ EMPTY, nil, HTML_ATTRS, HR_DEPR, [],],
410
+ ["html", true, true, false, false, false, :any, false,
411
+ "document root element ",
412
+ HTML_CONTENT, nil, I18N_ATTRS, VERSION_ATTR, [],],
413
+ ["i", false, true, false, false, false, :any, true,
414
+ "italic text style",
415
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
416
+ ["iframe", false, false, false, false, false, :any, true,
417
+ "inline subwindow ",
418
+ HTML_FLOW, nil, [], IFRAME_ATTRS, [],],
419
+ ["img", false, true, true, true, false, :any, true,
420
+ "embedded image ",
421
+ EMPTY, nil, IMG_ATTRS, ALIGN_ATTR, SRC_ALT_ATTRS,],
422
+ ["input", false, true, true, true, false, :any, true,
423
+ "form control ",
424
+ EMPTY, nil, INPUT_ATTRS, ALIGN_ATTR, [],],
425
+ ["ins", false, false, false, false, false, :any, true,
426
+ "inserted text",
427
+ HTML_FLOW, nil, EDIT_ATTRS, [], [],],
428
+ ["isindex", false, true, true, true, true, :loose, false,
429
+ "single line prompt ",
430
+ EMPTY, nil, [], PROMPT_ATTRS, [],],
431
+ ["kbd", false, false, false, false, false, :any, true,
432
+ "text to be entered by the user",
433
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
434
+ ["label", false, false, false, false, false, :any, true,
435
+ "form field label text ",
436
+ [HTML_INLINE, MODIFIER], nil, LABEL_ATTRS, [], [],],
437
+ ["legend", false, false, false, false, false, :any, false,
438
+ "fieldset legend ",
439
+ HTML_INLINE, nil, LEGEND_ATTRS, ALIGN_ATTR, [],],
440
+ ["li", false, true, true, false, false, :any, false,
441
+ "list item ",
442
+ HTML_FLOW, nil, HTML_ATTRS, [], [],],
443
+ ["link", false, true, true, true, false, :any, false,
444
+ "a media-independent link ",
445
+ EMPTY, nil, LINK_ATTRS, TARGET_ATTR, [],],
446
+ ["map", false, false, false, false, false, :any, true,
447
+ "client-side image map ",
448
+ MAP_CONTENTS, nil, HTML_ATTRS, [], NAME_ATTR,],
449
+ ["menu", false, false, false, false, true, :loose, false,
450
+ "menu list ",
451
+ BLOCKLI_ELT, nil, [], COMPACT_ATTRS, [],],
452
+ ["meta", false, true, true, true, false, :any, false,
453
+ "generic metainformation ",
454
+ EMPTY, nil, META_ATTRS, [], CONTENT_ATTR,],
455
+ ["noframes", false, false, false, false, false, :frameset, false,
456
+ "alternate content container for non frame-based rendering ",
457
+ NOFRAMES_CONTENT, "body", HTML_ATTRS, [], [],],
458
+ ["noscript", false, false, false, false, false, :any, false,
459
+ "alternate content container for non script-based rendering ",
460
+ HTML_FLOW, "div", HTML_ATTRS, [], [],],
461
+ ["object", false, false, false, false, false, :any, true,
462
+ "generic embedded object ",
463
+ OBJECT_CONTENTS, "div", OBJECT_ATTRS, OBJECT_DEPR, [],],
464
+ ["ol", false, false, false, false, false, :any, false,
465
+ "ordered list ",
466
+ LI_ELT, "li", HTML_ATTRS, OL_ATTRS, [],],
467
+ ["optgroup", false, false, false, false, false, :any, false,
468
+ "option group ",
469
+ OPTION_ELT, "option", OPTGROUP_ATTRS, [], LABEL_ATTR,],
470
+ ["option", false, true, false, false, false, :any, false,
471
+ "selectable choice ",
472
+ HTML_PCDATA, nil, OPTION_ATTRS, [], [],],
473
+ ["p", false, true, false, false, false, :any, false,
474
+ "paragraph ",
475
+ HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, [],],
476
+ ["param", false, true, true, true, false, :any, false,
477
+ "named property value ",
478
+ EMPTY, nil, PARAM_ATTRS, [], NAME_ATTR,],
479
+ ["pre", false, false, false, false, false, :any, false,
480
+ "preformatted text ",
481
+ PRE_CONTENT, nil, HTML_ATTRS, WIDTH_ATTR, [],],
482
+ ["q", false, false, false, false, false, :any, true,
483
+ "short inline quotation ",
484
+ HTML_INLINE, nil, QUOTE_ATTRS, [], [],],
485
+ ["s", false, true, false, false, true, :loose, true,
486
+ "strike-through text style",
487
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
488
+ ["samp", false, false, false, false, false, :any, true,
489
+ "sample program output, scripts, etc.",
490
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
491
+ ["script", false, false, false, false, false, :any, true,
492
+ "script statements ",
493
+ HTML_CDATA, nil, SCRIPT_ATTRS, LANGUAGE_ATTR, TYPE_ATTR,],
494
+ ["select", false, false, false, false, false, :any, true,
495
+ "option selector ",
496
+ SELECT_CONTENT, nil, SELECT_ATTRS, [], [],],
497
+ ["small", false, true, false, false, false, :any, true,
498
+ "small text style",
499
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
500
+ ["span", false, false, false, false, false, :any, true,
501
+ "generic language/style container ",
502
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
503
+ ["strike", false, true, false, false, true, :loose, true,
504
+ "strike-through text",
505
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
506
+ ["strong", false, true, false, false, false, :any, true,
507
+ "strong emphasis",
508
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
509
+ ["style", false, false, false, false, false, :any, false,
510
+ "style info ",
511
+ HTML_CDATA, nil, STYLE_ATTRS, [], TYPE_ATTR,],
512
+ ["sub", false, true, false, false, false, :any, true,
513
+ "subscript",
514
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
515
+ ["sup", false, true, false, false, false, :any, true,
516
+ "superscript ",
517
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
518
+ ["table", false, false, false, false, false, :any, false,
519
+ "",
520
+ TABLE_CONTENTS, "tr", TABLE_ATTRS, TABLE_DEPR, [],],
521
+ ["tbody", true, false, false, false, false, :any, false,
522
+ "table body ",
523
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
524
+ ["td", false, false, false, false, false, :any, false,
525
+ "table data cell",
526
+ HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, [],],
527
+ ["textarea", false, false, false, false, false, :any, true,
528
+ "multi-line text field ",
529
+ HTML_PCDATA, nil, TEXTAREA_ATTRS, [], ROWS_COLS_ATTR,],
530
+ ["tfoot", false, true, false, false, false, :any, false,
531
+ "table footer ",
532
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
533
+ ["th", false, true, false, false, false, :any, false,
534
+ "table header cell",
535
+ HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, [],],
536
+ ["thead", false, true, false, false, false, :any, false,
537
+ "table header ",
538
+ TR_ELT, "tr", TALIGN_ATTRS, [], [],],
539
+ ["title", false, false, false, false, false, :any, false,
540
+ "document title ",
541
+ HTML_PCDATA, nil, I18N_ATTRS, [], [],],
542
+ ["tr", false, false, false, false, false, :any, false,
543
+ "table row ",
544
+ TR_CONTENTS, "td", TALIGN_ATTRS, BGCOLOR_ATTR, [],],
545
+ ["tt", false, true, false, false, false, :any, true,
546
+ "teletype or monospaced text style",
547
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
548
+ ["u", false, true, false, false, true, :loose, true,
549
+ "underlined text style",
550
+ HTML_INLINE, nil, [], HTML_ATTRS, [],],
551
+ ["ul", false, false, false, false, false, :any, false,
552
+ "unordered list ",
553
+ LI_ELT, "li", HTML_ATTRS, UL_DEPR, [],],
554
+ ["var", false, false, false, false, false, :any, true,
555
+ "instance of a variable or program argument",
556
+ HTML_INLINE, nil, HTML_ATTRS, [], [],],
651
557
  ].each do |descriptor|
652
558
  name = descriptor[0]
653
559
 
654
560
  begin
655
- d = Desc.new(*descriptor)
561
+ d = Desc.new(*descriptor)
656
562
 
657
- # flatten all the attribute lists (Ruby1.9, *[a,b,c] can be
658
- # used to flatten a literal list, but not in Ruby1.8).
659
- d[:subelts] = d[:subelts].flatten
660
- d[:attrs_opt] = d[:attrs_opt].flatten
661
- d[:attrs_depr] = d[:attrs_depr].flatten
563
+ # flatten all the attribute lists (Ruby1.9, *[a,b,c] can be
564
+ # used to flatten a literal list, but not in Ruby1.8).
565
+ d[:subelts] = d[:subelts].flatten
566
+ d[:attrs_opt] = d[:attrs_opt].flatten
567
+ d[:attrs_depr] = d[:attrs_depr].flatten
662
568
  d[:attrs_req] = d[:attrs_req].flatten
663
569
  rescue => e
664
- p name
570
+ p(name)
665
571
  raise e
666
572
  end
667
573