nokogiri 1.8.5 → 1.15.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 (358) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +40 -18
  3. data/LICENSE-DEPENDENCIES.md +1636 -1024
  4. data/LICENSE.md +5 -28
  5. data/README.md +203 -90
  6. data/bin/nokogiri +63 -50
  7. data/dependencies.yml +33 -61
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +867 -417
  10. data/ext/nokogiri/gumbo.c +594 -0
  11. data/ext/nokogiri/html4_document.c +165 -0
  12. data/ext/nokogiri/html4_element_description.c +299 -0
  13. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  14. data/ext/nokogiri/html4_sax_parser_context.c +108 -0
  15. data/ext/nokogiri/html4_sax_push_parser.c +95 -0
  16. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  17. data/ext/nokogiri/nokogiri.c +251 -105
  18. data/ext/nokogiri/nokogiri.h +215 -90
  19. data/ext/nokogiri/test_global_handlers.c +40 -0
  20. data/ext/nokogiri/xml_attr.c +42 -37
  21. data/ext/nokogiri/xml_attribute_decl.c +22 -22
  22. data/ext/nokogiri/xml_cdata.c +40 -31
  23. data/ext/nokogiri/xml_comment.c +20 -27
  24. data/ext/nokogiri/xml_document.c +401 -237
  25. data/ext/nokogiri/xml_document_fragment.c +13 -17
  26. data/ext/nokogiri/xml_dtd.c +64 -58
  27. data/ext/nokogiri/xml_element_content.c +63 -55
  28. data/ext/nokogiri/xml_element_decl.c +31 -31
  29. data/ext/nokogiri/xml_encoding_handler.c +54 -21
  30. data/ext/nokogiri/xml_entity_decl.c +37 -35
  31. data/ext/nokogiri/xml_entity_reference.c +17 -19
  32. data/ext/nokogiri/xml_namespace.c +136 -62
  33. data/ext/nokogiri/xml_node.c +1387 -678
  34. data/ext/nokogiri/xml_node_set.c +246 -216
  35. data/ext/nokogiri/xml_processing_instruction.c +18 -20
  36. data/ext/nokogiri/xml_reader.c +347 -212
  37. data/ext/nokogiri/xml_relax_ng.c +86 -77
  38. data/ext/nokogiri/xml_sax_parser.c +149 -124
  39. data/ext/nokogiri/xml_sax_parser_context.c +145 -103
  40. data/ext/nokogiri/xml_sax_push_parser.c +64 -36
  41. data/ext/nokogiri/xml_schema.c +138 -81
  42. data/ext/nokogiri/xml_syntax_error.c +42 -21
  43. data/ext/nokogiri/xml_text.c +36 -26
  44. data/ext/nokogiri/xml_xpath_context.c +366 -178
  45. data/ext/nokogiri/xslt_stylesheet.c +335 -189
  46. data/gumbo-parser/CHANGES.md +63 -0
  47. data/gumbo-parser/Makefile +111 -0
  48. data/gumbo-parser/THANKS +27 -0
  49. data/gumbo-parser/src/Makefile +34 -0
  50. data/gumbo-parser/src/README.md +41 -0
  51. data/gumbo-parser/src/ascii.c +75 -0
  52. data/gumbo-parser/src/ascii.h +115 -0
  53. data/gumbo-parser/src/attribute.c +42 -0
  54. data/gumbo-parser/src/attribute.h +17 -0
  55. data/gumbo-parser/src/char_ref.c +22225 -0
  56. data/gumbo-parser/src/char_ref.h +29 -0
  57. data/gumbo-parser/src/char_ref.rl +2154 -0
  58. data/gumbo-parser/src/error.c +630 -0
  59. data/gumbo-parser/src/error.h +148 -0
  60. data/gumbo-parser/src/foreign_attrs.c +103 -0
  61. data/gumbo-parser/src/foreign_attrs.gperf +27 -0
  62. data/gumbo-parser/src/insertion_mode.h +33 -0
  63. data/gumbo-parser/src/macros.h +91 -0
  64. data/gumbo-parser/src/nokogiri_gumbo.h +944 -0
  65. data/gumbo-parser/src/parser.c +4891 -0
  66. data/gumbo-parser/src/parser.h +41 -0
  67. data/gumbo-parser/src/replacement.h +33 -0
  68. data/gumbo-parser/src/string_buffer.c +103 -0
  69. data/gumbo-parser/src/string_buffer.h +68 -0
  70. data/gumbo-parser/src/string_piece.c +48 -0
  71. data/gumbo-parser/src/svg_attrs.c +174 -0
  72. data/gumbo-parser/src/svg_attrs.gperf +77 -0
  73. data/gumbo-parser/src/svg_tags.c +137 -0
  74. data/gumbo-parser/src/svg_tags.gperf +55 -0
  75. data/gumbo-parser/src/tag.c +223 -0
  76. data/gumbo-parser/src/tag_lookup.c +382 -0
  77. data/gumbo-parser/src/tag_lookup.gperf +170 -0
  78. data/gumbo-parser/src/tag_lookup.h +13 -0
  79. data/gumbo-parser/src/token_buffer.c +79 -0
  80. data/gumbo-parser/src/token_buffer.h +71 -0
  81. data/gumbo-parser/src/token_type.h +17 -0
  82. data/gumbo-parser/src/tokenizer.c +3463 -0
  83. data/gumbo-parser/src/tokenizer.h +112 -0
  84. data/gumbo-parser/src/tokenizer_states.h +339 -0
  85. data/gumbo-parser/src/utf8.c +245 -0
  86. data/gumbo-parser/src/utf8.h +164 -0
  87. data/gumbo-parser/src/util.c +66 -0
  88. data/gumbo-parser/src/util.h +34 -0
  89. data/gumbo-parser/src/vector.c +111 -0
  90. data/gumbo-parser/src/vector.h +45 -0
  91. data/lib/nokogiri/class_resolver.rb +67 -0
  92. data/lib/nokogiri/css/node.rb +10 -8
  93. data/lib/nokogiri/css/parser.rb +397 -377
  94. data/lib/nokogiri/css/parser.y +250 -245
  95. data/lib/nokogiri/css/parser_extras.rb +54 -49
  96. data/lib/nokogiri/css/syntax_error.rb +3 -1
  97. data/lib/nokogiri/css/tokenizer.rb +107 -104
  98. data/lib/nokogiri/css/tokenizer.rex +3 -2
  99. data/lib/nokogiri/css/xpath_visitor.rb +224 -95
  100. data/lib/nokogiri/css.rb +56 -17
  101. data/lib/nokogiri/decorators/slop.rb +9 -7
  102. data/lib/nokogiri/encoding_handler.rb +57 -0
  103. data/lib/nokogiri/extension.rb +32 -0
  104. data/lib/nokogiri/gumbo.rb +15 -0
  105. data/lib/nokogiri/html.rb +38 -27
  106. data/lib/nokogiri/{html → html4}/builder.rb +4 -2
  107. data/lib/nokogiri/html4/document.rb +214 -0
  108. data/lib/nokogiri/html4/document_fragment.rb +54 -0
  109. data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
  110. data/lib/nokogiri/html4/element_description_defaults.rb +2040 -0
  111. data/lib/nokogiri/html4/encoding_reader.rb +121 -0
  112. data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
  113. data/lib/nokogiri/{html → html4}/sax/parser.rb +17 -16
  114. data/lib/nokogiri/html4/sax/parser_context.rb +20 -0
  115. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
  116. data/lib/nokogiri/html4.rb +47 -0
  117. data/lib/nokogiri/html5/document.rb +168 -0
  118. data/lib/nokogiri/html5/document_fragment.rb +90 -0
  119. data/lib/nokogiri/html5/node.rb +103 -0
  120. data/lib/nokogiri/html5.rb +392 -0
  121. data/lib/nokogiri/jruby/dependencies.rb +3 -0
  122. data/lib/nokogiri/jruby/nokogiri_jars.rb +43 -0
  123. data/lib/nokogiri/syntax_error.rb +2 -0
  124. data/lib/nokogiri/version/constant.rb +6 -0
  125. data/lib/nokogiri/version/info.rb +223 -0
  126. data/lib/nokogiri/version.rb +3 -108
  127. data/lib/nokogiri/xml/attr.rb +55 -3
  128. data/lib/nokogiri/xml/attribute_decl.rb +6 -2
  129. data/lib/nokogiri/xml/builder.rb +98 -54
  130. data/lib/nokogiri/xml/cdata.rb +3 -1
  131. data/lib/nokogiri/xml/character_data.rb +2 -0
  132. data/lib/nokogiri/xml/document.rb +312 -126
  133. data/lib/nokogiri/xml/document_fragment.rb +104 -48
  134. data/lib/nokogiri/xml/dtd.rb +4 -2
  135. data/lib/nokogiri/xml/element_content.rb +12 -2
  136. data/lib/nokogiri/xml/element_decl.rb +6 -2
  137. data/lib/nokogiri/xml/entity_decl.rb +7 -3
  138. data/lib/nokogiri/xml/entity_reference.rb +2 -0
  139. data/lib/nokogiri/xml/namespace.rb +45 -0
  140. data/lib/nokogiri/xml/node/save_options.rb +23 -8
  141. data/lib/nokogiri/xml/node.rb +1093 -411
  142. data/lib/nokogiri/xml/node_set.rb +173 -67
  143. data/lib/nokogiri/xml/notation.rb +13 -0
  144. data/lib/nokogiri/xml/parse_options.rb +145 -52
  145. data/lib/nokogiri/xml/pp/character_data.rb +9 -6
  146. data/lib/nokogiri/xml/pp/node.rb +42 -30
  147. data/lib/nokogiri/xml/pp.rb +4 -2
  148. data/lib/nokogiri/xml/processing_instruction.rb +4 -1
  149. data/lib/nokogiri/xml/reader.rb +21 -28
  150. data/lib/nokogiri/xml/relax_ng.rb +8 -2
  151. data/lib/nokogiri/xml/sax/document.rb +45 -49
  152. data/lib/nokogiri/xml/sax/parser.rb +39 -36
  153. data/lib/nokogiri/xml/sax/parser_context.rb +8 -3
  154. data/lib/nokogiri/xml/sax/push_parser.rb +6 -5
  155. data/lib/nokogiri/xml/sax.rb +6 -4
  156. data/lib/nokogiri/xml/schema.rb +19 -9
  157. data/lib/nokogiri/xml/searchable.rb +120 -72
  158. data/lib/nokogiri/xml/syntax_error.rb +6 -4
  159. data/lib/nokogiri/xml/text.rb +2 -0
  160. data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
  161. data/lib/nokogiri/xml/xpath.rb +15 -4
  162. data/lib/nokogiri/xml/xpath_context.rb +3 -3
  163. data/lib/nokogiri/xml.rb +38 -37
  164. data/lib/nokogiri/xslt/stylesheet.rb +3 -1
  165. data/lib/nokogiri/xslt.rb +101 -22
  166. data/lib/nokogiri.rb +59 -75
  167. data/lib/xsd/xmlparser/nokogiri.rb +29 -25
  168. data/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
  169. data/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  170. data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
  171. data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  172. data/patches/libxml2/0010-update-config.guess-and-config.sub-for-libxml2.patch +224 -0
  173. data/patches/libxml2/0011-rip-out-libxml2-s-libc_single_threaded-support.patch +30 -0
  174. data/patches/libxslt/0001-update-config.guess-and-config.sub-for-libxslt.patch +224 -0
  175. data/ports/archives/libxml2-2.11.4.tar.xz +0 -0
  176. data/ports/archives/libxslt-1.1.38.tar.xz +0 -0
  177. metadata +126 -399
  178. data/.autotest +0 -22
  179. data/.cross_rubies +0 -8
  180. data/.editorconfig +0 -17
  181. data/.gemtest +0 -0
  182. data/.travis.yml +0 -63
  183. data/CHANGELOG.md +0 -1368
  184. data/CONTRIBUTING.md +0 -42
  185. data/C_CODING_STYLE.rdoc +0 -33
  186. data/Gemfile-libxml-ruby +0 -3
  187. data/Manifest.txt +0 -370
  188. data/ROADMAP.md +0 -111
  189. data/Rakefile +0 -348
  190. data/SECURITY.md +0 -19
  191. data/STANDARD_RESPONSES.md +0 -47
  192. data/Y_U_NO_GEMSPEC.md +0 -155
  193. data/appveyor.yml +0 -29
  194. data/build_all +0 -44
  195. data/ext/nokogiri/html_document.c +0 -170
  196. data/ext/nokogiri/html_document.h +0 -10
  197. data/ext/nokogiri/html_element_description.c +0 -279
  198. data/ext/nokogiri/html_element_description.h +0 -10
  199. data/ext/nokogiri/html_entity_lookup.c +0 -32
  200. data/ext/nokogiri/html_entity_lookup.h +0 -8
  201. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  202. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  203. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  204. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  205. data/ext/nokogiri/xml_attr.h +0 -9
  206. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  207. data/ext/nokogiri/xml_cdata.h +0 -9
  208. data/ext/nokogiri/xml_comment.h +0 -9
  209. data/ext/nokogiri/xml_document.h +0 -23
  210. data/ext/nokogiri/xml_document_fragment.h +0 -10
  211. data/ext/nokogiri/xml_dtd.h +0 -10
  212. data/ext/nokogiri/xml_element_content.h +0 -10
  213. data/ext/nokogiri/xml_element_decl.h +0 -9
  214. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  215. data/ext/nokogiri/xml_entity_decl.h +0 -10
  216. data/ext/nokogiri/xml_entity_reference.h +0 -9
  217. data/ext/nokogiri/xml_io.c +0 -61
  218. data/ext/nokogiri/xml_io.h +0 -11
  219. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  220. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  221. data/ext/nokogiri/xml_namespace.h +0 -15
  222. data/ext/nokogiri/xml_node.h +0 -13
  223. data/ext/nokogiri/xml_node_set.h +0 -12
  224. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  225. data/ext/nokogiri/xml_reader.h +0 -10
  226. data/ext/nokogiri/xml_relax_ng.h +0 -9
  227. data/ext/nokogiri/xml_sax_parser.h +0 -39
  228. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  229. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  230. data/ext/nokogiri/xml_schema.h +0 -9
  231. data/ext/nokogiri/xml_syntax_error.h +0 -13
  232. data/ext/nokogiri/xml_text.h +0 -9
  233. data/ext/nokogiri/xml_xpath_context.h +0 -10
  234. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  235. data/lib/nokogiri/html/document.rb +0 -335
  236. data/lib/nokogiri/html/document_fragment.rb +0 -49
  237. data/lib/nokogiri/html/element_description_defaults.rb +0 -671
  238. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  239. data/patches/libxml2/0001-Revert-Do-not-URI-escape-in-server-side-includes.patch +0 -78
  240. data/patches/libxml2/0002-Fix-nullptr-deref-with-XPath-logic-ops.patch +0 -54
  241. data/patches/libxml2/0003-Fix-infinite-loop-in-LZMA-decompression.patch +0 -50
  242. data/patches/sort-patches-by-date +0 -25
  243. data/ports/archives/libxml2-2.9.8.tar.gz +0 -0
  244. data/ports/archives/libxslt-1.1.32.tar.gz +0 -0
  245. data/suppressions/README.txt +0 -1
  246. data/suppressions/nokogiri_ruby-2.supp +0 -10
  247. data/tasks/test.rb +0 -100
  248. data/test/css/test_nthiness.rb +0 -226
  249. data/test/css/test_parser.rb +0 -386
  250. data/test/css/test_tokenizer.rb +0 -215
  251. data/test/css/test_xpath_visitor.rb +0 -96
  252. data/test/decorators/test_slop.rb +0 -23
  253. data/test/files/2ch.html +0 -108
  254. data/test/files/GH_1042.html +0 -18
  255. data/test/files/address_book.rlx +0 -12
  256. data/test/files/address_book.xml +0 -10
  257. data/test/files/atom.xml +0 -344
  258. data/test/files/bar/bar.xsd +0 -4
  259. data/test/files/bogus.xml +0 -0
  260. data/test/files/dont_hurt_em_why.xml +0 -422
  261. data/test/files/encoding.html +0 -82
  262. data/test/files/encoding.xhtml +0 -84
  263. data/test/files/exslt.xml +0 -8
  264. data/test/files/exslt.xslt +0 -35
  265. data/test/files/foo/foo.xsd +0 -4
  266. data/test/files/metacharset.html +0 -10
  267. data/test/files/namespace_pressure_test.xml +0 -1684
  268. data/test/files/noencoding.html +0 -47
  269. data/test/files/po.xml +0 -32
  270. data/test/files/po.xsd +0 -66
  271. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  272. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  273. data/test/files/saml/xenc_schema.xsd +0 -146
  274. data/test/files/saml/xmldsig_schema.xsd +0 -318
  275. data/test/files/shift_jis.html +0 -10
  276. data/test/files/shift_jis.xml +0 -5
  277. data/test/files/shift_jis_no_charset.html +0 -9
  278. data/test/files/slow-xpath.xml +0 -25509
  279. data/test/files/snuggles.xml +0 -3
  280. data/test/files/staff.dtd +0 -10
  281. data/test/files/staff.xml +0 -59
  282. data/test/files/staff.xslt +0 -32
  283. data/test/files/test_document_url/bar.xml +0 -2
  284. data/test/files/test_document_url/document.dtd +0 -4
  285. data/test/files/test_document_url/document.xml +0 -6
  286. data/test/files/tlm.html +0 -851
  287. data/test/files/to_be_xincluded.xml +0 -2
  288. data/test/files/valid_bar.xml +0 -2
  289. data/test/files/xinclude.xml +0 -4
  290. data/test/helper.rb +0 -271
  291. data/test/html/sax/test_parser.rb +0 -168
  292. data/test/html/sax/test_parser_context.rb +0 -46
  293. data/test/html/sax/test_parser_text.rb +0 -163
  294. data/test/html/sax/test_push_parser.rb +0 -87
  295. data/test/html/test_attributes.rb +0 -85
  296. data/test/html/test_builder.rb +0 -164
  297. data/test/html/test_document.rb +0 -712
  298. data/test/html/test_document_encoding.rb +0 -143
  299. data/test/html/test_document_fragment.rb +0 -310
  300. data/test/html/test_element_description.rb +0 -105
  301. data/test/html/test_named_characters.rb +0 -14
  302. data/test/html/test_node.rb +0 -212
  303. data/test/html/test_node_encoding.rb +0 -91
  304. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  305. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  306. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  307. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  308. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  309. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  310. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  311. data/test/test_convert_xpath.rb +0 -135
  312. data/test/test_css_cache.rb +0 -47
  313. data/test/test_encoding_handler.rb +0 -48
  314. data/test/test_memory_leak.rb +0 -156
  315. data/test/test_nokogiri.rb +0 -138
  316. data/test/test_soap4r_sax.rb +0 -52
  317. data/test/test_xslt_transforms.rb +0 -314
  318. data/test/xml/node/test_save_options.rb +0 -28
  319. data/test/xml/node/test_subclass.rb +0 -44
  320. data/test/xml/sax/test_parser.rb +0 -402
  321. data/test/xml/sax/test_parser_context.rb +0 -115
  322. data/test/xml/sax/test_parser_text.rb +0 -202
  323. data/test/xml/sax/test_push_parser.rb +0 -265
  324. data/test/xml/test_attr.rb +0 -74
  325. data/test/xml/test_attribute_decl.rb +0 -86
  326. data/test/xml/test_builder.rb +0 -341
  327. data/test/xml/test_c14n.rb +0 -180
  328. data/test/xml/test_cdata.rb +0 -54
  329. data/test/xml/test_comment.rb +0 -40
  330. data/test/xml/test_document.rb +0 -982
  331. data/test/xml/test_document_encoding.rb +0 -31
  332. data/test/xml/test_document_fragment.rb +0 -298
  333. data/test/xml/test_dtd.rb +0 -187
  334. data/test/xml/test_dtd_encoding.rb +0 -31
  335. data/test/xml/test_element_content.rb +0 -56
  336. data/test/xml/test_element_decl.rb +0 -73
  337. data/test/xml/test_entity_decl.rb +0 -122
  338. data/test/xml/test_entity_reference.rb +0 -262
  339. data/test/xml/test_namespace.rb +0 -96
  340. data/test/xml/test_node.rb +0 -1325
  341. data/test/xml/test_node_attributes.rb +0 -115
  342. data/test/xml/test_node_encoding.rb +0 -75
  343. data/test/xml/test_node_inheritance.rb +0 -32
  344. data/test/xml/test_node_reparenting.rb +0 -592
  345. data/test/xml/test_node_set.rb +0 -809
  346. data/test/xml/test_parse_options.rb +0 -64
  347. data/test/xml/test_processing_instruction.rb +0 -30
  348. data/test/xml/test_reader.rb +0 -620
  349. data/test/xml/test_reader_encoding.rb +0 -134
  350. data/test/xml/test_relax_ng.rb +0 -60
  351. data/test/xml/test_schema.rb +0 -142
  352. data/test/xml/test_syntax_error.rb +0 -36
  353. data/test/xml/test_text.rb +0 -60
  354. data/test/xml/test_unparented_node.rb +0 -483
  355. data/test/xml/test_xinclude.rb +0 -83
  356. data/test/xml/test_xpath.rb +0 -470
  357. data/test/xslt/test_custom_functions.rb +0 -133
  358. data/test/xslt/test_exception_handling.rb +0 -37
@@ -0,0 +1,2040 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Nokogiri
4
+ module HTML4
5
+ class ElementDescription
6
+ # Methods are defined protected by method_defined? because at
7
+ # this point the C-library or Java library is already loaded,
8
+ # and we don't want to clobber any methods that have been
9
+ # defined there.
10
+
11
+ Desc = Struct.new(
12
+ "HTMLElementDescription",
13
+ :name,
14
+ :startTag,
15
+ :endTag,
16
+ :saveEndTag,
17
+ :empty,
18
+ :depr,
19
+ :dtd,
20
+ :isinline,
21
+ :desc,
22
+ :subelts,
23
+ :defaultsubelt,
24
+ :attrs_opt,
25
+ :attrs_depr,
26
+ :attrs_req,
27
+ )
28
+
29
+ # This is filled in down below.
30
+ DefaultDescriptions = {} # rubocop:disable Naming/ConstantName
31
+
32
+ def default_desc
33
+ DefaultDescriptions[name.downcase]
34
+ end
35
+ private :default_desc
36
+
37
+ unless method_defined?(:implied_start_tag?)
38
+ def implied_start_tag?
39
+ default_desc&.startTag
40
+ end
41
+ end
42
+
43
+ unless method_defined?(:implied_end_tag?)
44
+ def implied_end_tag?
45
+ default_desc&.endTag
46
+ end
47
+ end
48
+
49
+ unless method_defined?(:save_end_tag?)
50
+ def save_end_tag?
51
+ default_desc&.saveEndTag
52
+ end
53
+ end
54
+
55
+ unless method_defined?(:deprecated?)
56
+ def deprecated?
57
+ default_desc&.depr
58
+ end
59
+ end
60
+
61
+ unless method_defined?(:description)
62
+ def description
63
+ default_desc&.desc
64
+ end
65
+ end
66
+
67
+ unless method_defined?(:default_sub_element)
68
+ def default_sub_element
69
+ default_desc&.defaultsubelt
70
+ end
71
+ end
72
+
73
+ unless method_defined?(:optional_attributes)
74
+ def optional_attributes
75
+ d = default_desc
76
+ d ? d.attrs_opt : []
77
+ end
78
+ end
79
+
80
+ unless method_defined?(:deprecated_attributes)
81
+ def deprecated_attributes
82
+ d = default_desc
83
+ d ? d.attrs_depr : []
84
+ end
85
+ end
86
+
87
+ unless method_defined?(:required_attributes)
88
+ def required_attributes
89
+ d = default_desc
90
+ d ? d.attrs_req : []
91
+ end
92
+ end
93
+
94
+ ###
95
+ # Default Element Descriptions (HTML 4.0) copied from
96
+ # libxml2/HTMLparser.c and libxml2/include/libxml/HTMLparser.h
97
+ #
98
+ # The copyright notice for those files and the following list of
99
+ # element and attribute descriptions is reproduced here:
100
+ #
101
+ # Except where otherwise noted in the source code (e.g. the
102
+ # files hash.c, list.c and the trio files, which are covered by
103
+ # a similar licence but with different Copyright notices) all
104
+ # the files are:
105
+ #
106
+ # Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved.
107
+ #
108
+ # Permission is hereby granted, free of charge, to any person
109
+ # obtaining a copy of this software and associated documentation
110
+ # files (the "Software"), to deal in the Software without
111
+ # restriction, including without limitation the rights to use,
112
+ # copy, modify, merge, publish, distribute, sublicense, and/or
113
+ # sell copies of the Software, and to permit persons to whom the
114
+ # Software is fur- nished to do so, subject to the following
115
+ # conditions:
116
+
117
+ # The above copyright notice and this permission notice shall be
118
+ # included in all copies or substantial portions of the
119
+ # Software.
120
+
121
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
122
+ # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
123
+ # WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR
124
+ # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL
125
+ # VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
126
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
127
+ # FROM, OUT OF OR IN CON- NECTION WITH THE SOFTWARE OR THE USE
128
+ # OR OTHER DEALINGS IN THE SOFTWARE.
129
+
130
+ # Except as contained in this notice, the name of Daniel
131
+ # Veillard shall not be used in advertising or otherwise to
132
+ # promote the sale, use or other deal- ings in this Software
133
+ # without prior written authorization from him.
134
+
135
+ # Attributes defined and categorized
136
+ FONTSTYLE = ["tt", "i", "b", "u", "s", "strike", "big", "small"]
137
+ PHRASE = [
138
+ "em",
139
+ "strong",
140
+ "dfn",
141
+ "code",
142
+ "samp",
143
+ "kbd",
144
+ "var",
145
+ "cite",
146
+ "abbr",
147
+ "acronym",
148
+ ]
149
+ SPECIAL = [
150
+ "a",
151
+ "img",
152
+ "applet",
153
+ "embed",
154
+ "object",
155
+ "font",
156
+ "basefont",
157
+ "br",
158
+ "script",
159
+ "map",
160
+ "q",
161
+ "sub",
162
+ "sup",
163
+ "span",
164
+ "bdo",
165
+ "iframe",
166
+ ]
167
+ PCDATA = []
168
+ HEADING = ["h1", "h2", "h3", "h4", "h5", "h6"]
169
+ LIST = ["ul", "ol", "dir", "menu"]
170
+ FORMCTRL = ["input", "select", "textarea", "label", "button"]
171
+ BLOCK = [
172
+ HEADING,
173
+ LIST,
174
+ "pre",
175
+ "p",
176
+ "dl",
177
+ "div",
178
+ "center",
179
+ "noscript",
180
+ "noframes",
181
+ "blockquote",
182
+ "form",
183
+ "isindex",
184
+ "hr",
185
+ "table",
186
+ "fieldset",
187
+ "address",
188
+ ]
189
+ INLINE = [PCDATA, FONTSTYLE, PHRASE, SPECIAL, FORMCTRL]
190
+ FLOW = [BLOCK, INLINE]
191
+ MODIFIER = []
192
+ EMPTY = []
193
+
194
+ HTML_FLOW = FLOW
195
+ HTML_INLINE = INLINE
196
+ HTML_PCDATA = PCDATA
197
+ HTML_CDATA = HTML_PCDATA
198
+
199
+ COREATTRS = ["id", "class", "style", "title"]
200
+ I18N = ["lang", "dir"]
201
+ EVENTS = [
202
+ "onclick",
203
+ "ondblclick",
204
+ "onmousedown",
205
+ "onmouseup",
206
+ "onmouseover",
207
+ "onmouseout",
208
+ "onkeypress",
209
+ "onkeydown",
210
+ "onkeyup",
211
+ ]
212
+ ATTRS = [COREATTRS, I18N, EVENTS]
213
+ CELLHALIGN = ["align", "char", "charoff"]
214
+ CELLVALIGN = ["valign"]
215
+
216
+ HTML_ATTRS = ATTRS
217
+ CORE_I18N_ATTRS = [COREATTRS, I18N]
218
+ CORE_ATTRS = COREATTRS
219
+ I18N_ATTRS = I18N
220
+
221
+ A_ATTRS = [
222
+ ATTRS,
223
+ "charset",
224
+ "type",
225
+ "name",
226
+ "href",
227
+ "hreflang",
228
+ "rel",
229
+ "rev",
230
+ "accesskey",
231
+ "shape",
232
+ "coords",
233
+ "tabindex",
234
+ "onfocus",
235
+ "onblur",
236
+ ]
237
+ TARGET_ATTR = ["target"]
238
+ ROWS_COLS_ATTR = ["rows", "cols"]
239
+ ALT_ATTR = ["alt"]
240
+ SRC_ALT_ATTRS = ["src", "alt"]
241
+ HREF_ATTRS = ["href"]
242
+ CLEAR_ATTRS = ["clear"]
243
+ INLINE_P = [INLINE, "p"]
244
+
245
+ FLOW_PARAM = [FLOW, "param"]
246
+ APPLET_ATTRS = [
247
+ COREATTRS,
248
+ "codebase",
249
+ "archive",
250
+ "alt",
251
+ "name",
252
+ "height",
253
+ "width",
254
+ "align",
255
+ "hspace",
256
+ "vspace",
257
+ ]
258
+ AREA_ATTRS = [
259
+ "shape",
260
+ "coords",
261
+ "href",
262
+ "nohref",
263
+ "tabindex",
264
+ "accesskey",
265
+ "onfocus",
266
+ "onblur",
267
+ ]
268
+ BASEFONT_ATTRS = ["id", "size", "color", "face"]
269
+ QUOTE_ATTRS = [ATTRS, "cite"]
270
+ BODY_CONTENTS = [FLOW, "ins", "del"]
271
+ BODY_ATTRS = [ATTRS, "onload", "onunload"]
272
+ BODY_DEPR = [
273
+ "background",
274
+ "bgcolor",
275
+ "text",
276
+ "link",
277
+ "vlink",
278
+ "alink",
279
+ ]
280
+ BUTTON_ATTRS = [
281
+ ATTRS,
282
+ "name",
283
+ "value",
284
+ "type",
285
+ "disabled",
286
+ "tabindex",
287
+ "accesskey",
288
+ "onfocus",
289
+ "onblur",
290
+ ]
291
+
292
+ COL_ATTRS = [ATTRS, "span", "width", CELLHALIGN, CELLVALIGN]
293
+ COL_ELT = ["col"]
294
+ EDIT_ATTRS = [ATTRS, "datetime", "cite"]
295
+ COMPACT_ATTRS = [ATTRS, "compact"]
296
+ DL_CONTENTS = ["dt", "dd"]
297
+ COMPACT_ATTR = ["compact"]
298
+ LABEL_ATTR = ["label"]
299
+ FIELDSET_CONTENTS = [FLOW, "legend"]
300
+ FONT_ATTRS = [COREATTRS, I18N, "size", "color", "face"]
301
+ FORM_CONTENTS = [
302
+ HEADING,
303
+ LIST,
304
+ INLINE,
305
+ "pre",
306
+ "p",
307
+ "div",
308
+ "center",
309
+ "noscript",
310
+ "noframes",
311
+ "blockquote",
312
+ "isindex",
313
+ "hr",
314
+ "table",
315
+ "fieldset",
316
+ "address",
317
+ ]
318
+ FORM_ATTRS = [
319
+ ATTRS,
320
+ "method",
321
+ "enctype",
322
+ "accept",
323
+ "name",
324
+ "onsubmit",
325
+ "onreset",
326
+ "accept-charset",
327
+ ]
328
+ FRAME_ATTRS = [
329
+ COREATTRS,
330
+ "longdesc",
331
+ "name",
332
+ "src",
333
+ "frameborder",
334
+ "marginwidth",
335
+ "marginheight",
336
+ "noresize",
337
+ "scrolling",
338
+ ]
339
+ FRAMESET_ATTRS = [COREATTRS, "rows", "cols", "onload", "onunload"]
340
+ FRAMESET_CONTENTS = ["frameset", "frame", "noframes"]
341
+ HEAD_ATTRS = [I18N, "profile"]
342
+ HEAD_CONTENTS = [
343
+ "title",
344
+ "isindex",
345
+ "base",
346
+ "script",
347
+ "style",
348
+ "meta",
349
+ "link",
350
+ "object",
351
+ ]
352
+ HR_DEPR = ["align", "noshade", "size", "width"]
353
+ VERSION_ATTR = ["version"]
354
+ HTML_CONTENT = ["head", "body", "frameset"]
355
+ IFRAME_ATTRS = [
356
+ COREATTRS,
357
+ "longdesc",
358
+ "name",
359
+ "src",
360
+ "frameborder",
361
+ "marginwidth",
362
+ "marginheight",
363
+ "scrolling",
364
+ "align",
365
+ "height",
366
+ "width",
367
+ ]
368
+ IMG_ATTRS = [
369
+ ATTRS,
370
+ "longdesc",
371
+ "name",
372
+ "height",
373
+ "width",
374
+ "usemap",
375
+ "ismap",
376
+ ]
377
+ EMBED_ATTRS = [
378
+ COREATTRS,
379
+ "align",
380
+ "alt",
381
+ "border",
382
+ "code",
383
+ "codebase",
384
+ "frameborder",
385
+ "height",
386
+ "hidden",
387
+ "hspace",
388
+ "name",
389
+ "palette",
390
+ "pluginspace",
391
+ "pluginurl",
392
+ "src",
393
+ "type",
394
+ "units",
395
+ "vspace",
396
+ "width",
397
+ ]
398
+ INPUT_ATTRS = [
399
+ ATTRS,
400
+ "type",
401
+ "name",
402
+ "value",
403
+ "checked",
404
+ "disabled",
405
+ "readonly",
406
+ "size",
407
+ "maxlength",
408
+ "src",
409
+ "alt",
410
+ "usemap",
411
+ "ismap",
412
+ "tabindex",
413
+ "accesskey",
414
+ "onfocus",
415
+ "onblur",
416
+ "onselect",
417
+ "onchange",
418
+ "accept",
419
+ ]
420
+ PROMPT_ATTRS = [COREATTRS, I18N, "prompt"]
421
+ LABEL_ATTRS = [ATTRS, "for", "accesskey", "onfocus", "onblur"]
422
+ LEGEND_ATTRS = [ATTRS, "accesskey"]
423
+ ALIGN_ATTR = ["align"]
424
+ LINK_ATTRS = [
425
+ ATTRS,
426
+ "charset",
427
+ "href",
428
+ "hreflang",
429
+ "type",
430
+ "rel",
431
+ "rev",
432
+ "media",
433
+ ]
434
+ MAP_CONTENTS = [BLOCK, "area"]
435
+ NAME_ATTR = ["name"]
436
+ ACTION_ATTR = ["action"]
437
+ BLOCKLI_ELT = [BLOCK, "li"]
438
+ META_ATTRS = [I18N, "http-equiv", "name", "scheme"]
439
+ CONTENT_ATTR = ["content"]
440
+ TYPE_ATTR = ["type"]
441
+ NOFRAMES_CONTENT = ["body", FLOW, MODIFIER]
442
+ OBJECT_CONTENTS = [FLOW, "param"]
443
+ OBJECT_ATTRS = [
444
+ ATTRS,
445
+ "declare",
446
+ "classid",
447
+ "codebase",
448
+ "data",
449
+ "type",
450
+ "codetype",
451
+ "archive",
452
+ "standby",
453
+ "height",
454
+ "width",
455
+ "usemap",
456
+ "name",
457
+ "tabindex",
458
+ ]
459
+ OBJECT_DEPR = ["align", "border", "hspace", "vspace"]
460
+ OL_ATTRS = ["type", "compact", "start"]
461
+ OPTION_ELT = ["option"]
462
+ OPTGROUP_ATTRS = [ATTRS, "disabled"]
463
+ OPTION_ATTRS = [ATTRS, "disabled", "label", "selected", "value"]
464
+ PARAM_ATTRS = ["id", "value", "valuetype", "type"]
465
+ WIDTH_ATTR = ["width"]
466
+ PRE_CONTENT = [
467
+ PHRASE,
468
+ "tt",
469
+ "i",
470
+ "b",
471
+ "u",
472
+ "s",
473
+ "strike",
474
+ "a",
475
+ "br",
476
+ "script",
477
+ "map",
478
+ "q",
479
+ "span",
480
+ "bdo",
481
+ "iframe",
482
+ ]
483
+ SCRIPT_ATTRS = ["charset", "src", "defer", "event", "for"]
484
+ LANGUAGE_ATTR = ["language"]
485
+ SELECT_CONTENT = ["optgroup", "option"]
486
+ SELECT_ATTRS = [
487
+ ATTRS,
488
+ "name",
489
+ "size",
490
+ "multiple",
491
+ "disabled",
492
+ "tabindex",
493
+ "onfocus",
494
+ "onblur",
495
+ "onchange",
496
+ ]
497
+ STYLE_ATTRS = [I18N, "media", "title"]
498
+ TABLE_ATTRS = [
499
+ ATTRS,
500
+ "summary",
501
+ "width",
502
+ "border",
503
+ "frame",
504
+ "rules",
505
+ "cellspacing",
506
+ "cellpadding",
507
+ "datapagesize",
508
+ ]
509
+ TABLE_DEPR = ["align", "bgcolor"]
510
+ TABLE_CONTENTS = [
511
+ "caption",
512
+ "col",
513
+ "colgroup",
514
+ "thead",
515
+ "tfoot",
516
+ "tbody",
517
+ "tr",
518
+ ]
519
+ TR_ELT = ["tr"]
520
+ TALIGN_ATTRS = [ATTRS, CELLHALIGN, CELLVALIGN]
521
+ TH_TD_DEPR = ["nowrap", "bgcolor", "width", "height"]
522
+ TH_TD_ATTR = [
523
+ ATTRS,
524
+ "abbr",
525
+ "axis",
526
+ "headers",
527
+ "scope",
528
+ "rowspan",
529
+ "colspan",
530
+ CELLHALIGN,
531
+ CELLVALIGN,
532
+ ]
533
+ TEXTAREA_ATTRS = [
534
+ ATTRS,
535
+ "name",
536
+ "disabled",
537
+ "readonly",
538
+ "tabindex",
539
+ "accesskey",
540
+ "onfocus",
541
+ "onblur",
542
+ "onselect",
543
+ "onchange",
544
+ ]
545
+ TR_CONTENTS = ["th", "td"]
546
+ BGCOLOR_ATTR = ["bgcolor"]
547
+ LI_ELT = ["li"]
548
+ UL_DEPR = ["type", "compact"]
549
+ DIR_ATTR = ["dir"]
550
+
551
+ [
552
+ [
553
+ "a",
554
+ false,
555
+ false,
556
+ false,
557
+ false,
558
+ false,
559
+ :any,
560
+ true,
561
+ "anchor ",
562
+ HTML_INLINE,
563
+ nil,
564
+ A_ATTRS,
565
+ TARGET_ATTR,
566
+ [],
567
+ ],
568
+ [
569
+ "abbr",
570
+ false,
571
+ false,
572
+ false,
573
+ false,
574
+ false,
575
+ :any,
576
+ true,
577
+ "abbreviated form",
578
+ HTML_INLINE,
579
+ nil,
580
+ HTML_ATTRS,
581
+ [],
582
+ [],
583
+ ],
584
+ [
585
+ "acronym",
586
+ false,
587
+ false,
588
+ false,
589
+ false,
590
+ false,
591
+ :any,
592
+ true,
593
+ "",
594
+ HTML_INLINE,
595
+ nil,
596
+ HTML_ATTRS,
597
+ [],
598
+ [],
599
+ ],
600
+ [
601
+ "address",
602
+ false,
603
+ false,
604
+ false,
605
+ false,
606
+ false,
607
+ :any,
608
+ false,
609
+ "information on author",
610
+ INLINE_P,
611
+ nil,
612
+ HTML_ATTRS,
613
+ [],
614
+ [],
615
+ ],
616
+ [
617
+ "applet",
618
+ false,
619
+ false,
620
+ false,
621
+ false,
622
+ true,
623
+ :loose,
624
+ true,
625
+ "java applet ",
626
+ FLOW_PARAM,
627
+ nil,
628
+ [],
629
+ APPLET_ATTRS,
630
+ [],
631
+ ],
632
+ [
633
+ "area",
634
+ false,
635
+ true,
636
+ true,
637
+ true,
638
+ false,
639
+ :any,
640
+ false,
641
+ "client-side image map area ",
642
+ EMPTY,
643
+ nil,
644
+ AREA_ATTRS,
645
+ TARGET_ATTR,
646
+ ALT_ATTR,
647
+ ],
648
+ [
649
+ "b",
650
+ false,
651
+ true,
652
+ false,
653
+ false,
654
+ false,
655
+ :any,
656
+ true,
657
+ "bold text style",
658
+ HTML_INLINE,
659
+ nil,
660
+ HTML_ATTRS,
661
+ [],
662
+ [],
663
+ ],
664
+ [
665
+ "base",
666
+ false,
667
+ true,
668
+ true,
669
+ true,
670
+ false,
671
+ :any,
672
+ false,
673
+ "document base uri ",
674
+ EMPTY,
675
+ nil,
676
+ [],
677
+ TARGET_ATTR,
678
+ HREF_ATTRS,
679
+ ],
680
+ [
681
+ "basefont",
682
+ false,
683
+ true,
684
+ true,
685
+ true,
686
+ true,
687
+ :loose,
688
+ true,
689
+ "base font size ",
690
+ EMPTY,
691
+ nil,
692
+ [],
693
+ BASEFONT_ATTRS,
694
+ [],
695
+ ],
696
+ [
697
+ "bdo",
698
+ false,
699
+ false,
700
+ false,
701
+ false,
702
+ false,
703
+ :any,
704
+ true,
705
+ "i18n bidi over-ride ",
706
+ HTML_INLINE,
707
+ nil,
708
+ CORE_I18N_ATTRS,
709
+ [],
710
+ DIR_ATTR,
711
+ ],
712
+ [
713
+ "big",
714
+ false,
715
+ true,
716
+ false,
717
+ false,
718
+ false,
719
+ :any,
720
+ true,
721
+ "large text style",
722
+ HTML_INLINE,
723
+ nil,
724
+ HTML_ATTRS,
725
+ [],
726
+ [],
727
+ ],
728
+ [
729
+ "blockquote",
730
+ false,
731
+ false,
732
+ false,
733
+ false,
734
+ false,
735
+ :any,
736
+ false,
737
+ "long quotation ",
738
+ HTML_FLOW,
739
+ nil,
740
+ QUOTE_ATTRS,
741
+ [],
742
+ [],
743
+ ],
744
+ [
745
+ "body",
746
+ true,
747
+ true,
748
+ false,
749
+ false,
750
+ false,
751
+ :any,
752
+ false,
753
+ "document body ",
754
+ BODY_CONTENTS,
755
+ "div",
756
+ BODY_ATTRS,
757
+ BODY_DEPR,
758
+ [],
759
+ ],
760
+ [
761
+ "br",
762
+ false,
763
+ true,
764
+ true,
765
+ true,
766
+ false,
767
+ :any,
768
+ true,
769
+ "forced line break ",
770
+ EMPTY,
771
+ nil,
772
+ CORE_ATTRS,
773
+ CLEAR_ATTRS,
774
+ [],
775
+ ],
776
+ [
777
+ "button",
778
+ false,
779
+ false,
780
+ false,
781
+ false,
782
+ false,
783
+ :any,
784
+ true,
785
+ "push button ",
786
+ [HTML_FLOW, MODIFIER],
787
+ nil,
788
+ BUTTON_ATTRS,
789
+ [],
790
+ [],
791
+ ],
792
+ [
793
+ "caption",
794
+ false,
795
+ false,
796
+ false,
797
+ false,
798
+ false,
799
+ :any,
800
+ false,
801
+ "table caption ",
802
+ HTML_INLINE,
803
+ nil,
804
+ HTML_ATTRS,
805
+ [],
806
+ [],
807
+ ],
808
+ [
809
+ "center",
810
+ false,
811
+ true,
812
+ false,
813
+ false,
814
+ true,
815
+ :loose,
816
+ false,
817
+ "shorthand for div align=center ",
818
+ HTML_FLOW,
819
+ nil,
820
+ [],
821
+ HTML_ATTRS,
822
+ [],
823
+ ],
824
+ [
825
+ "cite",
826
+ false,
827
+ false,
828
+ false,
829
+ false,
830
+ false,
831
+ :any,
832
+ true,
833
+ "citation",
834
+ HTML_INLINE,
835
+ nil,
836
+ HTML_ATTRS,
837
+ [],
838
+ [],
839
+ ],
840
+ [
841
+ "code",
842
+ false,
843
+ false,
844
+ false,
845
+ false,
846
+ false,
847
+ :any,
848
+ true,
849
+ "computer code fragment",
850
+ HTML_INLINE,
851
+ nil,
852
+ HTML_ATTRS,
853
+ [],
854
+ [],
855
+ ],
856
+ [
857
+ "col",
858
+ false,
859
+ true,
860
+ true,
861
+ true,
862
+ false,
863
+ :any,
864
+ false,
865
+ "table column ",
866
+ EMPTY,
867
+ nil,
868
+ COL_ATTRS,
869
+ [],
870
+ [],
871
+ ],
872
+ [
873
+ "colgroup",
874
+ false,
875
+ true,
876
+ false,
877
+ false,
878
+ false,
879
+ :any,
880
+ false,
881
+ "table column group ",
882
+ COL_ELT,
883
+ "col",
884
+ COL_ATTRS,
885
+ [],
886
+ [],
887
+ ],
888
+ [
889
+ "dd",
890
+ false,
891
+ true,
892
+ false,
893
+ false,
894
+ false,
895
+ :any,
896
+ false,
897
+ "definition description ",
898
+ HTML_FLOW,
899
+ nil,
900
+ HTML_ATTRS,
901
+ [],
902
+ [],
903
+ ],
904
+ [
905
+ "del",
906
+ false,
907
+ false,
908
+ false,
909
+ false,
910
+ false,
911
+ :any,
912
+ true,
913
+ "deleted text ",
914
+ HTML_FLOW,
915
+ nil,
916
+ EDIT_ATTRS,
917
+ [],
918
+ [],
919
+ ],
920
+ [
921
+ "dfn",
922
+ false,
923
+ false,
924
+ false,
925
+ false,
926
+ false,
927
+ :any,
928
+ true,
929
+ "instance definition",
930
+ HTML_INLINE,
931
+ nil,
932
+ HTML_ATTRS,
933
+ [],
934
+ [],
935
+ ],
936
+ [
937
+ "dir",
938
+ false,
939
+ false,
940
+ false,
941
+ false,
942
+ true,
943
+ :loose,
944
+ false,
945
+ "directory list",
946
+ BLOCKLI_ELT,
947
+ "li",
948
+ [],
949
+ COMPACT_ATTRS,
950
+ [],
951
+ ],
952
+ [
953
+ "div",
954
+ false,
955
+ false,
956
+ false,
957
+ false,
958
+ false,
959
+ :any,
960
+ false,
961
+ "generic language/style container",
962
+ HTML_FLOW,
963
+ nil,
964
+ HTML_ATTRS,
965
+ ALIGN_ATTR,
966
+ [],
967
+ ],
968
+ [
969
+ "dl",
970
+ false,
971
+ false,
972
+ false,
973
+ false,
974
+ false,
975
+ :any,
976
+ false,
977
+ "definition list ",
978
+ DL_CONTENTS,
979
+ "dd",
980
+ HTML_ATTRS,
981
+ COMPACT_ATTR,
982
+ [],
983
+ ],
984
+ [
985
+ "dt",
986
+ false,
987
+ true,
988
+ false,
989
+ false,
990
+ false,
991
+ :any,
992
+ false,
993
+ "definition term ",
994
+ HTML_INLINE,
995
+ nil,
996
+ HTML_ATTRS,
997
+ [],
998
+ [],
999
+ ],
1000
+ [
1001
+ "em",
1002
+ false,
1003
+ true,
1004
+ false,
1005
+ false,
1006
+ false,
1007
+ :any,
1008
+ true,
1009
+ "emphasis",
1010
+ HTML_INLINE,
1011
+ nil,
1012
+ HTML_ATTRS,
1013
+ [],
1014
+ [],
1015
+ ],
1016
+ [
1017
+ "embed",
1018
+ false,
1019
+ true,
1020
+ false,
1021
+ false,
1022
+ true,
1023
+ :loose,
1024
+ true,
1025
+ "generic embedded object ",
1026
+ EMPTY,
1027
+ nil,
1028
+ EMBED_ATTRS,
1029
+ [],
1030
+ [],
1031
+ ],
1032
+ [
1033
+ "fieldset",
1034
+ false,
1035
+ false,
1036
+ false,
1037
+ false,
1038
+ false,
1039
+ :any,
1040
+ false,
1041
+ "form control group ",
1042
+ FIELDSET_CONTENTS,
1043
+ nil,
1044
+ HTML_ATTRS,
1045
+ [],
1046
+ [],
1047
+ ],
1048
+ [
1049
+ "font",
1050
+ false,
1051
+ true,
1052
+ false,
1053
+ false,
1054
+ true,
1055
+ :loose,
1056
+ true,
1057
+ "local change to font ",
1058
+ HTML_INLINE,
1059
+ nil,
1060
+ [],
1061
+ FONT_ATTRS,
1062
+ [],
1063
+ ],
1064
+ [
1065
+ "form",
1066
+ false,
1067
+ false,
1068
+ false,
1069
+ false,
1070
+ false,
1071
+ :any,
1072
+ false,
1073
+ "interactive form ",
1074
+ FORM_CONTENTS,
1075
+ "fieldset",
1076
+ FORM_ATTRS,
1077
+ TARGET_ATTR,
1078
+ ACTION_ATTR,
1079
+ ],
1080
+ [
1081
+ "frame",
1082
+ false,
1083
+ true,
1084
+ true,
1085
+ true,
1086
+ false,
1087
+ :frameset,
1088
+ false,
1089
+ "subwindow ",
1090
+ EMPTY,
1091
+ nil,
1092
+ [],
1093
+ FRAME_ATTRS,
1094
+ [],
1095
+ ],
1096
+ [
1097
+ "frameset",
1098
+ false,
1099
+ false,
1100
+ false,
1101
+ false,
1102
+ false,
1103
+ :frameset,
1104
+ false,
1105
+ "window subdivision",
1106
+ FRAMESET_CONTENTS,
1107
+ "noframes",
1108
+ [],
1109
+ FRAMESET_ATTRS,
1110
+ [],
1111
+ ],
1112
+ [
1113
+ "htrue",
1114
+ false,
1115
+ false,
1116
+ false,
1117
+ false,
1118
+ false,
1119
+ :any,
1120
+ false,
1121
+ "heading ",
1122
+ HTML_INLINE,
1123
+ nil,
1124
+ HTML_ATTRS,
1125
+ ALIGN_ATTR,
1126
+ [],
1127
+ ],
1128
+ [
1129
+ "htrue",
1130
+ false,
1131
+ false,
1132
+ false,
1133
+ false,
1134
+ false,
1135
+ :any,
1136
+ false,
1137
+ "heading ",
1138
+ HTML_INLINE,
1139
+ nil,
1140
+ HTML_ATTRS,
1141
+ ALIGN_ATTR,
1142
+ [],
1143
+ ],
1144
+ [
1145
+ "htrue",
1146
+ false,
1147
+ false,
1148
+ false,
1149
+ false,
1150
+ false,
1151
+ :any,
1152
+ false,
1153
+ "heading ",
1154
+ HTML_INLINE,
1155
+ nil,
1156
+ HTML_ATTRS,
1157
+ ALIGN_ATTR,
1158
+ [],
1159
+ ],
1160
+ [
1161
+ "h4",
1162
+ false,
1163
+ false,
1164
+ false,
1165
+ false,
1166
+ false,
1167
+ :any,
1168
+ false,
1169
+ "heading ",
1170
+ HTML_INLINE,
1171
+ nil,
1172
+ HTML_ATTRS,
1173
+ ALIGN_ATTR,
1174
+ [],
1175
+ ],
1176
+ [
1177
+ "h5",
1178
+ false,
1179
+ false,
1180
+ false,
1181
+ false,
1182
+ false,
1183
+ :any,
1184
+ false,
1185
+ "heading ",
1186
+ HTML_INLINE,
1187
+ nil,
1188
+ HTML_ATTRS,
1189
+ ALIGN_ATTR,
1190
+ [],
1191
+ ],
1192
+ [
1193
+ "h6",
1194
+ false,
1195
+ false,
1196
+ false,
1197
+ false,
1198
+ false,
1199
+ :any,
1200
+ false,
1201
+ "heading ",
1202
+ HTML_INLINE,
1203
+ nil,
1204
+ HTML_ATTRS,
1205
+ ALIGN_ATTR,
1206
+ [],
1207
+ ],
1208
+ [
1209
+ "head",
1210
+ true,
1211
+ true,
1212
+ false,
1213
+ false,
1214
+ false,
1215
+ :any,
1216
+ false,
1217
+ "document head ",
1218
+ HEAD_CONTENTS,
1219
+ nil,
1220
+ HEAD_ATTRS,
1221
+ [],
1222
+ [],
1223
+ ],
1224
+ [
1225
+ "hr",
1226
+ false,
1227
+ true,
1228
+ true,
1229
+ true,
1230
+ false,
1231
+ :any,
1232
+ false,
1233
+ "horizontal rule ",
1234
+ EMPTY,
1235
+ nil,
1236
+ HTML_ATTRS,
1237
+ HR_DEPR,
1238
+ [],
1239
+ ],
1240
+ [
1241
+ "html",
1242
+ true,
1243
+ true,
1244
+ false,
1245
+ false,
1246
+ false,
1247
+ :any,
1248
+ false,
1249
+ "document root element ",
1250
+ HTML_CONTENT,
1251
+ nil,
1252
+ I18N_ATTRS,
1253
+ VERSION_ATTR,
1254
+ [],
1255
+ ],
1256
+ [
1257
+ "i",
1258
+ false,
1259
+ true,
1260
+ false,
1261
+ false,
1262
+ false,
1263
+ :any,
1264
+ true,
1265
+ "italic text style",
1266
+ HTML_INLINE,
1267
+ nil,
1268
+ HTML_ATTRS,
1269
+ [],
1270
+ [],
1271
+ ],
1272
+ [
1273
+ "iframe",
1274
+ false,
1275
+ false,
1276
+ false,
1277
+ false,
1278
+ false,
1279
+ :any,
1280
+ true,
1281
+ "inline subwindow ",
1282
+ HTML_FLOW,
1283
+ nil,
1284
+ [],
1285
+ IFRAME_ATTRS,
1286
+ [],
1287
+ ],
1288
+ [
1289
+ "img",
1290
+ false,
1291
+ true,
1292
+ true,
1293
+ true,
1294
+ false,
1295
+ :any,
1296
+ true,
1297
+ "embedded image ",
1298
+ EMPTY,
1299
+ nil,
1300
+ IMG_ATTRS,
1301
+ ALIGN_ATTR,
1302
+ SRC_ALT_ATTRS,
1303
+ ],
1304
+ [
1305
+ "input",
1306
+ false,
1307
+ true,
1308
+ true,
1309
+ true,
1310
+ false,
1311
+ :any,
1312
+ true,
1313
+ "form control ",
1314
+ EMPTY,
1315
+ nil,
1316
+ INPUT_ATTRS,
1317
+ ALIGN_ATTR,
1318
+ [],
1319
+ ],
1320
+ [
1321
+ "ins",
1322
+ false,
1323
+ false,
1324
+ false,
1325
+ false,
1326
+ false,
1327
+ :any,
1328
+ true,
1329
+ "inserted text",
1330
+ HTML_FLOW,
1331
+ nil,
1332
+ EDIT_ATTRS,
1333
+ [],
1334
+ [],
1335
+ ],
1336
+ [
1337
+ "isindex",
1338
+ false,
1339
+ true,
1340
+ true,
1341
+ true,
1342
+ true,
1343
+ :loose,
1344
+ false,
1345
+ "single line prompt ",
1346
+ EMPTY,
1347
+ nil,
1348
+ [],
1349
+ PROMPT_ATTRS,
1350
+ [],
1351
+ ],
1352
+ [
1353
+ "kbd",
1354
+ false,
1355
+ false,
1356
+ false,
1357
+ false,
1358
+ false,
1359
+ :any,
1360
+ true,
1361
+ "text to be entered by the user",
1362
+ HTML_INLINE,
1363
+ nil,
1364
+ HTML_ATTRS,
1365
+ [],
1366
+ [],
1367
+ ],
1368
+ [
1369
+ "label",
1370
+ false,
1371
+ false,
1372
+ false,
1373
+ false,
1374
+ false,
1375
+ :any,
1376
+ true,
1377
+ "form field label text ",
1378
+ [HTML_INLINE, MODIFIER],
1379
+ nil,
1380
+ LABEL_ATTRS,
1381
+ [],
1382
+ [],
1383
+ ],
1384
+ [
1385
+ "legend",
1386
+ false,
1387
+ false,
1388
+ false,
1389
+ false,
1390
+ false,
1391
+ :any,
1392
+ false,
1393
+ "fieldset legend ",
1394
+ HTML_INLINE,
1395
+ nil,
1396
+ LEGEND_ATTRS,
1397
+ ALIGN_ATTR,
1398
+ [],
1399
+ ],
1400
+ [
1401
+ "li",
1402
+ false,
1403
+ true,
1404
+ true,
1405
+ false,
1406
+ false,
1407
+ :any,
1408
+ false,
1409
+ "list item ",
1410
+ HTML_FLOW,
1411
+ nil,
1412
+ HTML_ATTRS,
1413
+ [],
1414
+ [],
1415
+ ],
1416
+ [
1417
+ "link",
1418
+ false,
1419
+ true,
1420
+ true,
1421
+ true,
1422
+ false,
1423
+ :any,
1424
+ false,
1425
+ "a media-independent link ",
1426
+ EMPTY,
1427
+ nil,
1428
+ LINK_ATTRS,
1429
+ TARGET_ATTR,
1430
+ [],
1431
+ ],
1432
+ [
1433
+ "map",
1434
+ false,
1435
+ false,
1436
+ false,
1437
+ false,
1438
+ false,
1439
+ :any,
1440
+ true,
1441
+ "client-side image map ",
1442
+ MAP_CONTENTS,
1443
+ nil,
1444
+ HTML_ATTRS,
1445
+ [],
1446
+ NAME_ATTR,
1447
+ ],
1448
+ [
1449
+ "menu",
1450
+ false,
1451
+ false,
1452
+ false,
1453
+ false,
1454
+ true,
1455
+ :loose,
1456
+ false,
1457
+ "menu list ",
1458
+ BLOCKLI_ELT,
1459
+ nil,
1460
+ [],
1461
+ COMPACT_ATTRS,
1462
+ [],
1463
+ ],
1464
+ [
1465
+ "meta",
1466
+ false,
1467
+ true,
1468
+ true,
1469
+ true,
1470
+ false,
1471
+ :any,
1472
+ false,
1473
+ "generic metainformation ",
1474
+ EMPTY,
1475
+ nil,
1476
+ META_ATTRS,
1477
+ [],
1478
+ CONTENT_ATTR,
1479
+ ],
1480
+ [
1481
+ "noframes",
1482
+ false,
1483
+ false,
1484
+ false,
1485
+ false,
1486
+ false,
1487
+ :frameset,
1488
+ false,
1489
+ "alternate content container for non frame-based rendering ",
1490
+ NOFRAMES_CONTENT,
1491
+ "body",
1492
+ HTML_ATTRS,
1493
+ [],
1494
+ [],
1495
+ ],
1496
+ [
1497
+ "noscript",
1498
+ false,
1499
+ false,
1500
+ false,
1501
+ false,
1502
+ false,
1503
+ :any,
1504
+ false,
1505
+ "alternate content container for non script-based rendering ",
1506
+ HTML_FLOW,
1507
+ "div",
1508
+ HTML_ATTRS,
1509
+ [],
1510
+ [],
1511
+ ],
1512
+ [
1513
+ "object",
1514
+ false,
1515
+ false,
1516
+ false,
1517
+ false,
1518
+ false,
1519
+ :any,
1520
+ true,
1521
+ "generic embedded object ",
1522
+ OBJECT_CONTENTS,
1523
+ "div",
1524
+ OBJECT_ATTRS,
1525
+ OBJECT_DEPR,
1526
+ [],
1527
+ ],
1528
+ [
1529
+ "ol",
1530
+ false,
1531
+ false,
1532
+ false,
1533
+ false,
1534
+ false,
1535
+ :any,
1536
+ false,
1537
+ "ordered list ",
1538
+ LI_ELT,
1539
+ "li",
1540
+ HTML_ATTRS,
1541
+ OL_ATTRS,
1542
+ [],
1543
+ ],
1544
+ [
1545
+ "optgroup",
1546
+ false,
1547
+ false,
1548
+ false,
1549
+ false,
1550
+ false,
1551
+ :any,
1552
+ false,
1553
+ "option group ",
1554
+ OPTION_ELT,
1555
+ "option",
1556
+ OPTGROUP_ATTRS,
1557
+ [],
1558
+ LABEL_ATTR,
1559
+ ],
1560
+ [
1561
+ "option",
1562
+ false,
1563
+ true,
1564
+ false,
1565
+ false,
1566
+ false,
1567
+ :any,
1568
+ false,
1569
+ "selectable choice ",
1570
+ HTML_PCDATA,
1571
+ nil,
1572
+ OPTION_ATTRS,
1573
+ [],
1574
+ [],
1575
+ ],
1576
+ [
1577
+ "p",
1578
+ false,
1579
+ true,
1580
+ false,
1581
+ false,
1582
+ false,
1583
+ :any,
1584
+ false,
1585
+ "paragraph ",
1586
+ HTML_INLINE,
1587
+ nil,
1588
+ HTML_ATTRS,
1589
+ ALIGN_ATTR,
1590
+ [],
1591
+ ],
1592
+ [
1593
+ "param",
1594
+ false,
1595
+ true,
1596
+ true,
1597
+ true,
1598
+ false,
1599
+ :any,
1600
+ false,
1601
+ "named property value ",
1602
+ EMPTY,
1603
+ nil,
1604
+ PARAM_ATTRS,
1605
+ [],
1606
+ NAME_ATTR,
1607
+ ],
1608
+ [
1609
+ "pre",
1610
+ false,
1611
+ false,
1612
+ false,
1613
+ false,
1614
+ false,
1615
+ :any,
1616
+ false,
1617
+ "preformatted text ",
1618
+ PRE_CONTENT,
1619
+ nil,
1620
+ HTML_ATTRS,
1621
+ WIDTH_ATTR,
1622
+ [],
1623
+ ],
1624
+ [
1625
+ "q",
1626
+ false,
1627
+ false,
1628
+ false,
1629
+ false,
1630
+ false,
1631
+ :any,
1632
+ true,
1633
+ "short inline quotation ",
1634
+ HTML_INLINE,
1635
+ nil,
1636
+ QUOTE_ATTRS,
1637
+ [],
1638
+ [],
1639
+ ],
1640
+ [
1641
+ "s",
1642
+ false,
1643
+ true,
1644
+ false,
1645
+ false,
1646
+ true,
1647
+ :loose,
1648
+ true,
1649
+ "strike-through text style",
1650
+ HTML_INLINE,
1651
+ nil,
1652
+ [],
1653
+ HTML_ATTRS,
1654
+ [],
1655
+ ],
1656
+ [
1657
+ "samp",
1658
+ false,
1659
+ false,
1660
+ false,
1661
+ false,
1662
+ false,
1663
+ :any,
1664
+ true,
1665
+ "sample program output, scripts, etc.",
1666
+ HTML_INLINE,
1667
+ nil,
1668
+ HTML_ATTRS,
1669
+ [],
1670
+ [],
1671
+ ],
1672
+ [
1673
+ "script",
1674
+ false,
1675
+ false,
1676
+ false,
1677
+ false,
1678
+ false,
1679
+ :any,
1680
+ true,
1681
+ "script statements ",
1682
+ HTML_CDATA,
1683
+ nil,
1684
+ SCRIPT_ATTRS,
1685
+ LANGUAGE_ATTR,
1686
+ TYPE_ATTR,
1687
+ ],
1688
+ [
1689
+ "select",
1690
+ false,
1691
+ false,
1692
+ false,
1693
+ false,
1694
+ false,
1695
+ :any,
1696
+ true,
1697
+ "option selector ",
1698
+ SELECT_CONTENT,
1699
+ nil,
1700
+ SELECT_ATTRS,
1701
+ [],
1702
+ [],
1703
+ ],
1704
+ [
1705
+ "small",
1706
+ false,
1707
+ true,
1708
+ false,
1709
+ false,
1710
+ false,
1711
+ :any,
1712
+ true,
1713
+ "small text style",
1714
+ HTML_INLINE,
1715
+ nil,
1716
+ HTML_ATTRS,
1717
+ [],
1718
+ [],
1719
+ ],
1720
+ [
1721
+ "span",
1722
+ false,
1723
+ false,
1724
+ false,
1725
+ false,
1726
+ false,
1727
+ :any,
1728
+ true,
1729
+ "generic language/style container ",
1730
+ HTML_INLINE,
1731
+ nil,
1732
+ HTML_ATTRS,
1733
+ [],
1734
+ [],
1735
+ ],
1736
+ [
1737
+ "strike",
1738
+ false,
1739
+ true,
1740
+ false,
1741
+ false,
1742
+ true,
1743
+ :loose,
1744
+ true,
1745
+ "strike-through text",
1746
+ HTML_INLINE,
1747
+ nil,
1748
+ [],
1749
+ HTML_ATTRS,
1750
+ [],
1751
+ ],
1752
+ [
1753
+ "strong",
1754
+ false,
1755
+ true,
1756
+ false,
1757
+ false,
1758
+ false,
1759
+ :any,
1760
+ true,
1761
+ "strong emphasis",
1762
+ HTML_INLINE,
1763
+ nil,
1764
+ HTML_ATTRS,
1765
+ [],
1766
+ [],
1767
+ ],
1768
+ [
1769
+ "style",
1770
+ false,
1771
+ false,
1772
+ false,
1773
+ false,
1774
+ false,
1775
+ :any,
1776
+ false,
1777
+ "style info ",
1778
+ HTML_CDATA,
1779
+ nil,
1780
+ STYLE_ATTRS,
1781
+ [],
1782
+ TYPE_ATTR,
1783
+ ],
1784
+ [
1785
+ "sub",
1786
+ false,
1787
+ true,
1788
+ false,
1789
+ false,
1790
+ false,
1791
+ :any,
1792
+ true,
1793
+ "subscript",
1794
+ HTML_INLINE,
1795
+ nil,
1796
+ HTML_ATTRS,
1797
+ [],
1798
+ [],
1799
+ ],
1800
+ [
1801
+ "sup",
1802
+ false,
1803
+ true,
1804
+ false,
1805
+ false,
1806
+ false,
1807
+ :any,
1808
+ true,
1809
+ "superscript ",
1810
+ HTML_INLINE,
1811
+ nil,
1812
+ HTML_ATTRS,
1813
+ [],
1814
+ [],
1815
+ ],
1816
+ [
1817
+ "table",
1818
+ false,
1819
+ false,
1820
+ false,
1821
+ false,
1822
+ false,
1823
+ :any,
1824
+ false,
1825
+ "",
1826
+ TABLE_CONTENTS,
1827
+ "tr",
1828
+ TABLE_ATTRS,
1829
+ TABLE_DEPR,
1830
+ [],
1831
+ ],
1832
+ [
1833
+ "tbody",
1834
+ true,
1835
+ false,
1836
+ false,
1837
+ false,
1838
+ false,
1839
+ :any,
1840
+ false,
1841
+ "table body ",
1842
+ TR_ELT,
1843
+ "tr",
1844
+ TALIGN_ATTRS,
1845
+ [],
1846
+ [],
1847
+ ],
1848
+ [
1849
+ "td",
1850
+ false,
1851
+ false,
1852
+ false,
1853
+ false,
1854
+ false,
1855
+ :any,
1856
+ false,
1857
+ "table data cell",
1858
+ HTML_FLOW,
1859
+ nil,
1860
+ TH_TD_ATTR,
1861
+ TH_TD_DEPR,
1862
+ [],
1863
+ ],
1864
+ [
1865
+ "textarea",
1866
+ false,
1867
+ false,
1868
+ false,
1869
+ false,
1870
+ false,
1871
+ :any,
1872
+ true,
1873
+ "multi-line text field ",
1874
+ HTML_PCDATA,
1875
+ nil,
1876
+ TEXTAREA_ATTRS,
1877
+ [],
1878
+ ROWS_COLS_ATTR,
1879
+ ],
1880
+ [
1881
+ "tfoot",
1882
+ false,
1883
+ true,
1884
+ false,
1885
+ false,
1886
+ false,
1887
+ :any,
1888
+ false,
1889
+ "table footer ",
1890
+ TR_ELT,
1891
+ "tr",
1892
+ TALIGN_ATTRS,
1893
+ [],
1894
+ [],
1895
+ ],
1896
+ [
1897
+ "th",
1898
+ false,
1899
+ true,
1900
+ false,
1901
+ false,
1902
+ false,
1903
+ :any,
1904
+ false,
1905
+ "table header cell",
1906
+ HTML_FLOW,
1907
+ nil,
1908
+ TH_TD_ATTR,
1909
+ TH_TD_DEPR,
1910
+ [],
1911
+ ],
1912
+ [
1913
+ "thead",
1914
+ false,
1915
+ true,
1916
+ false,
1917
+ false,
1918
+ false,
1919
+ :any,
1920
+ false,
1921
+ "table header ",
1922
+ TR_ELT,
1923
+ "tr",
1924
+ TALIGN_ATTRS,
1925
+ [],
1926
+ [],
1927
+ ],
1928
+ [
1929
+ "title",
1930
+ false,
1931
+ false,
1932
+ false,
1933
+ false,
1934
+ false,
1935
+ :any,
1936
+ false,
1937
+ "document title ",
1938
+ HTML_PCDATA,
1939
+ nil,
1940
+ I18N_ATTRS,
1941
+ [],
1942
+ [],
1943
+ ],
1944
+ [
1945
+ "tr",
1946
+ false,
1947
+ false,
1948
+ false,
1949
+ false,
1950
+ false,
1951
+ :any,
1952
+ false,
1953
+ "table row ",
1954
+ TR_CONTENTS,
1955
+ "td",
1956
+ TALIGN_ATTRS,
1957
+ BGCOLOR_ATTR,
1958
+ [],
1959
+ ],
1960
+ [
1961
+ "tt",
1962
+ false,
1963
+ true,
1964
+ false,
1965
+ false,
1966
+ false,
1967
+ :any,
1968
+ true,
1969
+ "teletype or monospaced text style",
1970
+ HTML_INLINE,
1971
+ nil,
1972
+ HTML_ATTRS,
1973
+ [],
1974
+ [],
1975
+ ],
1976
+ [
1977
+ "u",
1978
+ false,
1979
+ true,
1980
+ false,
1981
+ false,
1982
+ true,
1983
+ :loose,
1984
+ true,
1985
+ "underlined text style",
1986
+ HTML_INLINE,
1987
+ nil,
1988
+ [],
1989
+ HTML_ATTRS,
1990
+ [],
1991
+ ],
1992
+ [
1993
+ "ul",
1994
+ false,
1995
+ false,
1996
+ false,
1997
+ false,
1998
+ false,
1999
+ :any,
2000
+ false,
2001
+ "unordered list ",
2002
+ LI_ELT,
2003
+ "li",
2004
+ HTML_ATTRS,
2005
+ UL_DEPR,
2006
+ [],
2007
+ ],
2008
+ [
2009
+ "var",
2010
+ false,
2011
+ false,
2012
+ false,
2013
+ false,
2014
+ false,
2015
+ :any,
2016
+ true,
2017
+ "instance of a variable or program argument",
2018
+ HTML_INLINE,
2019
+ nil,
2020
+ HTML_ATTRS,
2021
+ [],
2022
+ [],
2023
+ ],
2024
+ ].each do |descriptor|
2025
+ name = descriptor[0]
2026
+
2027
+ d = Desc.new(*descriptor)
2028
+
2029
+ # flatten all the attribute lists (Ruby1.9, *[a,b,c] can be
2030
+ # used to flatten a literal list, but not in Ruby1.8).
2031
+ d[:subelts] = d[:subelts].flatten
2032
+ d[:attrs_opt] = d[:attrs_opt].flatten
2033
+ d[:attrs_depr] = d[:attrs_depr].flatten
2034
+ d[:attrs_req] = d[:attrs_req].flatten
2035
+
2036
+ DefaultDescriptions[name] = d
2037
+ end
2038
+ end
2039
+ end
2040
+ end