tdiary 3.2.2.20130507

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +16 -0
  4. data/.travis.yml +29 -0
  5. data/Capfile +2 -0
  6. data/ChangeLog +3173 -0
  7. data/Gemfile +58 -0
  8. data/Gemfile.lock +201 -0
  9. data/LICENSE +340 -0
  10. data/Procfile +1 -0
  11. data/README.md +33 -0
  12. data/Rakefile +26 -0
  13. data/bin/tdiary +7 -0
  14. data/config.ru +61 -0
  15. data/data/.htaccess +2 -0
  16. data/doc/HOWTO-authenticate-in-rack.md +89 -0
  17. data/doc/HOWTO-make-io.md +305 -0
  18. data/doc/HOWTO-make-plugin.md +279 -0
  19. data/doc/HOWTO-make-theme.md +67 -0
  20. data/doc/HOWTO-testing-tDiary.md +44 -0
  21. data/doc/HOWTO-use-plugin.md +148 -0
  22. data/doc/HOWTO-write-tDiary.en.md +131 -0
  23. data/doc/HOWTO-write-tDiary.md +136 -0
  24. data/doc/INSTALL-paas.md +202 -0
  25. data/doc/INSTALL.md +160 -0
  26. data/doc/README.en.md +174 -0
  27. data/doc/README.md +56 -0
  28. data/doc/UPGRADE.md +164 -0
  29. data/doc/doc.css +115 -0
  30. data/dot.htaccess +27 -0
  31. data/index.fcgi +45 -0
  32. data/index.rb +57 -0
  33. data/js/00default.js +60 -0
  34. data/js/01conf.js +62 -0
  35. data/js/02edit.coffee +5 -0
  36. data/js/02edit.js +15 -0
  37. data/js/amazon.js +43 -0
  38. data/js/calendar3.js +130 -0
  39. data/js/caretposition.js +170 -0
  40. data/js/category.js +29 -0
  41. data/js/category_autocomplete.js +96 -0
  42. data/js/comment_ajax.js +27 -0
  43. data/js/draft.js +149 -0
  44. data/js/highlight.js +36 -0
  45. data/js/image.js +181 -0
  46. data/misc/convert2.rb +123 -0
  47. data/misc/filter/antispamservice.rb +101 -0
  48. data/misc/filter/limitdays.rb +40 -0
  49. data/misc/filter/linkcheck.rb +81 -0
  50. data/misc/filter/plugin/antispamservice.rb +82 -0
  51. data/misc/filter/plugin/en/antispamservice.rb +21 -0
  52. data/misc/filter/plugin/ja/antispamservice.rb +20 -0
  53. data/misc/lib/README +4 -0
  54. data/misc/lib/compatible.rb +1 -0
  55. data/misc/lib/fcgi_patch.rb +90 -0
  56. data/misc/migrate.rb +157 -0
  57. data/misc/paas/cloudfoundry/Gemfile +26 -0
  58. data/misc/paas/cloudfoundry/Gemfile.lock +85 -0
  59. data/misc/paas/heroku/Gemfile +22 -0
  60. data/misc/paas/heroku/Gemfile.lock +85 -0
  61. data/misc/paas/sqale/Gemfile +19 -0
  62. data/misc/paas/sqale/Gemfile.lock +85 -0
  63. data/misc/paas/sqale/Procfile +1 -0
  64. data/misc/paas/sqale/dot.env +1 -0
  65. data/misc/plugin/ChangeLog.DO_NOT_UPDATE +2333 -0
  66. data/misc/plugin/a.rb +211 -0
  67. data/misc/plugin/amazon.rb +403 -0
  68. data/misc/plugin/amazon/README.en +17 -0
  69. data/misc/plugin/amazon/README.ja +29 -0
  70. data/misc/plugin/amazon/amazonimg.rb +113 -0
  71. data/misc/plugin/amazon/large.png +0 -0
  72. data/misc/plugin/amazon/medium.png +0 -0
  73. data/misc/plugin/amazon/small.png +0 -0
  74. data/misc/plugin/append-css.rb +51 -0
  75. data/misc/plugin/bq.rb +48 -0
  76. data/misc/plugin/calendar2.rb +184 -0
  77. data/misc/plugin/calendar3.rb +256 -0
  78. data/misc/plugin/category.rb +779 -0
  79. data/misc/plugin/category_autocomplete.rb +33 -0
  80. data/misc/plugin/comment_ajax.rb +11 -0
  81. data/misc/plugin/comment_mail-qmail.rb +57 -0
  82. data/misc/plugin/comment_mail-sendmail.rb +56 -0
  83. data/misc/plugin/comment_mail-smtp.rb +59 -0
  84. data/misc/plugin/comment_rank.rb +36 -0
  85. data/misc/plugin/counter.rb +631 -0
  86. data/misc/plugin/daily_theme.rb +55 -0
  87. data/misc/plugin/disp_referrer.rb +1486 -0
  88. data/misc/plugin/doctype-html401tr.rb +16 -0
  89. data/misc/plugin/draft.rb +20 -0
  90. data/misc/plugin/dropdown_calendar.rb +32 -0
  91. data/misc/plugin/edit_today.rb +50 -0
  92. data/misc/plugin/en/a.rb +10 -0
  93. data/misc/plugin/en/amazon.rb +71 -0
  94. data/misc/plugin/en/append-css.rb +17 -0
  95. data/misc/plugin/en/bq.rb +12 -0
  96. data/misc/plugin/en/calendar2.rb +12 -0
  97. data/misc/plugin/en/category.rb +204 -0
  98. data/misc/plugin/en/counter.rb +48 -0
  99. data/misc/plugin/en/daily_theme.rb +14 -0
  100. data/misc/plugin/en/disp_referrer.rb +387 -0
  101. data/misc/plugin/en/dropdown_calendar.rb +14 -0
  102. data/misc/plugin/en/edit_today.rb +22 -0
  103. data/misc/plugin/en/hide-mail-field.rb +19 -0
  104. data/misc/plugin/en/highlight.rb +29 -0
  105. data/misc/plugin/en/image.rb +54 -0
  106. data/misc/plugin/en/kw.rb +22 -0
  107. data/misc/plugin/en/makerss.rb +47 -0
  108. data/misc/plugin/en/pb-show.rb +21 -0
  109. data/misc/plugin/en/ping.rb +16 -0
  110. data/misc/plugin/en/recent_comment.rb +44 -0
  111. data/misc/plugin/en/recent_comment3.rb +56 -0
  112. data/misc/plugin/en/recent_rss.rb +33 -0
  113. data/misc/plugin/en/referer_scheme.rb +48 -0
  114. data/misc/plugin/en/search_control.rb +74 -0
  115. data/misc/plugin/en/search_form.rb +22 -0
  116. data/misc/plugin/en/speed_comment.rb +19 -0
  117. data/misc/plugin/en/tb-show.rb +37 -0
  118. data/misc/plugin/en/todo.rb +43 -0
  119. data/misc/plugin/en/weather.rb +185 -0
  120. data/misc/plugin/en/xmlrpc.rb +14 -0
  121. data/misc/plugin/footnote.rb +92 -0
  122. data/misc/plugin/gradation.rb +39 -0
  123. data/misc/plugin/gradient.rb +36 -0
  124. data/misc/plugin/hide-mail-field.rb +50 -0
  125. data/misc/plugin/highlight.rb +22 -0
  126. data/misc/plugin/html_anchor.rb +34 -0
  127. data/misc/plugin/image.rb +290 -0
  128. data/misc/plugin/ja/amazon.rb +89 -0
  129. data/misc/plugin/ja/bq.rb +13 -0
  130. data/misc/plugin/ja/calendar2.rb +12 -0
  131. data/misc/plugin/ja/category.rb +212 -0
  132. data/misc/plugin/ja/daily_theme.rb +15 -0
  133. data/misc/plugin/ja/disp_referrer.rb +644 -0
  134. data/misc/plugin/ja/edit_today.rb +23 -0
  135. data/misc/plugin/ja/hide-mail-field.rb +20 -0
  136. data/misc/plugin/ja/highlight.rb +30 -0
  137. data/misc/plugin/ja/makerss.rb +44 -0
  138. data/misc/plugin/ja/my-sequel.rb +52 -0
  139. data/misc/plugin/ja/pb-show.rb +23 -0
  140. data/misc/plugin/ja/ping.rb +17 -0
  141. data/misc/plugin/ja/recent_comment.rb +45 -0
  142. data/misc/plugin/ja/recent_comment3.rb +57 -0
  143. data/misc/plugin/ja/recent_rss.rb +34 -0
  144. data/misc/plugin/ja/referer_scheme.rb +86 -0
  145. data/misc/plugin/ja/search_control.rb +75 -0
  146. data/misc/plugin/ja/search_form.rb +32 -0
  147. data/misc/plugin/ja/tb-show.rb +38 -0
  148. data/misc/plugin/ja/todo.rb +46 -0
  149. data/misc/plugin/ja/weather.rb +402 -0
  150. data/misc/plugin/ja/xmlrpc.rb +15 -0
  151. data/misc/plugin/kw.rb +150 -0
  152. data/misc/plugin/list.rb +40 -0
  153. data/misc/plugin/makelirs.rb +89 -0
  154. data/misc/plugin/makerss.rb +744 -0
  155. data/misc/plugin/my-ex.rb +68 -0
  156. data/misc/plugin/my-sequel.rb +539 -0
  157. data/misc/plugin/navi_user.rb +19 -0
  158. data/misc/plugin/number_anchor.rb +47 -0
  159. data/misc/plugin/pb-show.rb +165 -0
  160. data/misc/plugin/ping.rb +99 -0
  161. data/misc/plugin/pre_wrap.rb +19 -0
  162. data/misc/plugin/random_google.rb +165 -0
  163. data/misc/plugin/recent_comment.rb +82 -0
  164. data/misc/plugin/recent_comment3.rb +192 -0
  165. data/misc/plugin/recent_list.rb +91 -0
  166. data/misc/plugin/recent_namazu.rb +50 -0
  167. data/misc/plugin/recent_rss.rb +305 -0
  168. data/misc/plugin/referer-antibot.rb +53 -0
  169. data/misc/plugin/referer-utf8.rb +12 -0
  170. data/misc/plugin/referer_scheme.rb +87 -0
  171. data/misc/plugin/search_control.rb +227 -0
  172. data/misc/plugin/search_form.rb +53 -0
  173. data/misc/plugin/sn.rb +107 -0
  174. data/misc/plugin/speed_comment.rb +68 -0
  175. data/misc/plugin/squeeze.rb +272 -0
  176. data/misc/plugin/src.rb +30 -0
  177. data/misc/plugin/tb-show.rb +212 -0
  178. data/misc/plugin/title_list.rb +41 -0
  179. data/misc/plugin/title_tag.rb +80 -0
  180. data/misc/plugin/tlink.rb +163 -0
  181. data/misc/plugin/todo.rb +182 -0
  182. data/misc/plugin/weather.rb +505 -0
  183. data/misc/plugin/whatsnew.rb +100 -0
  184. data/misc/plugin/xmlrpc.rb +80 -0
  185. data/misc/plugin/xmlrpc/README +20 -0
  186. data/misc/plugin/xmlrpc/xmlrpc.rb +575 -0
  187. data/misc/style/emptdiary/README.rd +83 -0
  188. data/misc/style/emptdiary/README.rd.en +78 -0
  189. data/misc/style/emptdiary/emptdiary_style.rb +199 -0
  190. data/misc/style/etdiary/README.rd +83 -0
  191. data/misc/style/etdiary/etdiary_style.rb +446 -0
  192. data/misc/style/gfm/gfm_style.rb +194 -0
  193. data/misc/style/rd/README.rd +71 -0
  194. data/misc/style/rd/rd_style.rb +366 -0
  195. data/misc/style/wiki/README +116 -0
  196. data/misc/style/wiki/README.en +101 -0
  197. data/misc/style/wiki/wiki_parser.rb +273 -0
  198. data/misc/style/wiki/wiki_style.rb +478 -0
  199. data/misc/theme_convert/Readme.rd +21 -0
  200. data/misc/theme_convert/append.rcss +150 -0
  201. data/misc/theme_convert/theme_convert.rb +453 -0
  202. data/plugin/00default.rb +1015 -0
  203. data/plugin/05referer.rb +298 -0
  204. data/plugin/10spamfilter.rb +183 -0
  205. data/plugin/50sp.rb +146 -0
  206. data/plugin/60sf.rb +152 -0
  207. data/plugin/90migrate.rb +109 -0
  208. data/plugin/en/00default.rb +390 -0
  209. data/plugin/en/05referer.rb +49 -0
  210. data/plugin/en/10spamfilter.rb +81 -0
  211. data/plugin/en/50sp.rb +56 -0
  212. data/plugin/en/60sf.rb +60 -0
  213. data/plugin/ja/00default.rb +401 -0
  214. data/plugin/ja/05referer.rb +47 -0
  215. data/plugin/ja/10spamfilter.rb +79 -0
  216. data/plugin/ja/50sp.rb +66 -0
  217. data/plugin/ja/60sf.rb +73 -0
  218. data/public/.gitkeep +0 -0
  219. data/public/images/.gitkeep +0 -0
  220. data/public/javascripts/.gitkeep +0 -0
  221. data/public/stylesheets/.gitkeep +0 -0
  222. data/skel/category.rhtml +9 -0
  223. data/skel/conf.rhtml +23 -0
  224. data/skel/day.rhtml +33 -0
  225. data/skel/diary.rhtml +83 -0
  226. data/skel/footer.rhtml +8 -0
  227. data/skel/header.rhtml +10 -0
  228. data/skel/i.category.rhtml +6 -0
  229. data/skel/i.conf.rhtml +14 -0
  230. data/skel/i.day.rhtml +28 -0
  231. data/skel/i.diary.rhtml +17 -0
  232. data/skel/i.footer.rhtml +2 -0
  233. data/skel/i.header.rhtml +3 -0
  234. data/skel/i.latest.rhtml +24 -0
  235. data/skel/i.month.rhtml +39 -0
  236. data/skel/i.search.rhtml +5 -0
  237. data/skel/i.update.rhtml +40 -0
  238. data/skel/i.update.rhtml.en +40 -0
  239. data/skel/latest.rhtml +27 -0
  240. data/skel/mail.rtxt +18 -0
  241. data/skel/mail.rtxt.en +18 -0
  242. data/skel/month.rhtml +27 -0
  243. data/skel/plugin_error.rhtml +27 -0
  244. data/skel/preview.rhtml +85 -0
  245. data/skel/preview.rhtml.en +72 -0
  246. data/skel/referer.rhtml +24 -0
  247. data/skel/search.rhtml +14 -0
  248. data/skel/tdiary.rconf +76 -0
  249. data/skel/update.rhtml +103 -0
  250. data/skel/update.rhtml.en +83 -0
  251. data/spec/acceptance/append_comment_spec.rb +94 -0
  252. data/spec/acceptance/append_diary_spec.rb +98 -0
  253. data/spec/acceptance/bugfix/encoding_error_spec.rb +27 -0
  254. data/spec/acceptance/save_conf_comment_spec.rb +87 -0
  255. data/spec/acceptance/save_conf_default_spec.rb +169 -0
  256. data/spec/acceptance/save_conf_dnsbl_spec.rb +152 -0
  257. data/spec/acceptance/save_conf_filter_spec.rb +50 -0
  258. data/spec/acceptance/save_conf_plugin_spec.rb +69 -0
  259. data/spec/acceptance/save_conf_referer_spec.rb +60 -0
  260. data/spec/acceptance/save_conf_security_spec.rb +280 -0
  261. data/spec/acceptance/support/helpers.rb +49 -0
  262. data/spec/acceptance/support/paths.rb +7 -0
  263. data/spec/acceptance/update_diary_spec.rb +113 -0
  264. data/spec/acceptance/view_category_spec.rb +38 -0
  265. data/spec/acceptance/view_comment_spec.rb +67 -0
  266. data/spec/acceptance/view_diary_spec.rb +126 -0
  267. data/spec/acceptance/view_referer_spec.rb +31 -0
  268. data/spec/acceptance_helper.rb +101 -0
  269. data/spec/core/compatible_spec.rb +54 -0
  270. data/spec/core/core_ext_spec.rb +59 -0
  271. data/spec/core/plugin_spec.rb +389 -0
  272. data/spec/core/rack/assets/precompile_spec.rb +76 -0
  273. data/spec/core/rack/html_anchor_spec.rb +57 -0
  274. data/spec/core/rack/valid_request_path_spec.rb +67 -0
  275. data/spec/core/style/emptdiary_style_spec.rb +165 -0
  276. data/spec/core/style/etdiary_style_spec.rb +512 -0
  277. data/spec/core/style/gfm_style_spec.rb +334 -0
  278. data/spec/core/style/rd_style_spec.rb +202 -0
  279. data/spec/core/style/tdiary_style_spec.rb +240 -0
  280. data/spec/core/style/wiki_style_spec.rb +441 -0
  281. data/spec/fixtures/ascii8bit-pstore.db +0 -0
  282. data/spec/fixtures/invalid-sequence-volatile.tdr +9 -0
  283. data/spec/fixtures/just_installed.conf +1 -0
  284. data/spec/fixtures/plugin/ja/sample.rb +4 -0
  285. data/spec/fixtures/plugin/sample.rb +6 -0
  286. data/spec/fixtures/sample.rb +12 -0
  287. data/spec/fixtures/tdiary.conf.gem +212 -0
  288. data/spec/fixtures/tdiary.conf.rack +212 -0
  289. data/spec/fixtures/tdiary.conf.rdb +227 -0
  290. data/spec/fixtures/tdiary.conf.secure +204 -0
  291. data/spec/fixtures/tdiary.conf.webrick +212 -0
  292. data/spec/javascripts/00default_spec.js +35 -0
  293. data/spec/javascripts/fixtures/00default.html +1 -0
  294. data/spec/javascripts/support/jasmine.yml +76 -0
  295. data/spec/plugin/bq_spec.rb +24 -0
  296. data/spec/plugin/plugin_helper.rb +203 -0
  297. data/spec/spec_helper.rb +32 -0
  298. data/tdiary.conf.beginner +244 -0
  299. data/tdiary.conf.sample +345 -0
  300. data/tdiary.conf.sample-en +333 -0
  301. data/tdiary.gemspec +26 -0
  302. data/tdiary.rb +151 -0
  303. data/tdiary/admin.rb +236 -0
  304. data/tdiary/application.rb +57 -0
  305. data/tdiary/author_only_base.rb +171 -0
  306. data/tdiary/base.rb +220 -0
  307. data/tdiary/cli.rb +116 -0
  308. data/tdiary/comment.rb +40 -0
  309. data/tdiary/comment_manager.rb +94 -0
  310. data/tdiary/compatible.rb +72 -0
  311. data/tdiary/config.rb +270 -0
  312. data/tdiary/core_ext.rb +122 -0
  313. data/tdiary/deploy.rb +50 -0
  314. data/tdiary/dispatcher.rb +77 -0
  315. data/tdiary/dispatcher/index_main.rb +122 -0
  316. data/tdiary/dispatcher/update_main.rb +101 -0
  317. data/tdiary/environment.rb +15 -0
  318. data/tdiary/filter.rb +48 -0
  319. data/tdiary/filter/default.rb +54 -0
  320. data/tdiary/filter/spam.rb +304 -0
  321. data/tdiary/io/base.rb +70 -0
  322. data/tdiary/io/cache/file.rb +123 -0
  323. data/tdiary/io/cache/memcached.rb +88 -0
  324. data/tdiary/io/cache/redis.rb +100 -0
  325. data/tdiary/io/default.rb +297 -0
  326. data/tdiary/io/pstore.rb +252 -0
  327. data/tdiary/io/rdb.rb +213 -0
  328. data/tdiary/lang/en.rb +79 -0
  329. data/tdiary/lang/ja.rb +72 -0
  330. data/tdiary/plugin.rb +375 -0
  331. data/tdiary/rack/assets/precompile.rb +37 -0
  332. data/tdiary/rack/auth/basic.rb +38 -0
  333. data/tdiary/rack/auth/omniauth.rb +51 -0
  334. data/tdiary/rack/html_anchor.rb +31 -0
  335. data/tdiary/rack/valid_request_path.rb +36 -0
  336. data/tdiary/referer_manager.rb +80 -0
  337. data/tdiary/request.rb +217 -0
  338. data/tdiary/response.rb +29 -0
  339. data/tdiary/server.rb +85 -0
  340. data/tdiary/style.rb +194 -0
  341. data/tdiary/style/tdiary_style.rb +198 -0
  342. data/tdiary/style/wiki_style.rb +213 -0
  343. data/tdiary/tasks.rb +1 -0
  344. data/tdiary/tasks/assets.rake +31 -0
  345. data/tdiary/tasks/auth.rake +28 -0
  346. data/tdiary/tasks/db.rake +110 -0
  347. data/tdiary/tasks/doc.rake +31 -0
  348. data/tdiary/tasks/heroku.rake +37 -0
  349. data/tdiary/tasks/jasmine.rake +16 -0
  350. data/tdiary/tasks/rdoc.rake +24 -0
  351. data/tdiary/tasks/release.rake +122 -0
  352. data/tdiary/tasks/rspec.rake +51 -0
  353. data/tdiary/tasks/server.rake +33 -0
  354. data/tdiary/tasks/test.rake +17 -0
  355. data/tdiary/version.rb +3 -0
  356. data/tdiary/view.rb +468 -0
  357. data/tdiary/view_helper.rb +15 -0
  358. data/test/disp_referrer_test.rb +93 -0
  359. data/test/my-sequel_test.rb +238 -0
  360. data/test/test_helper.rb +7 -0
  361. data/test/test_plugin_helper.rb +64 -0
  362. data/test/test_plugin_helper_test.rb +28 -0
  363. data/test/weather_test.rb +33 -0
  364. data/theme/base.css +268 -0
  365. data/theme/conf.block.png +0 -0
  366. data/theme/conf.css +254 -0
  367. data/theme/default/README +11 -0
  368. data/theme/default/body.png +0 -0
  369. data/theme/default/default.css +743 -0
  370. data/theme/help.png +0 -0
  371. data/theme/loading.gif +0 -0
  372. data/theme/tdiary1/README +7 -0
  373. data/theme/tdiary1/tdiary1.css +394 -0
  374. data/theme/tdiary2/README +19 -0
  375. data/theme/tdiary2/tdiary2.css +624 -0
  376. data/update.fcgi +45 -0
  377. data/update.rb +57 -0
  378. data/vendor/hikidoc-0.0.6/COPYING +28 -0
  379. data/vendor/hikidoc-0.0.6/NEWS +30 -0
  380. data/vendor/hikidoc-0.0.6/NEWS.ja +30 -0
  381. data/vendor/hikidoc-0.0.6/README +86 -0
  382. data/vendor/hikidoc-0.0.6/README.ja +83 -0
  383. data/vendor/hikidoc-0.0.6/Rakefile +68 -0
  384. data/vendor/hikidoc-0.0.6/TextFormattingRules +320 -0
  385. data/vendor/hikidoc-0.0.6/TextFormattingRules.ja +318 -0
  386. data/vendor/hikidoc-0.0.6/bin/hikidoc +66 -0
  387. data/vendor/hikidoc-0.0.6/lib/hikidoc.rb +914 -0
  388. data/vendor/hikidoc-0.0.6/setup.rb +1360 -0
  389. data/vendor/hikidoc-0.0.6/test/run-test.rb +13 -0
  390. data/vendor/hikidoc-0.0.6/test/test_hikidoc.rb +506 -0
  391. data/vendor/imagesize-0.1.1/Manifest.txt +19 -0
  392. data/vendor/imagesize-0.1.1/README.txt +49 -0
  393. data/vendor/imagesize-0.1.1/lib/image_size.rb +305 -0
  394. data/vendor/imagesize-0.1.1/lib/image_size/version.rb +9 -0
  395. data/vendor/imagesize-0.1.1/setup.rb +1585 -0
  396. data/vendor/imagesize-0.1.1/test/2-4-7.png +0 -0
  397. data/vendor/imagesize-0.1.1/test/4_1_2.gif +0 -0
  398. data/vendor/imagesize-0.1.1/test/bmp.bmp +0 -0
  399. data/vendor/imagesize-0.1.1/test/cursor.xbm +6 -0
  400. data/vendor/imagesize-0.1.1/test/detect.swf +0 -0
  401. data/vendor/imagesize-0.1.1/test/pbm.pbm +0 -0
  402. data/vendor/imagesize-0.1.1/test/pcx.pcx +0 -0
  403. data/vendor/imagesize-0.1.1/test/pgm.pgm +5 -0
  404. data/vendor/imagesize-0.1.1/test/test.xpm +38 -0
  405. data/vendor/imagesize-0.1.1/test/test_helper.rb +2 -0
  406. data/vendor/imagesize-0.1.1/test/test_image_size.rb +71 -0
  407. data/vendor/imagesize-0.1.1/test/tiff.tiff +0 -0
  408. data/vendor/imagesize-0.1.1/test/tokyo_tower.jpg +0 -0
  409. data/vendor/imagesize-0.1.1/test/tower_e.gif.psd +0 -0
  410. data/vendor/jasmine-jquery-1.4.2/jasmine-jquery.js +548 -0
  411. data/vendor/jquery-1.8/jquery.js +9227 -0
  412. data/vendor/rdtool-0.6.38/COPYING.txt +339 -0
  413. data/vendor/rdtool-0.6.38/Gemfile +3 -0
  414. data/vendor/rdtool-0.6.38/HISTORY +318 -0
  415. data/vendor/rdtool-0.6.38/LGPL-2.1 +502 -0
  416. data/vendor/rdtool-0.6.38/LICENSE.txt +58 -0
  417. data/vendor/rdtool-0.6.38/README.html +66 -0
  418. data/vendor/rdtool-0.6.38/README.ja.html +73 -0
  419. data/vendor/rdtool-0.6.38/README.rd +76 -0
  420. data/vendor/rdtool-0.6.38/README.rd.ja +85 -0
  421. data/vendor/rdtool-0.6.38/Rakefile +152 -0
  422. data/vendor/rdtool-0.6.38/TODO +22 -0
  423. data/vendor/rdtool-0.6.38/bin/rd2 +283 -0
  424. data/vendor/rdtool-0.6.38/bin/rdswap.rb +207 -0
  425. data/vendor/rdtool-0.6.38/doc/rd-draft.html +456 -0
  426. data/vendor/rdtool-0.6.38/doc/rd-draft.ja.html +466 -0
  427. data/vendor/rdtool-0.6.38/doc/rd-draft.rd +479 -0
  428. data/vendor/rdtool-0.6.38/doc/rd-draft.rd.ja +487 -0
  429. data/vendor/rdtool-0.6.38/lib/rd/block-element.rb +114 -0
  430. data/vendor/rdtool-0.6.38/lib/rd/complex-list-item.rb +65 -0
  431. data/vendor/rdtool-0.6.38/lib/rd/desclist.rb +55 -0
  432. data/vendor/rdtool-0.6.38/lib/rd/document-struct.rb +46 -0
  433. data/vendor/rdtool-0.6.38/lib/rd/dot.rd2rc +18 -0
  434. data/vendor/rdtool-0.6.38/lib/rd/element.rb +160 -0
  435. data/vendor/rdtool-0.6.38/lib/rd/filter.rb +255 -0
  436. data/vendor/rdtool-0.6.38/lib/rd/head-filter.rb +14 -0
  437. data/vendor/rdtool-0.6.38/lib/rd/inline-element.rb +233 -0
  438. data/vendor/rdtool-0.6.38/lib/rd/labeled-element.rb +14 -0
  439. data/vendor/rdtool-0.6.38/lib/rd/list.rb +57 -0
  440. data/vendor/rdtool-0.6.38/lib/rd/loose-struct.rb +11 -0
  441. data/vendor/rdtool-0.6.38/lib/rd/methodlist.rb +57 -0
  442. data/vendor/rdtool-0.6.38/lib/rd/output-format-visitor.rb +30 -0
  443. data/vendor/rdtool-0.6.38/lib/rd/package.rb +4 -0
  444. data/vendor/rdtool-0.6.38/lib/rd/parser-util.rb +14 -0
  445. data/vendor/rdtool-0.6.38/lib/rd/post-install +1 -0
  446. data/vendor/rdtool-0.6.38/lib/rd/pre-setup.rb +18 -0
  447. data/vendor/rdtool-0.6.38/lib/rd/rbl-file.rb +69 -0
  448. data/vendor/rdtool-0.6.38/lib/rd/rbl-suite.rb +37 -0
  449. data/vendor/rdtool-0.6.38/lib/rd/rd-struct.rb +86 -0
  450. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-lib.rb +266 -0
  451. data/vendor/rdtool-0.6.38/lib/rd/rd2html-ext-opt.rb +34 -0
  452. data/vendor/rdtool-0.6.38/lib/rd/rd2html-lib.rb +490 -0
  453. data/vendor/rdtool-0.6.38/lib/rd/rd2html-opt.rb +67 -0
  454. data/vendor/rdtool-0.6.38/lib/rd/rd2man-lib.rb +251 -0
  455. data/vendor/rdtool-0.6.38/lib/rd/rd2rdo-lib.rb +19 -0
  456. data/vendor/rdtool-0.6.38/lib/rd/rd2rmi-lib.rb +32 -0
  457. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.ry +518 -0
  458. data/vendor/rdtool-0.6.38/lib/rd/rdblockparser.tab.rb +1061 -0
  459. data/vendor/rdtool-0.6.38/lib/rd/rdfmt.rb +15 -0
  460. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.ry +503 -0
  461. data/vendor/rdtool-0.6.38/lib/rd/rdinlineparser.tab.rb +1243 -0
  462. data/vendor/rdtool-0.6.38/lib/rd/rdvisitor.rb +214 -0
  463. data/vendor/rdtool-0.6.38/lib/rd/reference-resolver.rb +114 -0
  464. data/vendor/rdtool-0.6.38/lib/rd/search-file.rb +14 -0
  465. data/vendor/rdtool-0.6.38/lib/rd/tree.rb +103 -0
  466. data/vendor/rdtool-0.6.38/lib/rd/version.rb +41 -0
  467. data/vendor/rdtool-0.6.38/lib/rd/visitor.rb +86 -0
  468. data/vendor/rdtool-0.6.38/rdtool.gemspec +125 -0
  469. data/vendor/rdtool-0.6.38/setup.rb +1596 -0
  470. data/vendor/rdtool-0.6.38/test/data/includee1.html +1 -0
  471. data/vendor/rdtool-0.6.38/test/data/includee2.html +1 -0
  472. data/vendor/rdtool-0.6.38/test/data/includee3.nothtml +1 -0
  473. data/vendor/rdtool-0.6.38/test/data/includee4.xhtml +0 -0
  474. data/vendor/rdtool-0.6.38/test/data/label.rbl +2 -0
  475. data/vendor/rdtool-0.6.38/test/data/label2.rbl +2 -0
  476. data/vendor/rdtool-0.6.38/test/data/sub/includee2.html +1 -0
  477. data/vendor/rdtool-0.6.38/test/data/sub/includee4.html +0 -0
  478. data/vendor/rdtool-0.6.38/test/dummy-observer.rb +6 -0
  479. data/vendor/rdtool-0.6.38/test/dummy.rb +33 -0
  480. data/vendor/rdtool-0.6.38/test/temp-dir.rb +19 -0
  481. data/vendor/rdtool-0.6.38/test/test-block-parser.rb +46 -0
  482. data/vendor/rdtool-0.6.38/test/test-desclist-item.rb +219 -0
  483. data/vendor/rdtool-0.6.38/test/test-document-element.rb +46 -0
  484. data/vendor/rdtool-0.6.38/test/test-document-struct.rb +66 -0
  485. data/vendor/rdtool-0.6.38/test/test-element.rb +46 -0
  486. data/vendor/rdtool-0.6.38/test/test-headline.rb +80 -0
  487. data/vendor/rdtool-0.6.38/test/test-inline-parser.rb +46 -0
  488. data/vendor/rdtool-0.6.38/test/test-list-item.rb +54 -0
  489. data/vendor/rdtool-0.6.38/test/test-list.rb +53 -0
  490. data/vendor/rdtool-0.6.38/test/test-methodlist-item.rb +73 -0
  491. data/vendor/rdtool-0.6.38/test/test-nonterminal-element.rb +170 -0
  492. data/vendor/rdtool-0.6.38/test/test-nonterminal-inline.rb +33 -0
  493. data/vendor/rdtool-0.6.38/test/test-output-format-visitor.rb +48 -0
  494. data/vendor/rdtool-0.6.38/test/test-parser-util.rb +41 -0
  495. data/vendor/rdtool-0.6.38/test/test-rbl-file.rb +156 -0
  496. data/vendor/rdtool-0.6.38/test/test-rbl-suite.rb +43 -0
  497. data/vendor/rdtool-0.6.38/test/test-rd2html-lib.rb +496 -0
  498. data/vendor/rdtool-0.6.38/test/test-rdtree.rb +17 -0
  499. data/vendor/rdtool-0.6.38/test/test-rdvisitor.rb +29 -0
  500. data/vendor/rdtool-0.6.38/test/test-reference-resolver.rb +202 -0
  501. data/vendor/rdtool-0.6.38/test/test-reference.rb +132 -0
  502. data/vendor/rdtool-0.6.38/test/test-search-file.rb +22 -0
  503. data/vendor/rdtool-0.6.38/test/test-terminal-inline.rb +41 -0
  504. data/vendor/rdtool-0.6.38/test/test-textblock.rb +44 -0
  505. data/vendor/rdtool-0.6.38/test/test-tree.rb +82 -0
  506. data/vendor/rdtool-0.6.38/test/test-version.rb +57 -0
  507. data/vendor/rdtool-0.6.38/test/test-visitor.rb +230 -0
  508. data/vendor/rdtool-0.6.38/utils/rd-mode.el +464 -0
  509. metadata +666 -0
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ = rd2html-ext-opt.rb
4
+ $Id: rd2html-ext-opt.rb,v 1.5 2003/10/30 12:12:33 rubikitch Exp rubikitch $
5
+ Copyright(c) 2003 Rubikitch
6
+ Licence: Ruby's License or GPL-2+
7
+ =end
8
+ require 'rd/rd2html-opt'
9
+
10
+ q = ARGV.options
11
+
12
+ q.on_tail("--ref-extension") do
13
+ $Visitor.opt_ref_extension = true
14
+ end
15
+
16
+ q.on_tail("--headline-title") do
17
+ $Visitor.opt_headline_title = true
18
+ end
19
+
20
+ q.on_tail("--headline-secno") do
21
+ $Visitor.opt_headline_secno = true
22
+ end
23
+
24
+ q.on_tail("--enable-br") do
25
+ $Visitor.opt_enable_br = true
26
+ end
27
+
28
+ q.on_tail("--native-inline") do
29
+ $Visitor.opt_native_inline = true
30
+ end
31
+
32
+ q.on_tail("--head-element") do
33
+ $Visitor.opt_head_element = true
34
+ end
@@ -0,0 +1,490 @@
1
+ =begin
2
+ = rd2html-lib.rb
3
+ =end
4
+
5
+ require "cgi"
6
+ require "rd/rdvisitor"
7
+ require "rd/version"
8
+
9
+ module RD
10
+ class RD2HTMLVisitor < RDVisitor
11
+ include MethodParse
12
+
13
+ SYSTEM_NAME = "RDtool -- RD2HTMLVisitor"
14
+ SYSTEM_VERSION = "$Version: "+ RD::VERSION+"$"
15
+ VERSION = Version.new_from_version_string(SYSTEM_NAME, SYSTEM_VERSION)
16
+
17
+ def self.version
18
+ VERSION
19
+ end
20
+
21
+ # must-have constants
22
+ OUTPUT_SUFFIX = "html"
23
+ INCLUDE_SUFFIX = ["html"]
24
+
25
+ METACHAR = { "<" => "&lt;", ">" => "&gt;", "&" => "&amp;" }
26
+
27
+ attr_accessor :css
28
+ attr_accessor :charset
29
+ alias charcode charset
30
+ alias charcode= charset=
31
+ attr_accessor :lang
32
+ attr_accessor :title
33
+ attr_reader :html_link_rel
34
+ attr_reader :html_link_rev
35
+ attr_accessor :use_old_anchor
36
+ # output external Label file.
37
+ attr_accessor :output_rbl
38
+
39
+ attr_reader :footnotes
40
+ attr_reader :foottexts
41
+
42
+ def initialize
43
+ @css = nil
44
+ @charset = nil
45
+ @lang = nil
46
+ @title = nil
47
+ @html_link_rel = {}
48
+ @html_link_rev = {}
49
+
50
+ @footnotes = []
51
+ @index = {}
52
+
53
+ # @use_old_anchor = nil
54
+ @use_old_anchor = true # MUST -> nil
55
+ @output_rbl = nil
56
+ super
57
+ end
58
+
59
+ def visit(tree)
60
+ prepare_labels(tree, "label-")
61
+ prepare_footnotes(tree)
62
+ tmp = super(tree)
63
+ make_rbl_file(@filename) if @output_rbl and @filename
64
+ tmp
65
+ end
66
+
67
+ def apply_to_DocumentElement(element, content)
68
+ ret = ""
69
+ ret << xml_decl + "\n"
70
+ ret << doctype_decl + "\n"
71
+ ret << html_open_tag + "\n"
72
+ ret << html_head + "\n"
73
+ ret << html_body(content) + "\n"
74
+ ret << "</html>\n"
75
+ ret
76
+ end
77
+
78
+ def document_title
79
+ return @title if @title
80
+ return @filename if @filename
81
+ return @input_filename unless @input_filename == "-"
82
+ "Untitled"
83
+ end
84
+ private :document_title
85
+
86
+ def xml_decl
87
+ encoding = %[encoding="#{@charset}" ] if @charset
88
+ %|<?xml version="1.0" #{encoding}?>|
89
+ end
90
+ private :xml_decl
91
+
92
+ def doctype_decl
93
+ %|<!DOCTYPE html \n| +
94
+ %| PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n| +
95
+ %| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">|
96
+ end
97
+ private :doctype_decl
98
+
99
+ def html_open_tag
100
+ lang_attr = %[ lang="#{@lang}" xml:lang="#{@lang}"] if @lang
101
+ %|<html xmlns="http://www.w3.org/1999/xhtml"#{lang_attr}>|
102
+ end
103
+ private :html_open_tag
104
+
105
+ def html_head
106
+ ret = %|<head>\n|
107
+ ret << html_content_type + "\n" if html_content_type
108
+ ret << html_title + "\n"
109
+ ret << link_to_css + "\n" if link_to_css
110
+ ret << forward_links + "\n" if forward_links
111
+ ret << backward_links + "\n" if backward_links
112
+ ret << %Q[</head>]
113
+ end
114
+ private :html_head
115
+
116
+ def html_title
117
+ "<title>#{document_title}</title>"
118
+ end
119
+ private :html_title
120
+
121
+ def html_content_type
122
+ if @charset
123
+ %Q[<meta http-equiv="Content-type" ] +
124
+ %Q[content="text/html; charset=#{@charset}" ] +
125
+ "/>"
126
+ end
127
+ end
128
+ private :html_content_type
129
+
130
+ def link_to_css
131
+ if @css
132
+ %|<link href="#{@css}" type="text/css" rel="stylesheet" | +
133
+ "/>" # for ruby-mode.el fontlock, it is separated into 2 lines.
134
+ end
135
+ end
136
+ private :link_to_css
137
+
138
+ def forward_links
139
+ return nil if @html_link_rel.empty?
140
+ rels = @html_link_rel.sort{|i, j| i[0] <=> j[0] }
141
+ (rels.collect do |rel, href|
142
+ %Q[<link href="#{href}" rel="#{rel}" />]
143
+ end).join("\n")
144
+ end
145
+ private :forward_links
146
+
147
+ def backward_links
148
+ return nil if @html_link_rev.empty?
149
+ revs = @html_link_rev.sort{|i, j| i[0] <=> j[0] }
150
+ (revs.collect do |rev, href|
151
+ %Q[<link href="#{href}" rev="#{rev}" />]
152
+ end).join("\n")
153
+ end
154
+ private :backward_links
155
+
156
+ def html_body(contents)
157
+ content = contents.join("\n")
158
+ foottext = make_foottext
159
+ %Q|<body>\n#{content}\n#{foottext}\n</body>|
160
+ end
161
+ private :html_body
162
+
163
+ def apply_to_Headline(element, title)
164
+ anchor = get_anchor(element)
165
+ label = hyphen_escape(element.label)
166
+ title = title.join("")
167
+ %Q[<h#{element.level}><a name="#{anchor}" id="#{anchor}">#{title}</a>] +
168
+ %Q[</h#{element.level}><!-- RDLabel: "#{label}" -->]
169
+ end
170
+
171
+ # RDVisitor#apply_to_Include
172
+
173
+ def apply_to_TextBlock(element, content)
174
+ content = content.join("")
175
+ if (is_this_textblock_only_one_block_of_parent_listitem?(element) or
176
+ is_this_textblock_only_one_block_other_than_sublists_in_parent_listitem?(element))
177
+ content.chomp
178
+ else
179
+ %Q[<p>#{content.chomp}</p>]
180
+ end
181
+ end
182
+
183
+ def is_this_textblock_only_one_block_of_parent_listitem?(element)
184
+ parent = element.parent
185
+ (parent.is_a?(ItemListItem) or
186
+ parent.is_a?(EnumListItem) or
187
+ parent.is_a?(DescListItem) or
188
+ parent.is_a?(MethodListItem)) and
189
+ consist_of_one_textblock?(parent)
190
+ end
191
+
192
+ def is_this_textblock_only_one_block_other_than_sublists_in_parent_listitem?(element)
193
+ parent = element.parent
194
+ (parent.is_a?(ItemListItem) or
195
+ parent.is_a?(EnumListItem) or
196
+ parent.is_a?(DescListItem) or
197
+ parent.is_a?(MethodListItem)) and
198
+ consist_of_one_textblock_and_sublists(element.parent)
199
+ end
200
+
201
+ def consist_of_one_textblock_and_sublists(element)
202
+ i = 0
203
+ element.each_child do |child|
204
+ if i == 0
205
+ return false unless child.is_a?(TextBlock)
206
+ else
207
+ return false unless child.is_a?(List)
208
+ end
209
+ i += 1
210
+ end
211
+ return true
212
+ end
213
+
214
+ def apply_to_Verbatim(element)
215
+ content = []
216
+ element.each_line do |i|
217
+ content.push(apply_to_String(i))
218
+ end
219
+ %Q[<pre>#{content.join("").chomp}</pre>]
220
+ end
221
+
222
+ def apply_to_ItemList(element, items)
223
+ %Q[<ul>\n#{items.join("\n").chomp}\n</ul>]
224
+ end
225
+
226
+ def apply_to_EnumList(element, items)
227
+ %Q[<ol>\n#{items.join("\n").chomp}\n</ol>]
228
+ end
229
+
230
+ def apply_to_DescList(element, items)
231
+ %Q[<dl>\n#{items.join("\n").chomp}\n</dl>]
232
+ end
233
+
234
+ def apply_to_MethodList(element, items)
235
+ %Q[<dl>\n#{items.join("\n").chomp}\n</dl>]
236
+ end
237
+
238
+ def apply_to_ItemListItem(element, content)
239
+ %Q[<li>#{content.join("\n").chomp}</li>]
240
+ end
241
+
242
+ def apply_to_EnumListItem(element, content)
243
+ %Q[<li>#{content.join("\n").chomp}</li>]
244
+ end
245
+
246
+ def consist_of_one_textblock?(listitem)
247
+ listitem.children.size == 1 and listitem.children[0].is_a?(TextBlock)
248
+ end
249
+ private :consist_of_one_textblock?
250
+
251
+ def apply_to_DescListItem(element, term, description)
252
+ anchor = get_anchor(element.term)
253
+ label = hyphen_escape(element.label)
254
+ term = term.join("")
255
+ if description.empty?
256
+ %Q[<dt><a name="#{anchor}" id="#{anchor}">#{term}</a></dt>] +
257
+ %Q[<!-- RDLabel: "#{label}" -->]
258
+ else
259
+ %Q[<dt><a name="#{anchor}" id="#{anchor}">#{term}</a></dt>] +
260
+ %Q[<!-- RDLabel: "#{label}" -->\n] +
261
+ %Q[<dd>\n#{description.join("\n").chomp}\n</dd>]
262
+ end
263
+ end
264
+
265
+ def apply_to_MethodListItem(element, term, description)
266
+ term = parse_method(term) # maybe: term -> element.term
267
+ anchor = get_anchor(element.term)
268
+ label = hyphen_escape(element.label)
269
+ if description.empty?
270
+ %Q[<dt><a name="#{anchor}" id="#{anchor}"><code>#{term}] +
271
+ %Q[</code></a></dt><!-- RDLabel: "#{label}" -->]
272
+ else
273
+ %Q[<dt><a name="#{anchor}" id="#{anchor}"><code>#{term}] +
274
+ %Q[</code></a></dt><!-- RDLabel: "#{label}" -->\n] +
275
+ %Q[<dd>\n#{description.join("\n")}</dd>]
276
+ end
277
+ end
278
+
279
+ def apply_to_StringElement(element)
280
+ apply_to_String(element.content)
281
+ end
282
+
283
+ def apply_to_Emphasis(element, content)
284
+ %Q[<em>#{content.join("")}</em>]
285
+ end
286
+
287
+ def apply_to_Code(element, content)
288
+ %Q[<code>#{content.join("")}</code>]
289
+ end
290
+
291
+ def apply_to_Var(element, content)
292
+ %Q[<var>#{content.join("")}</var>]
293
+ end
294
+
295
+ def apply_to_Keyboard(element, content)
296
+ %Q[<kbd>#{content.join("")}</kbd>]
297
+ end
298
+
299
+ def apply_to_Index(element, content)
300
+ tmp = []
301
+ element.each do |i|
302
+ tmp.push(i) if i.is_a?(String)
303
+ end
304
+ key = meta_char_escape(tmp.join(""))
305
+ if @index.has_key?(key)
306
+ # warning?
307
+ %Q[<!-- Index, but conflict -->#{content.join("")}<!-- Index end -->]
308
+ else
309
+ num = @index[key] = @index.size
310
+ anchor = a_name("index", num)
311
+ %Q[<a name="#{anchor}" id="#{anchor}">#{content.join("")}</a>]
312
+ end
313
+ end
314
+
315
+ def apply_to_Reference_with_RDLabel(element, content)
316
+ if element.label.filename
317
+ apply_to_RefToOtherFile(element, content)
318
+ else
319
+ apply_to_RefToElement(element, content)
320
+ end
321
+ end
322
+
323
+ def apply_to_Reference_with_URL(element, content)
324
+ %Q[<a href="#{meta_char_escape(element.label.url)}">] +
325
+ %Q[#{content.join("")}</a>]
326
+ end
327
+
328
+ def apply_to_RefToElement(element, content)
329
+ content = content.join("")
330
+ if anchor = refer(element)
331
+ content = content.sub(/^function#/, "")
332
+ %Q[<a href="\##{anchor}">#{content}</a>]
333
+ else
334
+ # warning?
335
+ label = hyphen_escape(element.to_label)
336
+ %Q[<!-- Reference, RDLabel "#{label}" doesn't exist -->] +
337
+ %Q[<em class="label-not-found">#{content}</em><!-- Reference end -->]
338
+ #'
339
+ end
340
+ end
341
+
342
+ def apply_to_RefToOtherFile(element, content)
343
+ content = content.join("")
344
+ filename = element.label.filename.sub(/\.(rd|rb)(\.\w+)?$/, "." +
345
+ OUTPUT_SUFFIX)
346
+ anchor = refer_external(element)
347
+ if anchor
348
+ %Q[<a href="#{filename}\##{anchor}">#{content}</a>]
349
+ else
350
+ %Q[<a href="#{filename}">#{content}</a>]
351
+ end
352
+ end
353
+
354
+ def apply_to_Footnote(element, content)
355
+ num = get_footnote_num(element)
356
+ raise ArgumentError, "[BUG?] #{element} is not registered." unless num
357
+
358
+ add_foottext(num, content)
359
+ anchor = a_name("footmark", num)
360
+ href = a_name("foottext", num)
361
+ %Q|<a name="#{anchor}" id="#{anchor}" | +
362
+ %Q|href="##{href}"><sup><small>| +
363
+ %Q|*#{num}</small></sup></a>|
364
+ end
365
+
366
+ def get_footnote_num(fn)
367
+ raise ArgumentError, "#{fn} must be Footnote." unless fn.is_a? Footnote
368
+ i = @footnotes.index(fn)
369
+ if i
370
+ i + 1
371
+ else
372
+ nil
373
+ end
374
+ end
375
+
376
+ def prepare_footnotes(tree)
377
+ @footnotes = tree.find_all{|i| i.is_a? Footnote }
378
+ @foottexts = []
379
+ end
380
+ private :prepare_footnotes
381
+
382
+ def apply_to_Foottext(element, content)
383
+ num = get_footnote_num(element)
384
+ raise ArgumentError, "[BUG] #{element} isn't registered." unless num
385
+ anchor = a_name("foottext", num)
386
+ href = a_name("footmark", num)
387
+ content = content.join("")
388
+ %|<a name="#{anchor}" id="#{anchor}" href="##{href}">|+
389
+ %|<sup><small>*#{num}</small></sup></a>| +
390
+ %|<small>#{content}</small><br />|
391
+ end
392
+
393
+ def add_foottext(num, foottext)
394
+ raise ArgumentError, "[BUG] footnote ##{num} isn't here." unless
395
+ footnotes[num - 1]
396
+ @foottexts[num - 1] = foottext
397
+ end
398
+
399
+ def apply_to_Verb(element)
400
+ content = apply_to_String(element.content)
401
+ %Q[#{content}]
402
+ end
403
+
404
+ def sp2nbsp(str)
405
+ str.gsub(/\s/, "&nbsp;")
406
+ end
407
+ private :sp2nbsp
408
+
409
+ def apply_to_String(element)
410
+ meta_char_escape(element)
411
+ end
412
+
413
+ def parse_method(method)
414
+ klass, kind, method, args = MethodParse.analize_method(method)
415
+
416
+ if kind == :function
417
+ klass = kind = nil
418
+ else
419
+ kind = MethodParse.kind2str(kind)
420
+ end
421
+
422
+ args.gsub!(/&?\w+;?/){ |m|
423
+ if /&\w+;/ =~ m then m else '<var>'+m+'</var>' end }
424
+
425
+ case method
426
+ when "self"
427
+ klass, kind, method, args = MethodParse.analize_method(args)
428
+ "#{klass}#{kind}<var>self</var> #{method}#{args}"
429
+ when "[]"
430
+ args.strip!
431
+ args.sub!(/^\((.*)\)$/, '\\1')
432
+ "#{klass}#{kind}[#{args}]"
433
+ when "[]="
434
+ args.tr!(' ', '')
435
+ args.sub!(/^\((.*)\)$/, '\\1')
436
+ ary = args.split(/,/)
437
+
438
+ case ary.length
439
+ when 1
440
+ val = '<var>val</var>'
441
+ when 2
442
+ args, val = *ary
443
+ when 3
444
+ args, val = ary[0, 2].join(', '), ary[2]
445
+ end
446
+
447
+ "#{klass}#{kind}[#{args}] = #{val}"
448
+ else
449
+ "#{klass}#{kind}#{method}#{args}"
450
+ end
451
+ end
452
+ private :parse_method
453
+
454
+ def meta_char_escape(str)
455
+ str.gsub(/[<>&]/) {
456
+ METACHAR[$&]
457
+ }
458
+ end
459
+ private :meta_char_escape
460
+
461
+ def hyphen_escape(str)
462
+ str.gsub(/--/, "&shy;&shy;")
463
+ end
464
+
465
+ def make_foottext
466
+ return nil if foottexts.empty?
467
+ content = []
468
+ foottexts.each_with_index do |ft, num|
469
+ content.push(apply_to_Foottext(footnotes[num], ft))
470
+ end
471
+ %|<hr />\n<p class="foottext">\n#{content.join("\n")}\n</p>|
472
+ end
473
+ private :make_foottext
474
+
475
+ def a_name(prefix, num)
476
+ "#{prefix}-#{num}"
477
+ end
478
+ private :a_name
479
+ end # RD2HTMLVisitor
480
+ end # RD
481
+
482
+ $Visitor_Class = RD::RD2HTMLVisitor
483
+ $RD2_Sub_OptionParser = "rd/rd2html-opt"
484
+
485
+ =begin
486
+ == script info.
487
+ RD to HTML translate library for rdfmt.rb
488
+ $Id: rd2html-lib.rb,v 1.53 2003/03/08 12:45:08 tosh Exp $
489
+
490
+ =end