rabbit 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (345) hide show
  1. data/Gemfile +16 -0
  2. data/README +1 -0
  3. data/Rakefile +161 -53
  4. data/TODO +2 -0
  5. data/bin/rabbit +78 -34
  6. data/bin/rabbit-command +16 -3
  7. data/bin/rabbiter +74 -73
  8. data/bin/rabrick +17 -4
  9. data/bin/rabwii +77 -0
  10. data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
  11. data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
  12. data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
  13. data/doc/_config.yml +2 -0
  14. data/doc/_layouts/en.html +37 -0
  15. data/doc/_layouts/ja.html +37 -0
  16. data/doc/_layouts/skeleton.html +91 -0
  17. data/doc/_plugins/converters/hiki.rb +27 -0
  18. data/doc/_plugins/converters/rd.rb +73 -0
  19. data/doc/_site/css/jquery-ui/themes/ui-lightness.css +573 -0
  20. data/doc/_site/css/rabbit.css +247 -0
  21. data/doc/_site/en/development.html +140 -0
  22. data/doc/_site/en/faq.html +117 -0
  23. data/doc/_site/en/hiki.html +420 -0
  24. data/doc/_site/en/how-to-make/hiki.html +113 -0
  25. data/doc/_site/en/how-to-make/index.html +135 -0
  26. data/doc/_site/en/how-to-make/pdf.html +111 -0
  27. data/doc/_site/en/how-to-make/rd.html +151 -0
  28. data/doc/_site/en/how-to-make/theme.html +249 -0
  29. data/doc/_site/en/index.html +343 -0
  30. data/doc/_site/en/install/homebrew.html +279 -0
  31. data/doc/_site/en/install/index.html +144 -0
  32. data/doc/_site/en/install/macports.html +158 -0
  33. data/doc/_site/en/install/windows.html +200 -0
  34. data/doc/_site/en/news.html +928 -0
  35. data/doc/_site/en/rd.html +555 -0
  36. data/doc/_site/en/sample/hiki/rabbit.html +380 -0
  37. data/doc/_site/en/sample/index.html +117 -0
  38. data/doc/_site/en/sample/rd/rabbit.html +572 -0
  39. data/doc/_site/en/slides.html +113 -0
  40. data/doc/_site/en/usage.html +445 -0
  41. data/doc/_site/en/users.html +127 -0
  42. data/doc/_site/favicon.ico +0 -0
  43. data/doc/_site/favicon.png +0 -0
  44. data/doc/_site/images/background-sample.svg +290 -0
  45. data/doc/_site/images/background.png +0 -0
  46. data/doc/_site/images/background.svg +131 -0
  47. data/doc/_site/images/hare-and-tortoise.png +0 -0
  48. data/doc/_site/images/hare-and-tortoise.svg +541 -0
  49. data/doc/_site/images/jp.png +0 -0
  50. data/{sample/momo/usako/usako_psd_100.png → doc/_site/images/lavie-icon.png} +0 -0
  51. data/doc/_site/images/lavie.png +0 -0
  52. data/doc/_site/images/screenshots/en/blue-circle-raw.png +0 -0
  53. data/doc/_site/images/screenshots/en/blue-circle.png +0 -0
  54. data/doc/_site/images/screenshots/en/clear-blue-raw.png +0 -0
  55. data/doc/_site/images/screenshots/en/clear-blue.png +0 -0
  56. data/doc/_site/images/screenshots/en/cozmixng-raw.png +0 -0
  57. data/doc/_site/images/screenshots/en/cozmixng.png +0 -0
  58. data/doc/_site/images/screenshots/en/dark-gradation-raw.png +0 -0
  59. data/doc/_site/images/screenshots/en/dark-gradation.png +0 -0
  60. data/doc/_site/images/screenshots/en/day-white-raw.png +0 -0
  61. data/doc/_site/images/screenshots/en/day-white.png +0 -0
  62. data/doc/_site/images/screenshots/en/debian-raw.png +0 -0
  63. data/doc/_site/images/screenshots/en/debian.png +0 -0
  64. data/doc/_site/images/screenshots/en/green-circle-raw.png +0 -0
  65. data/doc/_site/images/screenshots/en/green-circle.png +0 -0
  66. data/doc/_site/images/screenshots/en/night-black-raw.png +0 -0
  67. data/doc/_site/images/screenshots/en/night-black.png +0 -0
  68. data/doc/_site/images/screenshots/en/rabbit-raw.png +0 -0
  69. data/doc/_site/images/screenshots/en/rabbit.png +0 -0
  70. data/doc/_site/images/screenshots/en/ranguba-raw.png +0 -0
  71. data/doc/_site/images/screenshots/en/ranguba.png +0 -0
  72. data/doc/_site/images/screenshots/en/red-frame-raw.png +0 -0
  73. data/doc/_site/images/screenshots/en/red-frame.png +0 -0
  74. data/doc/_site/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  75. data/doc/_site/images/screenshots/en/ruby-gnome2.png +0 -0
  76. data/doc/_site/images/screenshots/ja/blue-circle-raw.png +0 -0
  77. data/doc/_site/images/screenshots/ja/blue-circle.png +0 -0
  78. data/doc/_site/images/screenshots/ja/clear-blue-raw.png +0 -0
  79. data/doc/_site/images/screenshots/ja/clear-blue.png +0 -0
  80. data/doc/_site/images/screenshots/ja/cozmixng-raw.png +0 -0
  81. data/doc/_site/images/screenshots/ja/cozmixng.png +0 -0
  82. data/doc/_site/images/screenshots/ja/dark-gradation-raw.png +0 -0
  83. data/doc/_site/images/screenshots/ja/dark-gradation.png +0 -0
  84. data/doc/_site/images/screenshots/ja/day-white-raw.png +0 -0
  85. data/doc/_site/images/screenshots/ja/day-white.png +0 -0
  86. data/doc/_site/images/screenshots/ja/debian-raw.png +0 -0
  87. data/doc/_site/images/screenshots/ja/debian.png +0 -0
  88. data/doc/_site/images/screenshots/ja/green-circle-raw.png +0 -0
  89. data/doc/_site/images/screenshots/ja/green-circle.png +0 -0
  90. data/doc/_site/images/screenshots/ja/night-black-raw.png +0 -0
  91. data/doc/_site/images/screenshots/ja/night-black.png +0 -0
  92. data/doc/_site/images/screenshots/ja/rabbit-raw.png +0 -0
  93. data/doc/_site/images/screenshots/ja/rabbit.png +0 -0
  94. data/doc/_site/images/screenshots/ja/ranguba-raw.png +0 -0
  95. data/doc/_site/images/screenshots/ja/ranguba.png +0 -0
  96. data/doc/_site/images/screenshots/ja/red-frame-raw.png +0 -0
  97. data/doc/_site/images/screenshots/ja/red-frame.png +0 -0
  98. data/doc/_site/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  99. data/doc/_site/images/screenshots/ja/ruby-gnome2.png +0 -0
  100. data/doc/_site/images/us.png +0 -0
  101. data/doc/_site/index.html.en +122 -0
  102. data/doc/_site/index.html.ja +122 -0
  103. data/doc/_site/ja/about.html +120 -0
  104. data/doc/_site/ja/development.html +141 -0
  105. data/doc/_site/ja/faq.html +232 -0
  106. data/doc/_site/ja/hiki.html +416 -0
  107. data/doc/_site/ja/how-to-make/hiki.html +113 -0
  108. data/doc/_site/ja/how-to-make/index.html +135 -0
  109. data/doc/_site/ja/how-to-make/pdf.html +112 -0
  110. data/doc/_site/ja/how-to-make/rd.html +161 -0
  111. data/doc/_site/ja/how-to-make/theme.html +254 -0
  112. data/doc/_site/ja/index.html +351 -0
  113. data/doc/_site/ja/install/homebrew.html +279 -0
  114. data/doc/_site/ja/install/index.html +146 -0
  115. data/doc/_site/ja/install/macports.html +177 -0
  116. data/doc/_site/ja/install/windows.html +200 -0
  117. data/doc/_site/ja/news.html +926 -0
  118. data/doc/_site/ja/rd.html +565 -0
  119. data/doc/_site/ja/sample/hiki/rabbit.html +390 -0
  120. data/doc/_site/ja/sample/index.html +117 -0
  121. data/doc/_site/ja/sample/rd/rabbit.html +580 -0
  122. data/doc/_site/ja/slides.html +142 -0
  123. data/doc/_site/ja/usage.html +458 -0
  124. data/doc/_site/ja/users.html +331 -0
  125. data/doc/_site/javascripts/jquery-ui.js +11544 -0
  126. data/doc/_site/javascripts/jquery.js +7179 -0
  127. data/doc/_site/screenshot.en.rab +10 -0
  128. data/doc/_site/screenshot.ja.rab +10 -0
  129. data/doc/css/jquery-ui/themes/ui-lightness.css +573 -0
  130. data/doc/css/rabbit.css +247 -0
  131. data/doc/en/development.rd +50 -0
  132. data/doc/en/faq.rd +18 -0
  133. data/doc/en/hiki.hiki +325 -0
  134. data/doc/en/how-to-make/hiki.hiki +9 -0
  135. data/doc/en/how-to-make/index.rd +25 -0
  136. data/doc/en/how-to-make/pdf.rd +7 -0
  137. data/doc/en/how-to-make/rd.rd +66 -0
  138. data/doc/en/how-to-make/theme.rd +135 -0
  139. data/doc/en/index.rd +276 -0
  140. data/doc/en/install/homebrew.rd +196 -0
  141. data/doc/en/install/index.rd +63 -0
  142. data/doc/en/install/macports.rd +77 -0
  143. data/doc/en/install/windows.rd +103 -0
  144. data/{NEWS.en → doc/en/news.rd} +78 -3
  145. data/doc/en/rd.rd +481 -0
  146. data/doc/en/sample/hiki/rabbit.hiki +389 -0
  147. data/doc/en/sample/index.rd +11 -0
  148. data/doc/en/sample/rd/rabbit.rd +467 -0
  149. data/doc/en/slides.rd +7 -0
  150. data/doc/en/usage.rd +365 -0
  151. data/doc/en/users.rd +29 -0
  152. data/doc/favicon.ico +0 -0
  153. data/doc/favicon.png +0 -0
  154. data/doc/images/background-sample.svg +290 -0
  155. data/doc/images/background.png +0 -0
  156. data/doc/images/background.svg +131 -0
  157. data/doc/images/hare-and-tortoise.png +0 -0
  158. data/doc/images/hare-and-tortoise.svg +541 -0
  159. data/doc/images/jp.png +0 -0
  160. data/doc/images/lavie-icon.png +0 -0
  161. data/doc/images/lavie.png +0 -0
  162. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  163. data/doc/images/screenshots/en/blue-circle.png +0 -0
  164. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  165. data/doc/images/screenshots/en/clear-blue.png +0 -0
  166. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  167. data/doc/images/screenshots/en/cozmixng.png +0 -0
  168. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  169. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  170. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  171. data/doc/images/screenshots/en/day-white.png +0 -0
  172. data/doc/images/screenshots/en/debian-raw.png +0 -0
  173. data/doc/images/screenshots/en/debian.png +0 -0
  174. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  175. data/doc/images/screenshots/en/green-circle.png +0 -0
  176. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  177. data/doc/images/screenshots/en/night-black.png +0 -0
  178. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  179. data/doc/images/screenshots/en/rabbit.png +0 -0
  180. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  181. data/doc/images/screenshots/en/ranguba.png +0 -0
  182. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  183. data/doc/images/screenshots/en/red-frame.png +0 -0
  184. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  185. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  186. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  187. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  188. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  189. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  190. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  191. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  192. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  193. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  194. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  195. data/doc/images/screenshots/ja/day-white.png +0 -0
  196. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  197. data/doc/images/screenshots/ja/debian.png +0 -0
  198. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  199. data/doc/images/screenshots/ja/green-circle.png +0 -0
  200. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  201. data/doc/images/screenshots/ja/night-black.png +0 -0
  202. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  203. data/doc/images/screenshots/ja/rabbit.png +0 -0
  204. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  205. data/doc/images/screenshots/ja/ranguba.png +0 -0
  206. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  207. data/doc/images/screenshots/ja/red-frame.png +0 -0
  208. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  209. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  210. data/doc/images/us.png +0 -0
  211. data/doc/index.html.en +48 -0
  212. data/doc/index.html.ja +48 -0
  213. data/doc/ja/about.rd +21 -0
  214. data/doc/ja/development.rd +49 -0
  215. data/doc/ja/faq.rd +177 -0
  216. data/doc/ja/hiki.hiki +319 -0
  217. data/doc/ja/how-to-make/hiki.hiki +9 -0
  218. data/doc/ja/how-to-make/index.rd +25 -0
  219. data/doc/ja/how-to-make/pdf.rd +8 -0
  220. data/doc/ja/how-to-make/rd.rd +83 -0
  221. data/doc/ja/how-to-make/theme.rd +142 -0
  222. data/doc/ja/index.rd +283 -0
  223. data/doc/ja/install/homebrew.rd +196 -0
  224. data/doc/ja/install/index.rd +65 -0
  225. data/doc/ja/install/macports.rd +105 -0
  226. data/doc/ja/install/windows.rd +100 -0
  227. data/{NEWS.ja → doc/ja/news.rd} +84 -3
  228. data/doc/ja/rd.rd +489 -0
  229. data/doc/ja/sample/hiki/rabbit.hiki +405 -0
  230. data/doc/ja/sample/index.rd +11 -0
  231. data/doc/ja/sample/rd/rabbit.rd +475 -0
  232. data/doc/ja/slides.rd +29 -0
  233. data/doc/ja/usage.rd +380 -0
  234. data/doc/ja/users.rd +173 -0
  235. data/doc/javascripts/jquery-ui.js +11544 -0
  236. data/doc/javascripts/jquery.js +7179 -0
  237. data/doc/screenshot.en.rab +10 -0
  238. data/doc/screenshot.ja.rab +10 -0
  239. data/lib/rabbit/action/toggle.rb +0 -14
  240. data/lib/rabbit/canvas.rb +42 -46
  241. data/lib/rabbit/console.rb +9 -1
  242. data/lib/rabbit/front.rb +1 -1
  243. data/lib/rabbit/keys.rb +0 -8
  244. data/lib/rabbit/logger/gui.rb +3 -5
  245. data/lib/rabbit/parser/pdf.rb +1 -1
  246. data/lib/rabbit/parser/wiki/output.rb +17 -1
  247. data/lib/rabbit/rabbit.rb +12 -1
  248. data/lib/rabbit/renderer/base.rb +0 -25
  249. data/lib/rabbit/renderer/display/clutter-embed.rb +5 -69
  250. data/lib/rabbit/renderer/display/drawing-area.rb +0 -2
  251. data/lib/rabbit/renderer/display/key-handler.rb +0 -8
  252. data/lib/rabbit/source/base.rb +4 -0
  253. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +4 -8
  254. data/lib/rabbit/theme/clutter-comment/clutter-comment.rb +76 -0
  255. data/lib/rabbit/theme/clutter-comment/property.rb +3 -0
  256. data/lib/rabbit/theme/color-circle/color-circle.rb +3 -0
  257. data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
  258. data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
  259. data/lib/rabbit/theme/debian/debian.rb +125 -145
  260. data/lib/rabbit/theme/default/default.rb +6 -0
  261. data/lib/rabbit/theme/footer-comment/footer-comment.rb +46 -0
  262. data/lib/rabbit/theme/footer-comment/property.rb +3 -0
  263. data/lib/rabbit/theme/image/image.rb +3 -2
  264. data/lib/rabbit/theme/per-slide-background-color/property.rb +1 -1
  265. data/lib/rabbit/theme/slide-number/slide-number.rb +9 -3
  266. data/lib/rabbit/theme/stream-comment/property.rb +3 -0
  267. data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
  268. data/lib/rabbit/theme/tag/property.rb +1 -1
  269. data/lib/rabbit/theme/title-background-image/title-background-image.rb +6 -5
  270. data/lib/rabbit/theme/twitter-comment/property.rb +4 -0
  271. data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +15 -0
  272. data/lib/rabbit/twitter.rb +216 -0
  273. data/lib/rabbit/utils.rb +26 -0
  274. data/misc/emacs/README.ja +1 -1
  275. data/misc/emacs/rabbit-mode.el +1 -1
  276. data/po/en/rabbit.po +429 -267
  277. data/po/fr/rabbit.po +440 -268
  278. data/po/ja/rabbit.po +455 -270
  279. data/po/rabbit.pot +2567 -0
  280. data/sample/rabbit-en.hiki +384 -0
  281. data/sample/rabbit-en.rd +1 -1
  282. data/sample/rabbit-implementation.rd +1 -1
  283. data/sample/rabbit.hiki +85 -13
  284. data/sample/rabbit.rd +1 -1
  285. data/sample/theme-bench-en.hiki +100 -0
  286. data/sample/theme-bench.hiki +101 -0
  287. metadata +413 -118
  288. data/README.en +0 -850
  289. data/README.ja +0 -885
  290. data/bin/rabbit.bat +0 -8
  291. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  292. data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
  293. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  294. data/lib/rabbit/comment-canvas.rb +0 -21
  295. data/lib/rabbit/comment/log.rb +0 -74
  296. data/lib/rabbit/renderer/display/comment-drawing-area.rb +0 -175
  297. data/lib/rabbit/renderer/display/comment.rb +0 -194
  298. data/lib/rabbit/theme/comment/comment.rb +0 -5
  299. data/lib/rabbit/theme/comment/property.rb +0 -3
  300. data/lib/rt/rt2html-lib.rb +0 -157
  301. data/lib/rt/rtparser.rb +0 -226
  302. data/lib/rt/rtvisitor.rb +0 -68
  303. data/lib/rwiki/soap/common.rb +0 -5
  304. data/lib/rwiki/soap/driver.rb +0 -43
  305. data/lib/rwiki/soap/servant.rb +0 -78
  306. data/sample/asahina/alice.png +0 -0
  307. data/sample/asahina/yukiusa.png +0 -0
  308. data/sample/momo/banner/bn1.png +0 -0
  309. data/sample/momo/banner/bn2.png +0 -0
  310. data/sample/momo/banner/bn_psd.psd +0 -0
  311. data/sample/momo/banner/bn_psd2.psd +0 -0
  312. data/sample/momo/tailavi/tailavi-ruby.png +0 -0
  313. data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
  314. data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
  315. data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
  316. data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
  317. data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
  318. data/sample/momo/tailavi/taiyaki.png +0 -0
  319. data/sample/momo/tailavi/taiyaki.psd +0 -0
  320. data/sample/momo/usako/blue_dot.png +0 -0
  321. data/sample/momo/usako/green_dot.png +0 -0
  322. data/sample/momo/usako/rabbit.png +0 -0
  323. data/sample/momo/usako/rabbit_mimi.png +0 -0
  324. data/sample/momo/usako/rabbit_mimi2.png +0 -0
  325. data/sample/momo/usako/red_dot.png +0 -0
  326. data/sample/momo/usako/ruby.png +0 -0
  327. data/sample/momo/usako/ruby_new.png +0 -0
  328. data/sample/momo/usako/usa1.png +0 -0
  329. data/sample/momo/usako/usa2.png +0 -0
  330. data/sample/momo/usako/usa3.png +0 -0
  331. data/sample/momo/usako/usako_psd.psd +0 -0
  332. data/sample/momo/usako/usako_psd_200.png +0 -0
  333. data/sample/rabbit-balloon.eps +0 -233
  334. data/sample/sode/kame-color.riff +0 -0
  335. data/sample/sode/kame.riff +0 -0
  336. data/sample/usatti/kame-taro.png +0 -0
  337. data/sample/usatti/rabbit-pink-logo.png +0 -0
  338. data/sample/usatti/rabbit-pink-logo2.png +0 -0
  339. data/sample/usatti/ruby-pink-circle-logo.png +0 -0
  340. data/sample/usatti/ruby-pink-circle.png +0 -0
  341. data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
  342. data/sample/usatti/ruby-pink-polygon.png +0 -0
  343. data/sample/usatti/tanu-kitaro.png +0 -0
  344. data/sample/usatti/usa-taro.png +0 -0
  345. data/sample/usatti/yukidaru-taro.png +0 -0
@@ -1,5 +0,0 @@
1
- @xx_large_font_size ||= screen_size(10 * Pango::SCALE)
2
- @lightning_talk_as_large_as_possible = true
3
- include_theme("lightning-talk")
4
-
5
- proc_name = "comment"
@@ -1,3 +0,0 @@
1
- @category = N_("Theme")
2
- @title = N_("Comment")
3
- @description = N_("A theme for comment window")
@@ -1,157 +0,0 @@
1
- =begin
2
- rt2html-lib.rb
3
- $Id: rt2html-lib.rb 433 2006-11-07 00:45:14Z znz $
4
- =end
5
- require 'rt/rtvisitor'
6
-
7
- module RT
8
- class RT2HTMLVisitor < RTVisitor
9
- OUTPUT_SUFFIX = "html"
10
- INCLUDE_SUFFIX = ["html"]
11
-
12
- def initialize
13
- super
14
- end
15
-
16
- def block(name)
17
- %Q[<!-- #{name} -->\n] +
18
- yield +
19
- %Q[<!-- #{name} end -->\n\n]
20
- end
21
- private :block
22
-
23
- def setup
24
- block('setup') do
25
- s = %Q[<table border="1">\n]
26
- s << %Q[<caption>#{caption}</caption>\n] if caption
27
- s
28
- end
29
- end
30
-
31
- def teardown
32
- block('teardown') do
33
- %Q[</table>\n]
34
- end
35
- end
36
-
37
- def cell_element(cell, name)
38
- rs, cs = cell.rowspan, cell.colspan
39
- if rs == 1 and cs == 1
40
- ret = "<#{name}>"
41
- elsif rs == 1
42
- ret = %Q[<#{name} colspan="#{cs}">]
43
- elsif cs == 1
44
- ret = %Q[<#{name} rowspan="#{rs}">]
45
- else
46
- ret = %Q[<#{name} colspan="#{cs}" rowspan="#{rs}">]
47
- end
48
- ret
49
- end
50
- private :cell_element
51
-
52
- def visit_Header(ary = @header)
53
- block('Header') do
54
- if ary.empty?
55
- ""
56
- else
57
- ret = "<thead>\n"
58
- ary.each do |line|
59
- ret << '<tr>'
60
- each_cell(line) do |cell|
61
- ret << cell_element(cell, 'th')
62
- ret << cell.value
63
- ret << '</th>'
64
- end
65
- ret << "</tr>\n"
66
- end
67
- ret << "</thead>\n"
68
- end
69
- end
70
- end
71
-
72
- def visit_Body(ary = @body)
73
- block('Body') do
74
- ret = "<tbody>\n"
75
- ary.each do |line|
76
- ret << '<tr>'
77
- each_cell(line) do |cell|
78
- ret << cell_element(cell, %Q[td align="#{cell.align.id2name}"])
79
- ret << cell.value
80
- ret << '</td>'
81
- end
82
- ret << "</tr>\n"
83
- end
84
- ret << "</tbody>\n"
85
- end
86
- end
87
-
88
- end # RT2HTMLVisitor
89
- end
90
- $Visitor_Class = RT::RT2HTMLVisitor
91
- if __FILE__ == $0
92
- require 'runit-init'
93
-
94
- include RT
95
- class RT2HTMLVisitorTest < RUNIT::TestCase
96
- def setup
97
- @x = RT2HTMLVisitor::new
98
- @x.visit(RTParser::parse(<<-END))
99
- caption = ɽ�ƥ���
100
-
101
- , �ʹ�, == , �� , ==
102
- || , �� , �� ,����,�᥹
103
-
104
- x , 1.0 , 2.0, 1.1, 1.2
105
- y , 0.4 , 0.5, 0.3, 0.1
106
- END
107
- end
108
-
109
- def uncomment(str)
110
- rep = "\001"
111
- #if str =~ /\A<!--\s+.+?\s+-->\n(.+)<!--\s+.+?\s+-->\n\n\Z/p# POSIX
112
- if str.gsub(/\n/, rep) =~ /\A<!--\s+.+?\s+-->#{rep}(.+)<!--\s+.+?\s+-->#{rep}#{rep}\Z/
113
- #$1
114
- $1.gsub(/#{rep}/, "\n")
115
- else
116
- assert_fail("not RTBlock format")
117
- end
118
- end
119
-
120
- def test_setup
121
- lines =
122
- %Q[<table border="1">\n] +
123
- %Q[<caption>ɽ�ƥ���</caption>\n]
124
- assert_equal(lines, uncomment(@x.setup))
125
- end
126
-
127
- def test_teardown
128
- assert_equal(%Q[</table>\n], uncomment(@x.teardown))
129
- end
130
-
131
- def test_visit_Header
132
- lines =
133
- %Q[<thead>\n] +
134
- %Q[<tr><th rowspan="2"></th><th colspan="2">�ʹ�</th><th colspan="2">��</th></tr>\n] +
135
- %Q[<tr><th>��</th><th>��</th><th>����</th><th>�᥹</th></tr>\n] +
136
- %Q[</thead>\n]
137
- assert_equal(lines, uncomment(@x.visit_Header))
138
- end
139
-
140
- def test_visit_Body
141
- lines =
142
- %Q[<tbody>\n] +
143
- %Q[<tr><td align="left">x</td><td align="right">1.0</td><td align="right">2.0</td><td align="right">1.1</td><td align="right">1.2</td></tr>\n] +
144
- %Q[<tr><td align="left">y</td><td align="right">0.4</td><td align="right">0.5</td><td align="right">0.3</td><td align="right">0.1</td></tr>\n] +
145
- %Q[</tbody>\n]
146
- assert_equal(lines, uncomment(@x.visit_Body))
147
- end
148
-
149
- def test0
150
- assert_equal(RT::RTCell, RT::RTCell::new("a").type)
151
- end
152
-
153
- end
154
- testrunner RT2HTMLVisitorTest
155
- end
156
-
157
-
data/lib/rt/rtparser.rb DELETED
@@ -1,226 +0,0 @@
1
- #!/usr/bin/ruby
2
- =begin
3
- rtparser.rb
4
- $Id: rtparser.rb 433 2006-11-07 00:45:14Z znz $
5
- =end
6
- module RT
7
- class RTCell
8
- def initialize(value, align = nil)
9
- @rowspan = @colspan = 1
10
- @value = value
11
- @align = case align # {:left, :center :right}
12
- when :left, :center, :right
13
- align
14
- when nil
15
- if /^[+\-]?[0-9]+\.?[0-9]*/ === value
16
- :right
17
- else
18
- :left
19
- end
20
- else
21
- raise "[BUG]Illegal align type"
22
- end
23
- end
24
- def == (x)
25
- case x
26
- when self.class
27
- self.value == "" && x.value == "" || self.value == x.value && self.align == x.align
28
- else
29
- false
30
- end
31
- end
32
- def inspect
33
- if value==""
34
- "()"
35
- else
36
- a = case align
37
- when :left
38
- "l"
39
- when :center
40
- "c"
41
- when :right
42
- "r"
43
- else
44
- raise "[BUG]Illegal align type"
45
- end
46
- "#{a}(#{value})"
47
- end
48
- end
49
-
50
- attr_reader :value, :align
51
- attr_accessor :rowspan, :colspan
52
- end
53
-
54
- class RTParser
55
- DefaultConfig = {
56
- 'delimiter' => "[,\t]",
57
- 'rowspan' => "||",
58
- 'colspan' => "==",
59
- 'escape' => nil,
60
- 'caption' => nil,
61
- }
62
-
63
- def initialize(str="")
64
- @str = str.dup
65
- normalize_linefeed! @str
66
- @config_line = []
67
- @header_line = []
68
- @body_line = []
69
- @config = DefaultConfig.dup
70
- @header = []
71
- @body = []
72
- end
73
- attr_reader :str, :config, :header, :body
74
-
75
- def normalize_linefeed!(str)
76
- str.gsub!("\r\n", "\n")
77
- str.gsub!("\r", "\n")
78
- end
79
-
80
- def self::parse(str)
81
- obj = self::new str
82
- obj.make_blocks
83
- obj.parse_config
84
- obj.parse_header
85
- obj.parse_body
86
- obj.calc_span(obj.header)
87
- obj.calc_span(obj.body)
88
- obj
89
- end
90
-
91
- def blocks
92
- [@config_line, @header_line, @body_line]
93
- end
94
-
95
- def make_blocks(str = @str)
96
- part = str.split(/\n\n/).collect{|x| x.split(/\n/)}
97
- case part.length
98
- when 0
99
- when 1
100
- @body_line, = part
101
- when 2
102
- @config_line, @body_line = part
103
- when 3
104
- @config_line, @header_line, @body_line = part
105
- else
106
- raise "RT: blocks are too many."
107
- end
108
- self
109
- end
110
-
111
- def parse_config(lines = @config_line)
112
- lines.each do |line|
113
- case line
114
- when /^#/ # comment
115
- when /^\s*(\S+)\s*=\s*(.+)$/
116
- @config[$1] = $2
117
- else
118
- raise "RT: syntax error in config block"
119
- end
120
- end
121
- self
122
- end
123
-
124
- def split2(str,re)
125
- ret = str.split(re, -1)
126
- end
127
- private :split2
128
-
129
- ESCAPE_TMP = "\001\002"
130
- def _escape!(str)
131
- esc = config['escape']
132
- str.gsub!(/#{Regexp.quote(esc)}#{config['delimiter']}/, ESCAPE_TMP) if esc
133
- end
134
- private :_escape!
135
-
136
- def _unescape!(str)
137
- str.gsub!(/#{ESCAPE_TMP}/, config['delimiter'])
138
- end
139
- private :_unescape!
140
-
141
- def parse_table_data(lines) # iterator
142
- ret = []
143
- lines.each do |line|
144
- case line
145
- when /^#/ # comment
146
- else
147
- _escape! line
148
- ret << split2(line, /\s*#{config['delimiter']}\s*/).collect {|x|
149
- _unescape! x
150
- yield(x.strip)
151
- }
152
- end
153
- end
154
- unless ret.find_all{|x| x.length == ret[0].length} == ret
155
- raise "RT: different column size"
156
- end
157
- ret
158
- end
159
- private :parse_table_data
160
-
161
- def _make_cell(x, align)
162
- case x
163
- when config['rowspan'], config['colspan']
164
- x
165
- else
166
- RTCell::new(x, align)
167
- end
168
- end
169
- private :_make_cell
170
-
171
- def parse_header(lines = @header_line)
172
- @header = parse_table_data(lines) {|x|
173
- _make_cell x, :center
174
- }
175
- self
176
- end
177
-
178
- def parse_body(lines = @body_line)
179
- @body = parse_table_data(lines) {|x|
180
- _make_cell x, nil
181
- }
182
- self
183
- end
184
-
185
- def calc_span(tbl)
186
- return if tbl.empty?
187
- cols = tbl[0].length
188
- tbl.each do |row|
189
- row.each_with_index do |elm, j|
190
- case elm
191
- when String
192
- when RTCell
193
- nspan = 1
194
- 1.upto(cols-j-1) do |k|
195
- break unless row[j+k] == config['colspan']
196
- nspan += 1
197
- end
198
- row[j].colspan = nspan
199
- else
200
- raise "[BUG] invalid cell"
201
- end
202
- end
203
- end
204
-
205
- rows = tbl.length
206
- 0.upto(cols-1) do |j|
207
- 0.upto(rows-1) do |i|
208
- case tbl[i][j]
209
- when String
210
- when RTCell
211
- nspan = 1
212
- 1.upto(rows-i-1) do |k|
213
- break unless tbl[i+k][j] == config['rowspan']
214
- nspan += 1
215
- end
216
- tbl[i][j].rowspan = nspan
217
- else
218
- raise "[BUG] invalid cell"
219
- end
220
- end
221
- end
222
- end
223
- end # class RTCell, RTParser
224
- end # module RT
225
-
226
-
data/lib/rt/rtvisitor.rb DELETED
@@ -1,68 +0,0 @@
1
- #!/usr/bin/ruby
2
- =begin
3
- rtvisitor.rb
4
- $Id: rtvisitor.rb 433 2006-11-07 00:45:14Z znz $
5
- =end
6
- require 'rt/rtparser'
7
-
8
- module RT
9
- class RTVisitor
10
- def each_cell(ary)
11
- ary.each do |x|
12
- if x.class == RT::RTCell
13
- yield x
14
- else
15
- end
16
- end
17
- end
18
- private :each_cell
19
-
20
- def initialize
21
- end
22
- attr_reader :rt, :header, :body, :caption
23
- attr_accessor :filename, :charcode
24
-
25
- def self.visit(parsed)
26
- self::new.visit(parsed)
27
- end
28
-
29
- def visit(parsed)
30
- @filename = @charset = nil
31
- @rt = parsed
32
- @header = @rt.header
33
- @body = @rt.body
34
- @caption = @rt.config['caption']
35
-
36
- setup +
37
- visit_Caption +
38
- visit_Header +
39
- visit_Body +
40
- teardown
41
- end
42
-
43
- def setup
44
- ""
45
- end
46
-
47
- def teardown
48
- ""
49
- end
50
-
51
- def visit_Caption
52
- ""
53
- end
54
-
55
- def visit_Header
56
- ""
57
- end
58
-
59
- def visit_Body
60
- ""
61
- end
62
- end
63
- end
64
-
65
-
66
-
67
-
68
-