nokogiri 1.6.8.1 → 1.13.4

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 (354) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +3 -20
  3. data/LICENSE-DEPENDENCIES.md +1903 -0
  4. data/LICENSE.md +9 -0
  5. data/README.md +197 -83
  6. data/bin/nokogiri +63 -50
  7. data/dependencies.yml +16 -22
  8. data/ext/nokogiri/depend +38 -358
  9. data/ext/nokogiri/extconf.rb +751 -432
  10. data/ext/nokogiri/gumbo.c +584 -0
  11. data/ext/nokogiri/html4_document.c +166 -0
  12. data/ext/nokogiri/html4_element_description.c +294 -0
  13. data/ext/nokogiri/html4_entity_lookup.c +37 -0
  14. data/ext/nokogiri/html4_sax_parser_context.c +120 -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 +228 -95
  18. data/ext/nokogiri/nokogiri.h +190 -98
  19. data/ext/nokogiri/test_global_handlers.c +40 -0
  20. data/ext/nokogiri/xml_attr.c +49 -40
  21. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  22. data/ext/nokogiri/xml_cdata.c +24 -23
  23. data/ext/nokogiri/xml_comment.c +19 -26
  24. data/ext/nokogiri/xml_document.c +291 -217
  25. data/ext/nokogiri/xml_document_fragment.c +12 -16
  26. data/ext/nokogiri/xml_dtd.c +56 -50
  27. data/ext/nokogiri/xml_element_content.c +31 -26
  28. data/ext/nokogiri/xml_element_decl.c +22 -22
  29. data/ext/nokogiri/xml_encoding_handler.c +43 -18
  30. data/ext/nokogiri/xml_entity_decl.c +32 -30
  31. data/ext/nokogiri/xml_entity_reference.c +16 -18
  32. data/ext/nokogiri/xml_namespace.c +61 -58
  33. data/ext/nokogiri/xml_node.c +1194 -729
  34. data/ext/nokogiri/xml_node_set.c +178 -165
  35. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  36. data/ext/nokogiri/xml_reader.c +226 -175
  37. data/ext/nokogiri/xml_relax_ng.c +52 -28
  38. data/ext/nokogiri/xml_sax_parser.c +115 -114
  39. data/ext/nokogiri/xml_sax_parser_context.c +105 -86
  40. data/ext/nokogiri/xml_sax_push_parser.c +88 -35
  41. data/ext/nokogiri/xml_schema.c +112 -33
  42. data/ext/nokogiri/xml_syntax_error.c +42 -21
  43. data/ext/nokogiri/xml_text.c +13 -17
  44. data/ext/nokogiri/xml_xpath_context.c +223 -115
  45. data/ext/nokogiri/xslt_stylesheet.c +265 -173
  46. data/gumbo-parser/CHANGES.md +63 -0
  47. data/gumbo-parser/Makefile +101 -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 +626 -0
  59. data/gumbo-parser/src/error.h +148 -0
  60. data/gumbo-parser/src/foreign_attrs.c +104 -0
  61. data/gumbo-parser/src/foreign_attrs.gperf +27 -0
  62. data/gumbo-parser/src/gumbo.h +943 -0
  63. data/gumbo-parser/src/insertion_mode.h +33 -0
  64. data/gumbo-parser/src/macros.h +91 -0
  65. data/gumbo-parser/src/parser.c +4875 -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 +222 -0
  76. data/gumbo-parser/src/tag_lookup.c +382 -0
  77. data/gumbo-parser/src/tag_lookup.gperf +169 -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 +68 -0
  88. data/gumbo-parser/src/util.h +30 -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 +410 -372
  94. data/lib/nokogiri/css/parser.y +260 -244
  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 +7 -6
  99. data/lib/nokogiri/css/xpath_visitor.rb +226 -92
  100. data/lib/nokogiri/css.rb +50 -17
  101. data/lib/nokogiri/decorators/slop.rb +9 -7
  102. data/lib/nokogiri/extension.rb +31 -0
  103. data/lib/nokogiri/gumbo.rb +15 -0
  104. data/lib/nokogiri/html.rb +38 -27
  105. data/lib/nokogiri/{html → html4}/builder.rb +4 -2
  106. data/lib/nokogiri/{html → html4}/document.rb +104 -106
  107. data/lib/nokogiri/html4/document_fragment.rb +54 -0
  108. data/lib/nokogiri/{html → html4}/element_description.rb +3 -1
  109. data/lib/nokogiri/html4/element_description_defaults.rb +578 -0
  110. data/lib/nokogiri/{html → html4}/entity_lookup.rb +4 -2
  111. data/lib/nokogiri/{html → html4}/sax/parser.rb +24 -13
  112. data/lib/nokogiri/html4/sax/parser_context.rb +20 -0
  113. data/lib/nokogiri/{html → html4}/sax/push_parser.rb +12 -11
  114. data/lib/nokogiri/html4.rb +46 -0
  115. data/lib/nokogiri/html5/document.rb +91 -0
  116. data/lib/nokogiri/html5/document_fragment.rb +83 -0
  117. data/lib/nokogiri/html5/node.rb +100 -0
  118. data/lib/nokogiri/html5.rb +478 -0
  119. data/lib/nokogiri/jruby/dependencies.rb +21 -0
  120. data/lib/nokogiri/syntax_error.rb +2 -0
  121. data/lib/nokogiri/version/constant.rb +6 -0
  122. data/lib/nokogiri/version/info.rb +222 -0
  123. data/lib/nokogiri/version.rb +3 -107
  124. data/lib/nokogiri/xml/attr.rb +6 -3
  125. data/lib/nokogiri/xml/attribute_decl.rb +3 -1
  126. data/lib/nokogiri/xml/builder.rb +97 -53
  127. data/lib/nokogiri/xml/cdata.rb +3 -1
  128. data/lib/nokogiri/xml/character_data.rb +2 -0
  129. data/lib/nokogiri/xml/document.rb +231 -93
  130. data/lib/nokogiri/xml/document_fragment.rb +57 -44
  131. data/lib/nokogiri/xml/dtd.rb +4 -2
  132. data/lib/nokogiri/xml/element_content.rb +2 -0
  133. data/lib/nokogiri/xml/element_decl.rb +3 -1
  134. data/lib/nokogiri/xml/entity_decl.rb +4 -2
  135. data/lib/nokogiri/xml/entity_reference.rb +20 -0
  136. data/lib/nokogiri/xml/namespace.rb +3 -0
  137. data/lib/nokogiri/xml/node/save_options.rb +10 -5
  138. data/lib/nokogiri/xml/node.rb +911 -337
  139. data/lib/nokogiri/xml/node_set.rb +141 -84
  140. data/lib/nokogiri/xml/notation.rb +13 -0
  141. data/lib/nokogiri/xml/parse_options.rb +23 -9
  142. data/lib/nokogiri/xml/pp/character_data.rb +9 -6
  143. data/lib/nokogiri/xml/pp/node.rb +25 -26
  144. data/lib/nokogiri/xml/pp.rb +4 -2
  145. data/lib/nokogiri/xml/processing_instruction.rb +3 -1
  146. data/lib/nokogiri/xml/reader.rb +23 -28
  147. data/lib/nokogiri/xml/relax_ng.rb +8 -2
  148. data/lib/nokogiri/xml/sax/document.rb +45 -49
  149. data/lib/nokogiri/xml/sax/parser.rb +43 -40
  150. data/lib/nokogiri/xml/sax/parser_context.rb +8 -3
  151. data/lib/nokogiri/xml/sax/push_parser.rb +6 -5
  152. data/lib/nokogiri/xml/sax.rb +6 -4
  153. data/lib/nokogiri/xml/schema.rb +19 -9
  154. data/lib/nokogiri/xml/searchable.rb +138 -89
  155. data/lib/nokogiri/xml/syntax_error.rb +26 -1
  156. data/lib/nokogiri/xml/text.rb +2 -0
  157. data/lib/nokogiri/xml/xpath/syntax_error.rb +4 -2
  158. data/lib/nokogiri/xml/xpath.rb +15 -4
  159. data/lib/nokogiri/xml/xpath_context.rb +3 -3
  160. data/lib/nokogiri/xml.rb +39 -37
  161. data/lib/nokogiri/xslt/stylesheet.rb +3 -1
  162. data/lib/nokogiri/xslt.rb +29 -20
  163. data/lib/nokogiri.rb +49 -65
  164. data/lib/xsd/xmlparser/nokogiri.rb +26 -24
  165. data/patches/libxml2/0001-Remove-script-macro-support.patch +40 -0
  166. data/patches/libxml2/0002-Update-entities-to-remove-handling-of-ssi.patch +44 -0
  167. data/patches/libxml2/0003-libxml2.la-is-in-top_builddir.patch +25 -0
  168. data/patches/libxml2/0004-use-glibc-strlen.patch +53 -0
  169. data/patches/libxml2/0005-avoid-isnan-isinf.patch +81 -0
  170. data/patches/libxml2/0006-update-automake-files-for-arm64.patch +3040 -0
  171. data/patches/libxml2/0008-htmlParseComment-handle-abruptly-closed-comments.patch +61 -0
  172. data/patches/libxml2/0009-allow-wildcard-namespaces.patch +77 -0
  173. data/patches/libxml2/0010-Revert-Different-approach-to-fix-quadratic-behavior.patch +45 -0
  174. data/patches/libxslt/0001-update-automake-files-for-arm64.patch +3037 -0
  175. data/ports/archives/libxml2-2.9.13.tar.xz +0 -0
  176. data/ports/archives/libxslt-1.1.35.tar.xz +0 -0
  177. metadata +233 -258
  178. data/.autotest +0 -26
  179. data/.cross_rubies +0 -9
  180. data/.editorconfig +0 -17
  181. data/.gemtest +0 -0
  182. data/.travis.yml +0 -51
  183. data/CHANGELOG.rdoc +0 -1160
  184. data/CONTRIBUTING.md +0 -42
  185. data/C_CODING_STYLE.rdoc +0 -33
  186. data/LICENSE.txt +0 -31
  187. data/Manifest.txt +0 -364
  188. data/ROADMAP.md +0 -111
  189. data/Rakefile +0 -375
  190. data/STANDARD_RESPONSES.md +0 -47
  191. data/Y_U_NO_GEMSPEC.md +0 -155
  192. data/appveyor.yml +0 -22
  193. data/build_all +0 -45
  194. data/ext/nokogiri/html_document.c +0 -170
  195. data/ext/nokogiri/html_document.h +0 -10
  196. data/ext/nokogiri/html_element_description.c +0 -279
  197. data/ext/nokogiri/html_element_description.h +0 -10
  198. data/ext/nokogiri/html_entity_lookup.c +0 -32
  199. data/ext/nokogiri/html_entity_lookup.h +0 -8
  200. data/ext/nokogiri/html_sax_parser_context.c +0 -116
  201. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  202. data/ext/nokogiri/html_sax_push_parser.c +0 -87
  203. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  204. data/ext/nokogiri/xml_attr.h +0 -9
  205. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  206. data/ext/nokogiri/xml_cdata.h +0 -9
  207. data/ext/nokogiri/xml_comment.h +0 -9
  208. data/ext/nokogiri/xml_document.h +0 -23
  209. data/ext/nokogiri/xml_document_fragment.h +0 -10
  210. data/ext/nokogiri/xml_dtd.h +0 -10
  211. data/ext/nokogiri/xml_element_content.h +0 -10
  212. data/ext/nokogiri/xml_element_decl.h +0 -9
  213. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  214. data/ext/nokogiri/xml_entity_decl.h +0 -10
  215. data/ext/nokogiri/xml_entity_reference.h +0 -9
  216. data/ext/nokogiri/xml_io.c +0 -60
  217. data/ext/nokogiri/xml_io.h +0 -11
  218. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  219. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  220. data/ext/nokogiri/xml_namespace.h +0 -13
  221. data/ext/nokogiri/xml_node.h +0 -13
  222. data/ext/nokogiri/xml_node_set.h +0 -13
  223. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  224. data/ext/nokogiri/xml_reader.h +0 -10
  225. data/ext/nokogiri/xml_relax_ng.h +0 -9
  226. data/ext/nokogiri/xml_sax_parser.h +0 -39
  227. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  228. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  229. data/ext/nokogiri/xml_schema.h +0 -9
  230. data/ext/nokogiri/xml_syntax_error.h +0 -13
  231. data/ext/nokogiri/xml_text.h +0 -9
  232. data/ext/nokogiri/xml_xpath_context.h +0 -10
  233. data/ext/nokogiri/xslt_stylesheet.h +0 -14
  234. data/lib/nokogiri/html/document_fragment.rb +0 -39
  235. data/lib/nokogiri/html/element_description_defaults.rb +0 -671
  236. data/lib/nokogiri/html/sax/parser_context.rb +0 -16
  237. data/patches/sort-patches-by-date +0 -25
  238. data/ports/archives/libxml2-2.9.4.tar.gz +0 -0
  239. data/ports/archives/libxslt-1.1.29.tar.gz +0 -0
  240. data/suppressions/README.txt +0 -1
  241. data/suppressions/nokogiri_ree-1.8.7.358.supp +0 -61
  242. data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
  243. data/suppressions/nokogiri_ruby-1.9.2.320.supp +0 -28
  244. data/suppressions/nokogiri_ruby-1.9.3.327.supp +0 -28
  245. data/tasks/test.rb +0 -100
  246. data/test/css/test_nthiness.rb +0 -226
  247. data/test/css/test_parser.rb +0 -369
  248. data/test/css/test_tokenizer.rb +0 -215
  249. data/test/css/test_xpath_visitor.rb +0 -96
  250. data/test/decorators/test_slop.rb +0 -20
  251. data/test/files/2ch.html +0 -108
  252. data/test/files/GH_1042.html +0 -18
  253. data/test/files/address_book.rlx +0 -12
  254. data/test/files/address_book.xml +0 -10
  255. data/test/files/atom.xml +0 -344
  256. data/test/files/bar/bar.xsd +0 -4
  257. data/test/files/bogus.xml +0 -0
  258. data/test/files/dont_hurt_em_why.xml +0 -422
  259. data/test/files/encoding.html +0 -82
  260. data/test/files/encoding.xhtml +0 -84
  261. data/test/files/exslt.xml +0 -8
  262. data/test/files/exslt.xslt +0 -35
  263. data/test/files/foo/foo.xsd +0 -4
  264. data/test/files/metacharset.html +0 -10
  265. data/test/files/namespace_pressure_test.xml +0 -1684
  266. data/test/files/noencoding.html +0 -47
  267. data/test/files/po.xml +0 -32
  268. data/test/files/po.xsd +0 -66
  269. data/test/files/saml/saml20assertion_schema.xsd +0 -283
  270. data/test/files/saml/saml20protocol_schema.xsd +0 -302
  271. data/test/files/saml/xenc_schema.xsd +0 -146
  272. data/test/files/saml/xmldsig_schema.xsd +0 -318
  273. data/test/files/shift_jis.html +0 -10
  274. data/test/files/shift_jis.xml +0 -5
  275. data/test/files/shift_jis_no_charset.html +0 -9
  276. data/test/files/slow-xpath.xml +0 -25509
  277. data/test/files/snuggles.xml +0 -3
  278. data/test/files/staff.dtd +0 -10
  279. data/test/files/staff.xml +0 -59
  280. data/test/files/staff.xslt +0 -32
  281. data/test/files/test_document_url/bar.xml +0 -2
  282. data/test/files/test_document_url/document.dtd +0 -4
  283. data/test/files/test_document_url/document.xml +0 -6
  284. data/test/files/tlm.html +0 -851
  285. data/test/files/to_be_xincluded.xml +0 -2
  286. data/test/files/valid_bar.xml +0 -2
  287. data/test/files/xinclude.xml +0 -4
  288. data/test/helper.rb +0 -181
  289. data/test/html/sax/test_parser.rb +0 -141
  290. data/test/html/sax/test_parser_context.rb +0 -46
  291. data/test/html/sax/test_push_parser.rb +0 -87
  292. data/test/html/test_builder.rb +0 -164
  293. data/test/html/test_document.rb +0 -701
  294. data/test/html/test_document_encoding.rb +0 -145
  295. data/test/html/test_document_fragment.rb +0 -301
  296. data/test/html/test_element_description.rb +0 -105
  297. data/test/html/test_named_characters.rb +0 -14
  298. data/test/html/test_node.rb +0 -212
  299. data/test/html/test_node_encoding.rb +0 -85
  300. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +0 -14
  301. data/test/namespaces/test_namespaces_aliased_default.rb +0 -24
  302. data/test/namespaces/test_namespaces_in_builder_doc.rb +0 -75
  303. data/test/namespaces/test_namespaces_in_cloned_doc.rb +0 -31
  304. data/test/namespaces/test_namespaces_in_created_doc.rb +0 -75
  305. data/test/namespaces/test_namespaces_in_parsed_doc.rb +0 -80
  306. data/test/namespaces/test_namespaces_preservation.rb +0 -31
  307. data/test/test_convert_xpath.rb +0 -135
  308. data/test/test_css_cache.rb +0 -45
  309. data/test/test_encoding_handler.rb +0 -48
  310. data/test/test_memory_leak.rb +0 -156
  311. data/test/test_nokogiri.rb +0 -138
  312. data/test/test_soap4r_sax.rb +0 -52
  313. data/test/test_xslt_transforms.rb +0 -314
  314. data/test/xml/node/test_save_options.rb +0 -28
  315. data/test/xml/node/test_subclass.rb +0 -44
  316. data/test/xml/sax/test_parser.rb +0 -394
  317. data/test/xml/sax/test_parser_context.rb +0 -115
  318. data/test/xml/sax/test_push_parser.rb +0 -157
  319. data/test/xml/test_attr.rb +0 -67
  320. data/test/xml/test_attribute_decl.rb +0 -86
  321. data/test/xml/test_builder.rb +0 -341
  322. data/test/xml/test_c14n.rb +0 -180
  323. data/test/xml/test_cdata.rb +0 -48
  324. data/test/xml/test_comment.rb +0 -40
  325. data/test/xml/test_document.rb +0 -982
  326. data/test/xml/test_document_encoding.rb +0 -31
  327. data/test/xml/test_document_fragment.rb +0 -271
  328. data/test/xml/test_dtd.rb +0 -187
  329. data/test/xml/test_dtd_encoding.rb +0 -31
  330. data/test/xml/test_element_content.rb +0 -56
  331. data/test/xml/test_element_decl.rb +0 -73
  332. data/test/xml/test_entity_decl.rb +0 -122
  333. data/test/xml/test_entity_reference.rb +0 -251
  334. data/test/xml/test_namespace.rb +0 -96
  335. data/test/xml/test_node.rb +0 -1244
  336. data/test/xml/test_node_attributes.rb +0 -115
  337. data/test/xml/test_node_encoding.rb +0 -69
  338. data/test/xml/test_node_inheritance.rb +0 -32
  339. data/test/xml/test_node_reparenting.rb +0 -549
  340. data/test/xml/test_node_set.rb +0 -775
  341. data/test/xml/test_parse_options.rb +0 -64
  342. data/test/xml/test_processing_instruction.rb +0 -30
  343. data/test/xml/test_reader.rb +0 -589
  344. data/test/xml/test_reader_encoding.rb +0 -134
  345. data/test/xml/test_relax_ng.rb +0 -60
  346. data/test/xml/test_schema.rb +0 -142
  347. data/test/xml/test_syntax_error.rb +0 -30
  348. data/test/xml/test_text.rb +0 -60
  349. data/test/xml/test_unparented_node.rb +0 -440
  350. data/test/xml/test_xinclude.rb +0 -83
  351. data/test/xml/test_xpath.rb +0 -445
  352. data/test/xslt/test_custom_functions.rb +0 -133
  353. data/test/xslt/test_exception_handling.rb +0 -37
  354. data/test_all +0 -107
@@ -1,671 +0,0 @@
1
- module Nokogiri
2
- module HTML
3
- class ElementDescription
4
-
5
- # Methods are defined protected by method_defined? because at
6
- # this point the C-library or Java library is already loaded,
7
- # and we don't want to clobber any methods that have been
8
- # defined there.
9
-
10
- Desc = Struct.new("HTMLElementDescription", :name,
11
- :startTag, :endTag, :saveEndTag,
12
- :empty, :depr, :dtd, :isinline,
13
- :desc,
14
- :subelts, :defaultsubelt,
15
- :attrs_opt, :attrs_depr, :attrs_req)
16
-
17
- # This is filled in down below.
18
- DefaultDescriptions = Hash.new()
19
-
20
- def default_desc
21
- DefaultDescriptions[name.downcase]
22
- end
23
- private :default_desc
24
-
25
- unless method_defined? :implied_start_tag?
26
- def implied_start_tag?
27
- d = default_desc
28
- d ? d.startTag : nil
29
- end
30
- end
31
-
32
- unless method_defined? :implied_end_tag?
33
- def implied_end_tag?
34
- d = default_desc
35
- d ? d.endTag : nil
36
- end
37
- end
38
-
39
- unless method_defined? :save_end_tag?
40
- def save_end_tag?
41
- d = default_desc
42
- d ? d.saveEndTag : nil
43
- end
44
- end
45
-
46
- unless method_defined? :deprecated?
47
- def deprecated?
48
- d = default_desc
49
- d ? d.depr : nil
50
- end
51
- end
52
-
53
- unless method_defined? :description
54
- def description
55
- d = default_desc
56
- d ? d.desc : nil
57
- end
58
- end
59
-
60
- unless method_defined? :default_sub_element
61
- def default_sub_element
62
- d = default_desc
63
- d ? d.defaultsubelt : nil
64
- end
65
- end
66
-
67
- unless method_defined? :optional_attributes
68
- def optional_attributes
69
- d = default_desc
70
- d ? d.attrs_opt : []
71
- end
72
- end
73
-
74
- unless method_defined? :deprecated_attributes
75
- def deprecated_attributes
76
- d = default_desc
77
- d ? d.attrs_depr : []
78
- end
79
- end
80
-
81
- unless method_defined? :required_attributes
82
- def required_attributes
83
- d = default_desc
84
- d ? d.attrs_req : []
85
- end
86
- end
87
-
88
- ###
89
- # Default Element Descriptions (HTML 4.0) copied from
90
- # libxml2/HTMLparser.c and libxml2/include/libxml/HTMLparser.h
91
- #
92
- # The copyright notice for those files and the following list of
93
- # element and attribute descriptions is reproduced here:
94
- #
95
- # Except where otherwise noted in the source code (e.g. the
96
- # files hash.c, list.c and the trio files, which are covered by
97
- # a similar licence but with different Copyright notices) all
98
- # the files are:
99
- #
100
- # Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved.
101
- #
102
- # Permission is hereby granted, free of charge, to any person
103
- # obtaining a copy of this software and associated documentation
104
- # files (the "Software"), to deal in the Software without
105
- # restriction, including without limitation the rights to use,
106
- # copy, modify, merge, publish, distribute, sublicense, and/or
107
- # sell copies of the Software, and to permit persons to whom the
108
- # Software is fur- nished to do so, subject to the following
109
- # conditions:
110
-
111
- # The above copyright notice and this permission notice shall be
112
- # included in all copies or substantial portions of the
113
- # Software.
114
-
115
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
116
- # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
117
- # WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR
118
- # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL
119
- # VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
120
- # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
121
- # FROM, OUT OF OR IN CON- NECTION WITH THE SOFTWARE OR THE USE
122
- # OR OTHER DEALINGS IN THE SOFTWARE.
123
-
124
- # Except as contained in this notice, the name of Daniel
125
- # Veillard shall not be used in advertising or otherwise to
126
- # promote the sale, use or other deal- ings in this Software
127
- # without prior written authorization from him.
128
-
129
- # Attributes defined and categorized
130
- FONTSTYLE = ["tt", "i", "b", "u", "s", "strike", "big", "small"]
131
- PHRASE = ['em', 'strong', 'dfn', 'code', 'samp',
132
- 'kbd', 'var', 'cite', 'abbr', 'acronym']
133
- SPECIAL = ['a', 'img', 'applet', 'embed', 'object', 'font','basefont',
134
- 'br', 'script', 'map', 'q', 'sub', 'sup', 'span', 'bdo',
135
- 'iframe']
136
- PCDATA = []
137
- HEADING = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
138
- LIST = ['ul', 'ol', 'dir', 'menu']
139
- FORMCTRL = ['input', 'select', 'textarea', 'label', 'button']
140
- BLOCK = [HEADING, LIST, 'pre', 'p', 'dl', 'div', 'center', 'noscript',
141
- 'noframes', 'blockquote', 'form', 'isindex', 'hr', 'table',
142
- 'fieldset', 'address']
143
- INLINE = [PCDATA, FONTSTYLE, PHRASE, SPECIAL, FORMCTRL]
144
- FLOW = [BLOCK, INLINE]
145
- MODIFIER = []
146
- EMPTY = []
147
-
148
- HTML_FLOW = FLOW
149
- HTML_INLINE = INLINE
150
- HTML_PCDATA = PCDATA
151
- HTML_CDATA = HTML_PCDATA
152
-
153
- COREATTRS = ['id', 'class', 'style', 'title']
154
- I18N = ['lang', 'dir']
155
- EVENTS = ['onclick', 'ondblclick', 'onmousedown', 'onmouseup',
156
- 'onmouseover', 'onmouseout', 'onkeypress', 'onkeydown',
157
- 'onkeyup']
158
- ATTRS = [COREATTRS, I18N,EVENTS]
159
- CELLHALIGN = ['align', 'char', 'charoff']
160
- CELLVALIGN = ['valign']
161
-
162
- HTML_ATTRS = ATTRS
163
- CORE_I18N_ATTRS = [COREATTRS, I18N]
164
- CORE_ATTRS = COREATTRS
165
- I18N_ATTRS = I18N
166
-
167
-
168
- A_ATTRS = [ATTRS, 'charset', 'type', 'name',
169
- 'href', 'hreflang', 'rel', 'rev', 'accesskey', 'shape',
170
- 'coords', 'tabindex', 'onfocus', 'onblur']
171
- TARGET_ATTR = ['target']
172
- ROWS_COLS_ATTR = ['rows', 'cols']
173
- ALT_ATTR = ['alt']
174
- SRC_ALT_ATTRS = ['src', 'alt']
175
- HREF_ATTRS = ['href']
176
- CLEAR_ATTRS = ['clear']
177
- INLINE_P = [INLINE, 'p']
178
-
179
- FLOW_PARAM = [FLOW, 'param']
180
- APPLET_ATTRS = [COREATTRS , 'codebase',
181
- 'archive', 'alt', 'name', 'height', 'width', 'align',
182
- 'hspace', 'vspace']
183
- AREA_ATTRS = ['shape', 'coords', 'href', 'nohref',
184
- 'tabindex', 'accesskey', 'onfocus', 'onblur']
185
- BASEFONT_ATTRS = ['id', 'size', 'color', 'face']
186
- QUOTE_ATTRS = [ATTRS, 'cite']
187
- BODY_CONTENTS = [FLOW, 'ins', 'del']
188
- BODY_ATTRS = [ATTRS, 'onload', 'onunload']
189
- BODY_DEPR = ['background', 'bgcolor', 'text',
190
- 'link', 'vlink', 'alink']
191
- BUTTON_ATTRS = [ATTRS, 'name', 'value', 'type',
192
- 'disabled', 'tabindex', 'accesskey', 'onfocus', 'onblur']
193
-
194
-
195
- COL_ATTRS = [ATTRS, 'span', 'width', CELLHALIGN, CELLVALIGN]
196
- COL_ELT = ['col']
197
- EDIT_ATTRS = [ATTRS, 'datetime', 'cite']
198
- COMPACT_ATTRS = [ATTRS, 'compact']
199
- DL_CONTENTS = ['dt', 'dd']
200
- COMPACT_ATTR = ['compact']
201
- LABEL_ATTR = ['label']
202
- FIELDSET_CONTENTS = [FLOW, 'legend' ]
203
- FONT_ATTRS = [COREATTRS, I18N, 'size', 'color', 'face' ]
204
- FORM_CONTENTS = [HEADING, LIST, INLINE, 'pre', 'p', 'div', 'center',
205
- 'noscript', 'noframes', 'blockquote', 'isindex', 'hr',
206
- 'table', 'fieldset', 'address']
207
- FORM_ATTRS = [ATTRS, 'method', 'enctype', 'accept', 'name', 'onsubmit',
208
- 'onreset', 'accept-charset']
209
- FRAME_ATTRS = [COREATTRS, 'longdesc', 'name', 'src', 'frameborder',
210
- 'marginwidth', 'marginheight', 'noresize', 'scrolling' ]
211
- FRAMESET_ATTRS = [COREATTRS, 'rows', 'cols', 'onload', 'onunload']
212
- FRAMESET_CONTENTS = ['frameset', 'frame', 'noframes']
213
- HEAD_ATTRS = [I18N, 'profile']
214
- HEAD_CONTENTS = ['title', 'isindex', 'base', 'script', 'style', 'meta',
215
- 'link', 'object']
216
- HR_DEPR = ['align', 'noshade', 'size', 'width']
217
- VERSION_ATTR = ['version']
218
- HTML_CONTENT = ['head', 'body', 'frameset']
219
- IFRAME_ATTRS = [COREATTRS, 'longdesc', 'name', 'src', 'frameborder',
220
- 'marginwidth', 'marginheight', 'scrolling', 'align',
221
- 'height', 'width']
222
- IMG_ATTRS = [ATTRS, 'longdesc', 'name', 'height', 'width', 'usemap',
223
- 'ismap']
224
- EMBED_ATTRS = [COREATTRS, 'align', 'alt', 'border', 'code', 'codebase',
225
- 'frameborder', 'height', 'hidden', 'hspace', 'name',
226
- 'palette', 'pluginspace', 'pluginurl', 'src', 'type',
227
- 'units', 'vspace', 'width']
228
- INPUT_ATTRS = [ATTRS, 'type', 'name', 'value', 'checked', 'disabled',
229
- 'readonly', 'size', 'maxlength', 'src', 'alt', 'usemap',
230
- 'ismap', 'tabindex', 'accesskey', 'onfocus', 'onblur',
231
- 'onselect', 'onchange', 'accept']
232
- PROMPT_ATTRS = [COREATTRS, I18N, 'prompt']
233
- LABEL_ATTRS = [ATTRS, 'for', 'accesskey', 'onfocus', 'onblur']
234
- LEGEND_ATTRS = [ATTRS, 'accesskey']
235
- ALIGN_ATTR = ['align']
236
- LINK_ATTRS = [ATTRS, 'charset', 'href', 'hreflang', 'type', 'rel', 'rev',
237
- 'media']
238
- MAP_CONTENTS = [BLOCK, 'area']
239
- NAME_ATTR = ['name']
240
- ACTION_ATTR = ['action']
241
- BLOCKLI_ELT = [BLOCK, 'li']
242
- META_ATTRS = [I18N, 'http-equiv', 'name', 'scheme']
243
- CONTENT_ATTR = ['content']
244
- TYPE_ATTR = ['type']
245
- NOFRAMES_CONTENT = ['body', FLOW, MODIFIER]
246
- OBJECT_CONTENTS = [FLOW, 'param']
247
- OBJECT_ATTRS = [ATTRS, 'declare', 'classid', 'codebase', 'data', 'type',
248
- 'codetype', 'archive', 'standby', 'height', 'width',
249
- 'usemap', 'name', 'tabindex']
250
- OBJECT_DEPR = ['align', 'border', 'hspace', 'vspace']
251
- OL_ATTRS = ['type', 'compact', 'start']
252
- OPTION_ELT = ['option']
253
- OPTGROUP_ATTRS = [ATTRS, 'disabled']
254
- OPTION_ATTRS = [ATTRS, 'disabled', 'label', 'selected', 'value']
255
- PARAM_ATTRS = ['id', 'value', 'valuetype', 'type']
256
- WIDTH_ATTR = ['width']
257
- PRE_CONTENT = [PHRASE, 'tt', 'i', 'b', 'u', 's', 'strike', 'a', 'br',
258
- 'script', 'map', 'q', 'span', 'bdo', 'iframe']
259
- SCRIPT_ATTRS = ['charset', 'src', 'defer', 'event', 'for']
260
- LANGUAGE_ATTR = ['language']
261
- SELECT_CONTENT = ['optgroup', 'option']
262
- SELECT_ATTRS = [ATTRS, 'name', 'size', 'multiple', 'disabled', 'tabindex',
263
- 'onfocus', 'onblur', 'onchange']
264
- STYLE_ATTRS = [I18N, 'media', 'title']
265
- TABLE_ATTRS = [ATTRS, 'summary', 'width', 'border', 'frame', 'rules',
266
- 'cellspacing', 'cellpadding', 'datapagesize']
267
- TABLE_DEPR = ['align', 'bgcolor']
268
- TABLE_CONTENTS = ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody',
269
- 'tr']
270
- TR_ELT = ['tr']
271
- TALIGN_ATTRS = [ATTRS, CELLHALIGN, CELLVALIGN]
272
- TH_TD_DEPR = ['nowrap', 'bgcolor', 'width', 'height']
273
- TH_TD_ATTR = [ATTRS, 'abbr', 'axis', 'headers', 'scope', 'rowspan',
274
- 'colspan', CELLHALIGN, CELLVALIGN]
275
- TEXTAREA_ATTRS = [ATTRS, 'name', 'disabled', 'readonly', 'tabindex',
276
- 'accesskey', 'onfocus', 'onblur', 'onselect',
277
- 'onchange']
278
- TR_CONTENTS = ['th', 'td']
279
- BGCOLOR_ATTR = ['bgcolor']
280
- LI_ELT = ['li']
281
- UL_DEPR = ['type', 'compact']
282
- DIR_ATTR = ['dir']
283
-
284
- [
285
- ['a', false, false, false, false, false, :any, true,
286
- 'anchor ',
287
- HTML_INLINE, nil, A_ATTRS, TARGET_ATTR, []
288
- ],
289
- ['abbr', false, false, false, false, false, :any, true,
290
- 'abbreviated form',
291
- HTML_INLINE, nil, HTML_ATTRS, [], []
292
- ],
293
- ['acronym', false, false, false, false, false, :any, true, '',
294
- HTML_INLINE, nil, HTML_ATTRS, [], []
295
- ],
296
- ['address', false, false, false, false, false, :any, false,
297
- 'information on author',
298
- INLINE_P , nil, HTML_ATTRS, [], []
299
- ],
300
- ['applet', false, false, false, false, true, :loose, true,
301
- 'java applet ',
302
- FLOW_PARAM, nil, [], APPLET_ATTRS, []
303
- ],
304
- ['area', false, true, true, true, false, :any, false,
305
- 'client-side image map area ',
306
- EMPTY, nil, AREA_ATTRS, TARGET_ATTR, ALT_ATTR
307
- ],
308
- ['b', false, true, false, false, false, :any, true,
309
- 'bold text style',
310
- HTML_INLINE, nil, HTML_ATTRS, [], []
311
- ],
312
- ['base', false, true, true, true, false, :any, false,
313
- 'document base uri ',
314
- EMPTY, nil, [], TARGET_ATTR, HREF_ATTRS
315
- ],
316
- ['basefont', false, true, true, true, true, :loose, true,
317
- 'base font size ',
318
- EMPTY, nil, [], BASEFONT_ATTRS, []
319
- ],
320
- ['bdo', false, false, false, false, false, :any, true,
321
- 'i18n bidi over-ride ',
322
- HTML_INLINE, nil, CORE_I18N_ATTRS, [], DIR_ATTR
323
- ],
324
- ['big', false, true, false, false, false, :any, true,
325
- 'large text style',
326
- HTML_INLINE, nil, HTML_ATTRS, [], []
327
- ],
328
- ['blockquote', false, false, false, false, false, :any, false,
329
- 'long quotation ',
330
- HTML_FLOW, nil, QUOTE_ATTRS, [], []
331
- ],
332
- ['body', true, true, false, false, false, :any, false,
333
- 'document body ',
334
- BODY_CONTENTS, 'div', BODY_ATTRS, BODY_DEPR, []
335
- ],
336
- ['br', false, true, true, true, false, :any, true,
337
- 'forced line break ',
338
- EMPTY, nil, CORE_ATTRS, CLEAR_ATTRS, []
339
- ],
340
- ['button', false, false, false, false, false, :any, true,
341
- 'push button ',
342
- [HTML_FLOW, MODIFIER], nil, BUTTON_ATTRS, [], []
343
- ],
344
- ['caption', false, false, false, false, false, :any, false,
345
- 'table caption ',
346
- HTML_INLINE, nil, HTML_ATTRS, [], []
347
- ],
348
- ['center', false, true, false, false, true, :loose, false,
349
- 'shorthand for div align=center ',
350
- HTML_FLOW, nil, [], HTML_ATTRS, []
351
- ],
352
- ['cite', false, false, false, false, false, :any, true, 'citation',
353
- HTML_INLINE, nil, HTML_ATTRS, [], []
354
- ],
355
- ['code', false, false, false, false, false, :any, true,
356
- 'computer code fragment',
357
- HTML_INLINE, nil, HTML_ATTRS, [], []
358
- ],
359
- ['col', false, true, true, true, false, :any, false, 'table column ',
360
- EMPTY, nil, COL_ATTRS, [], []
361
- ],
362
- ['colgroup', false, true, false, false, false, :any, false,
363
- 'table column group ',
364
- COL_ELT, 'col', COL_ATTRS, [], []
365
- ],
366
- ['dd', false, true, false, false, false, :any, false,
367
- 'definition description ',
368
- HTML_FLOW, nil, HTML_ATTRS, [], []
369
- ],
370
- ['del', false, false, false, false, false, :any, true,
371
- 'deleted text ',
372
- HTML_FLOW, nil, EDIT_ATTRS, [], []
373
- ],
374
- ['dfn', false, false, false, false, false, :any, true,
375
- 'instance definition',
376
- HTML_INLINE, nil, HTML_ATTRS, [], []
377
- ],
378
- ['dir', false, false, false, false, true, :loose, false,
379
- 'directory list',
380
- BLOCKLI_ELT, 'li', [], COMPACT_ATTRS, []
381
- ],
382
- ['div', false, false, false, false, false, :any, false,
383
- 'generic language/style container',
384
- HTML_FLOW, nil, HTML_ATTRS, ALIGN_ATTR, []
385
- ],
386
- ['dl', false, false, false, false, false, :any, false,
387
- 'definition list ',
388
- DL_CONTENTS, 'dd', HTML_ATTRS, COMPACT_ATTR, []
389
- ],
390
- ['dt', false, true, false, false, false, :any, false,
391
- 'definition term ',
392
- HTML_INLINE, nil, HTML_ATTRS, [], []
393
- ],
394
- ['em', false, true, false, false, false, :any, true,
395
- 'emphasis',
396
- HTML_INLINE, nil, HTML_ATTRS, [], []
397
- ],
398
- ['embed', false, true, false, false, true, :loose, true,
399
- 'generic embedded object ',
400
- EMPTY, nil, EMBED_ATTRS, [], []
401
- ],
402
- ['fieldset', false, false, false, false, false, :any, false,
403
- 'form control group ',
404
- FIELDSET_CONTENTS, nil, HTML_ATTRS, [], []
405
- ],
406
- ['font', false, true, false, false, true, :loose, true,
407
- 'local change to font ',
408
- HTML_INLINE, nil, [], FONT_ATTRS, []
409
- ],
410
- ['form', false, false, false, false, false, :any, false,
411
- 'interactive form ',
412
- FORM_CONTENTS, 'fieldset', FORM_ATTRS, TARGET_ATTR, ACTION_ATTR
413
- ],
414
- ['frame', false, true, true, true, false, :frameset, false,
415
- 'subwindow ',
416
- EMPTY, nil, [], FRAME_ATTRS, []
417
- ],
418
- ['frameset', false, false, false, false, false, :frameset, false,
419
- 'window subdivision',
420
- FRAMESET_CONTENTS, 'noframes', [], FRAMESET_ATTRS, []
421
- ],
422
- ['htrue', false, false, false, false, false, :any, false,
423
- 'heading ',
424
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
425
- ],
426
- ['htrue', false, false, false, false, false, :any, false,
427
- 'heading ',
428
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
429
- ],
430
- ['htrue', false, false, false, false, false, :any, false,
431
- 'heading ',
432
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
433
- ],
434
- ['h4', false, false, false, false, false, :any, false,
435
- 'heading ',
436
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
437
- ],
438
- ['h5', false, false, false, false, false, :any, false,
439
- 'heading ',
440
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
441
- ],
442
- ['h6', false, false, false, false, false, :any, false,
443
- 'heading ',
444
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
445
- ],
446
- ['head', true, true, false, false, false, :any, false,
447
- 'document head ',
448
- HEAD_CONTENTS, nil, HEAD_ATTRS, [], []
449
- ],
450
- ['hr', false, true, true, true, false, :any, false,
451
- 'horizontal rule ',
452
- EMPTY, nil, HTML_ATTRS, HR_DEPR, []
453
- ],
454
- ['html', true, true, false, false, false, :any, false,
455
- 'document root element ',
456
- HTML_CONTENT, nil, I18N_ATTRS, VERSION_ATTR, []
457
- ],
458
- ['i', false, true, false, false, false, :any, true,
459
- 'italic text style',
460
- HTML_INLINE, nil, HTML_ATTRS, [], []
461
- ],
462
- ['iframe', false, false, false, false, false, :any, true,
463
- 'inline subwindow ',
464
- HTML_FLOW, nil, [], IFRAME_ATTRS, []
465
- ],
466
- ['img', false, true, true, true, false, :any, true,
467
- 'embedded image ',
468
- EMPTY, nil, IMG_ATTRS, ALIGN_ATTR, SRC_ALT_ATTRS
469
- ],
470
- ['input', false, true, true, true, false, :any, true,
471
- 'form control ',
472
- EMPTY, nil, INPUT_ATTRS, ALIGN_ATTR, []
473
- ],
474
- ['ins', false, false, false, false, false, :any, true,
475
- 'inserted text',
476
- HTML_FLOW, nil, EDIT_ATTRS, [], []
477
- ],
478
- ['isindex', false, true, true, true, true, :loose, false,
479
- 'single line prompt ',
480
- EMPTY, nil, [], PROMPT_ATTRS, []
481
- ],
482
- ['kbd', false, false, false, false, false, :any, true,
483
- 'text to be entered by the user',
484
- HTML_INLINE, nil, HTML_ATTRS, [], []
485
- ],
486
- ['label', false, false, false, false, false, :any, true,
487
- 'form field label text ',
488
- [HTML_INLINE, MODIFIER], nil, LABEL_ATTRS, [], []
489
- ],
490
- ['legend', false, false, false, false, false, :any, false,
491
- 'fieldset legend ',
492
- HTML_INLINE, nil, LEGEND_ATTRS, ALIGN_ATTR, []
493
- ],
494
- ['li', false, true, true, false, false, :any, false,
495
- 'list item ',
496
- HTML_FLOW, nil, HTML_ATTRS, [], []
497
- ],
498
- ['link', false, true, true, true, false, :any, false,
499
- 'a media-independent link ',
500
- EMPTY, nil, LINK_ATTRS, TARGET_ATTR, []
501
- ],
502
- ['map', false, false, false, false, false, :any, true,
503
- 'client-side image map ',
504
- MAP_CONTENTS, nil, HTML_ATTRS, [], NAME_ATTR
505
- ],
506
- ['menu', false, false, false, false, true, :loose, false,
507
- 'menu list ',
508
- BLOCKLI_ELT, nil, [], COMPACT_ATTRS, []
509
- ],
510
- ['meta', false, true, true, true, false, :any, false,
511
- 'generic metainformation ',
512
- EMPTY, nil, META_ATTRS, [], CONTENT_ATTR
513
- ],
514
- ['noframes', false, false, false, false, false, :frameset, false,
515
- 'alternate content container for non frame-based rendering ',
516
- NOFRAMES_CONTENT, 'body', HTML_ATTRS, [], []
517
- ],
518
- ['noscript', false, false, false, false, false, :any, false,
519
- 'alternate content container for non script-based rendering ',
520
- HTML_FLOW, 'div', HTML_ATTRS, [], []
521
- ],
522
- ['object', false, false, false, false, false, :any, true,
523
- 'generic embedded object ',
524
- OBJECT_CONTENTS, 'div', OBJECT_ATTRS, OBJECT_DEPR, []
525
- ],
526
- ['ol', false, false, false, false, false, :any, false,
527
- 'ordered list ',
528
- LI_ELT, 'li', HTML_ATTRS, OL_ATTRS, []
529
- ],
530
- ['optgroup', false, false, false, false, false, :any, false,
531
- 'option group ',
532
- OPTION_ELT, 'option', OPTGROUP_ATTRS, [], LABEL_ATTR
533
- ],
534
- ['option', false, true, false, false, false, :any, false,
535
- 'selectable choice ',
536
- HTML_PCDATA, nil, OPTION_ATTRS, [], []
537
- ],
538
- ['p', false, true, false, false, false, :any, false,
539
- 'paragraph ',
540
- HTML_INLINE, nil, HTML_ATTRS, ALIGN_ATTR, []
541
- ],
542
- ['param', false, true, true, true, false, :any, false,
543
- 'named property value ',
544
- EMPTY, nil, PARAM_ATTRS, [], NAME_ATTR
545
- ],
546
- ['pre', false, false, false, false, false, :any, false,
547
- 'preformatted text ',
548
- PRE_CONTENT, nil, HTML_ATTRS, WIDTH_ATTR, []
549
- ],
550
- ['q', false, false, false, false, false, :any, true,
551
- 'short inline quotation ',
552
- HTML_INLINE, nil, QUOTE_ATTRS, [], []
553
- ],
554
- ['s', false, true, false, false, true, :loose, true,
555
- 'strike-through text style',
556
- HTML_INLINE, nil, [], HTML_ATTRS, []
557
- ],
558
- ['samp', false, false, false, false, false, :any, true,
559
- 'sample program output, scripts, etc.',
560
- HTML_INLINE, nil, HTML_ATTRS, [], []
561
- ],
562
- ['script', false, false, false, false, false, :any, true,
563
- 'script statements ',
564
- HTML_CDATA, nil, SCRIPT_ATTRS, LANGUAGE_ATTR, TYPE_ATTR
565
- ],
566
- ['select', false, false, false, false, false, :any, true,
567
- 'option selector ',
568
- SELECT_CONTENT, nil, SELECT_ATTRS, [], []
569
- ],
570
- ['small', false, true, false, false, false, :any, true,
571
- 'small text style',
572
- HTML_INLINE, nil, HTML_ATTRS, [], []
573
- ],
574
- ['span', false, false, false, false, false, :any, true,
575
- 'generic language/style container ',
576
- HTML_INLINE, nil, HTML_ATTRS, [], []
577
- ],
578
- ['strike', false, true, false, false, true, :loose, true,
579
- 'strike-through text',
580
- HTML_INLINE, nil, [], HTML_ATTRS, []
581
- ],
582
- ['strong', false, true, false, false, false, :any, true,
583
- 'strong emphasis',
584
- HTML_INLINE, nil, HTML_ATTRS, [], []
585
- ],
586
- ['style', false, false, false, false, false, :any, false,
587
- 'style info ',
588
- HTML_CDATA, nil, STYLE_ATTRS, [], TYPE_ATTR
589
- ],
590
- ['sub', false, true, false, false, false, :any, true,
591
- 'subscript',
592
- HTML_INLINE, nil, HTML_ATTRS, [], []
593
- ],
594
- ['sup', false, true, false, false, false, :any, true,
595
- 'superscript ',
596
- HTML_INLINE, nil, HTML_ATTRS, [], []
597
- ],
598
- ['table', false, false, false, false, false, :any, false,
599
- '',
600
- TABLE_CONTENTS, 'tr', TABLE_ATTRS, TABLE_DEPR, []
601
- ],
602
- ['tbody', true, false, false, false, false, :any, false,
603
- 'table body ',
604
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
605
- ],
606
- ['td', false, false, false, false, false, :any, false,
607
- 'table data cell',
608
- HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, []
609
- ],
610
- ['textarea', false, false, false, false, false, :any, true,
611
- 'multi-line text field ',
612
- HTML_PCDATA, nil, TEXTAREA_ATTRS, [], ROWS_COLS_ATTR
613
- ],
614
- ['tfoot', false, true, false, false, false, :any, false,
615
- 'table footer ',
616
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
617
- ],
618
- ['th', false, true, false, false, false, :any, false,
619
- 'table header cell',
620
- HTML_FLOW, nil, TH_TD_ATTR, TH_TD_DEPR, []
621
- ],
622
- ['thead', false, true, false, false, false, :any, false,
623
- 'table header ',
624
- TR_ELT, 'tr', TALIGN_ATTRS, [], []
625
- ],
626
- ['title', false, false, false, false, false, :any, false,
627
- 'document title ',
628
- HTML_PCDATA, nil, I18N_ATTRS, [], []
629
- ],
630
- ['tr', false, false, false, false, false, :any, false,
631
- 'table row ',
632
- TR_CONTENTS, 'td', TALIGN_ATTRS, BGCOLOR_ATTR, []
633
- ],
634
- ['tt', false, true, false, false, false, :any, true,
635
- 'teletype or monospaced text style',
636
- HTML_INLINE, nil, HTML_ATTRS, [], []
637
- ],
638
- ['u', false, true, false, false, true, :loose, true,
639
- 'underlined text style',
640
- HTML_INLINE, nil, [], HTML_ATTRS, []
641
- ],
642
- ['ul', false, false, false, false, false, :any, false,
643
- 'unordered list ',
644
- LI_ELT, 'li', HTML_ATTRS, UL_DEPR, []
645
- ],
646
- ['var', false, false, false, false, false, :any, true,
647
- 'instance of a variable or program argument',
648
- HTML_INLINE, nil, HTML_ATTRS, [], []
649
- ]
650
- ].each do |descriptor|
651
- name = descriptor[0]
652
-
653
- begin
654
- d = Desc.new(*descriptor)
655
-
656
- # flatten all the attribute lists (Ruby1.9, *[a,b,c] can be
657
- # used to flatten a literal list, but not in Ruby1.8).
658
- d[:subelts] = d[:subelts].flatten
659
- d[:attrs_opt] = d[:attrs_opt].flatten
660
- d[:attrs_depr] = d[:attrs_depr].flatten
661
- d[:attrs_req] = d[:attrs_req].flatten
662
- rescue => e
663
- p name
664
- raise e
665
- end
666
-
667
- DefaultDescriptions[name] = d
668
- end
669
- end
670
- end
671
- end
@@ -1,16 +0,0 @@
1
- module Nokogiri
2
- module HTML
3
- module SAX
4
- ###
5
- # Context for HTML SAX parsers. This class is usually not instantiated
6
- # by the user. Instead, you should be looking at
7
- # Nokogiri::HTML::SAX::Parser
8
- class ParserContext < Nokogiri::XML::SAX::ParserContext
9
- def self.new thing, encoding = 'UTF-8'
10
- [:read, :close].all? { |x| thing.respond_to?(x) } ? super :
11
- memory(thing, encoding)
12
- end
13
- end
14
- end
15
- end
16
- end