nokogiri 1.12.5 → 1.14.3

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