rabbit 0.9.2 → 0.9.3

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 (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
data/Gemfile ADDED
@@ -0,0 +1,16 @@
1
+ # -*- ruby -*-
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem 'gtk2'
6
+ gem 'rsvg2'
7
+ gem 'poppler'
8
+ gem 'hikidoc'
9
+ gem 'twitter-stream'
10
+ gem 'twitter_oauth'
11
+
12
+ group :development, :test do
13
+ gem 'rake'
14
+ gem 'jeweler'
15
+ gem 'jekyll'
16
+ end
data/README ADDED
@@ -0,0 +1 @@
1
+ See doc/ or http://rabbit-shockers.org/.
data/Rakefile CHANGED
@@ -2,73 +2,65 @@
2
2
 
3
3
  require 'find'
4
4
  require 'rubygems'
5
- require 'hoe'
5
+ require 'rubygems/package_task'
6
+ require 'jeweler'
6
7
 
7
8
  base_dir = File.expand_path(File.dirname(__FILE__))
8
9
  $LOAD_PATH.unshift(File.join(base_dir, 'lib'))
9
10
  require 'rabbit/rabbit'
10
11
 
11
- truncate_base_dir = Proc.new do |x|
12
- x.gsub(/\A#{Regexp.escape(base_dir + File::SEPARATOR)}/, '')
13
- end
12
+ rsync_base_path = "rabbit@rabbit-shockers.org:public_html/"
14
13
 
15
- manifest = File.join(base_dir, "Manifest.txt")
16
- manifest_contents = []
17
- base_dir_included_components = %w(COPYING COPYING.ja GPL Manifest.txt
18
- NEWS.en
19
- NEWS.ja
20
- README.en
21
- README.ja
22
- Rakefile TODO setup.rb
23
- update-mo.rb update-po.rb)
24
- excluded_components = %w(.svn .test-result .tmp doc log tmp pkg config.rb)
25
- excluded_suffixes = %w(.po~)
26
- white_list_paths = []
27
- Find.find(base_dir + File::SEPARATOR) do |target|
28
- target = truncate_base_dir[target]
29
- components = target.split(File::SEPARATOR)
30
- next if components.empty?
31
- if components.size == 1 and !File.directory?(target)
32
- next unless base_dir_included_components.include?(components[0])
33
- end
34
- unless white_list_paths.include?(target)
35
- Find.prune if (excluded_components - components) != excluded_components
36
- next if /~\z/ =~ target
37
- next if excluded_suffixes.include?(File.extname(target))
14
+ ENV["VERSION"] ||= Rabbit::VERSION
15
+ version = ENV["VERSION"].dup
16
+ spec = nil
17
+ Jeweler::Tasks.new do |_spec|
18
+ spec = _spec
19
+ spec.name = "rabbit"
20
+ spec.version = version.dup
21
+ spec.rubyforge_project = "rabbit"
22
+ spec.homepage = "http://rabbit-shockers.org/"
23
+ spec.authors = ["Kouhei Sutou"]
24
+ spec.email = ["kou@cozmixng.org"]
25
+ spec.summary = 'Rabbit is an RD-document-based presentation application.'
26
+ spec.description = spec.summary # FIXME
27
+ spec.license = "GPLv2+"
28
+ Bundler.load.dependencies_for(:default).each do |dependency|
29
+ spec.add_runtime_dependency(dependency.name, dependency.requirement.to_s)
38
30
  end
39
- manifest_contents << target if File.file?(target)
31
+
32
+ spec.files = FileList["{lib,data,entities,bin,sample,misc,doc,po}/**/*",
33
+ "*.rb",
34
+ "Rakefile",
35
+ "COPYING",
36
+ "GPL",
37
+ "README",
38
+ "Gemfile"]
39
+ spec.test_files = FileList["test/**/*.rb"]
40
+ spec.executables -= ["rabbit.bat"]
40
41
  end
41
42
 
42
- File.open(manifest, "w") do |f|
43
- f.puts manifest_contents.sort.join("\n")
43
+ Jeweler::RubygemsDotOrgTasks.new
44
+
45
+ def force_array(enumerable)
46
+ array = []
47
+ enumerable.each do |element|
48
+ array << element
49
+ end
50
+ array
44
51
  end
45
- at_exit do
46
- FileUtils.rm_f(manifest)
52
+
53
+ def spec.files
54
+ @files = force_array(super)
47
55
  end
48
56
 
49
- ENV["VERSION"] = Rabbit::VERSION
50
- project = Hoe.spec('rabbit') do
51
- self.version = Rabbit::VERSION
52
- self.rubyforge_name = 'rabbit'
53
- self.author = ['Kouhei Sutou']
54
- self.email = ['kou@cozmixng.org']
55
- self.summary = 'Rabbit is an RD-document-based presentation application.'
56
- self.url = 'http://www.cozmixng.org/~rwiki/?cmd=view;name=Rabbit'
57
- self.test_globs = ['test/test_*.rb']
58
- self.changes = File.read('NEWS.en').split(/^== /)[1].gsub(/^==/, '').strip
59
- self.extra_deps = [
60
- ['gtk2'],
61
- ['gdk_pixbuf2'],
62
- ['rsvg2'],
63
- ['poppler'],
64
- ['hikidoc'],
65
- # ['gettext'],
66
- ]
67
- self.description = self.summary # FIXME
68
- self.need_tar = false
57
+ def spec.extra_rdoc_files
58
+ @extra_rdoc_files = force_array(super)
69
59
  end
70
60
 
71
- project.spec.executables -= ["rabbit.bat"]
61
+ Gem::PackageTask.new(spec) do |package|
62
+ package.need_tar_gz = true
63
+ end
72
64
 
73
65
  rule '.png' => ['.svg'] do |t|
74
66
  sh("inkscape", "--export-png", t.name, t.source)
@@ -83,3 +75,119 @@ end
83
75
  sh("inkscape", "--export-png", t.name, *t.prerequisites)
84
76
  end
85
77
  end
78
+
79
+ namespace :entity do
80
+ desc "Update entities"
81
+ task :update do
82
+ sh("entities/ent2rb.rb entities/*.ent")
83
+ end
84
+ end
85
+
86
+ namespace :html do
87
+ screenshots = []
88
+
89
+ languages = ["ja", "en"]
90
+ languages.each do |lang|
91
+ screenshots_dir = "doc/images/screenshots/#{lang}"
92
+ directory screenshots_dir
93
+
94
+ screenshot_rab = "doc/screenshot.#{lang}.rab"
95
+
96
+ screenshot_themes = ["blue-circle", "clear-blue", "cozmixng",
97
+ "dark-gradation", "day-white",
98
+ "debian", "green-circle", "night-black",
99
+ "rabbit", "ranguba", "red-frame", "ruby-gnome2"]
100
+ screenshot_themes.each do |theme|
101
+ screenshot_base_name = "#{screenshots_dir}/#{theme}"
102
+ screenshot_raw = "#{screenshot_base_name}-raw.png"
103
+ screenshot = "#{screenshot_base_name}.png"
104
+ screenshots << screenshot
105
+
106
+ file screenshot_raw => [screenshots_dir, screenshot_rab, __FILE__] do
107
+ ruby("-I", "lib", "bin/rabbit",
108
+ "--save-as-image",
109
+ "--theme", theme,
110
+ "--size", "200,150",
111
+ "--saved-image-base-name", screenshot_base_name,
112
+ screenshot_rab)
113
+ mv("#{screenshot_base_name}-0.png", screenshot_raw)
114
+ end
115
+
116
+ file screenshot => screenshot_raw do
117
+ true_value = 1
118
+ false_value = 0
119
+ run_mode = false_value
120
+ offset_x = 8
121
+ offset_y = 8
122
+ blur_radius = 15.0
123
+ black = "'(122 122 122)"
124
+ shadow_color = black
125
+ opacity = 80.0
126
+ allow_resizing = true_value
127
+ drop_shadow = <<-EOC
128
+ (let* ((image (car (gimp-file-load RUN-NONINTERACTIVE
129
+ "#{screenshot_raw}"
130
+ "#{screenshot_raw}")))
131
+ (picture-layer (car (gimp-image-get-active-drawable image))))
132
+ (script-fu-drop-shadow image picture-layer
133
+ #{offset_x} #{offset_y}
134
+ #{blur_radius} #{shadow_color}
135
+ #{opacity} #{allow_resizing})
136
+ (let ((layer (car (gimp-image-merge-visible-layers image CLIP-TO-IMAGE))))
137
+ (file-png-save-defaults RUN-NONINTERACTIVE image layer
138
+ "#{screenshot}"
139
+ "#{screenshot}"))
140
+ (gimp-image-delete image))
141
+ EOC
142
+ sh("gimp",
143
+ "-i",
144
+ "-b", drop_shadow,
145
+ "-b", "(gimp-quit TRUE)")
146
+ end
147
+ end
148
+ end
149
+
150
+ desc "generate HTML and needed files."
151
+ task :generate => screenshots do
152
+ Dir.chdir("doc") do
153
+ sh("ruby", "-S", "jekyll")
154
+ end
155
+ end
156
+
157
+ desc "publish HTML."
158
+ task :publish => :generate do
159
+ sh("rsync", "-avz", "--delete",
160
+ "--exclude", "*.svn",
161
+ "--exclude", "*-raw.png",
162
+ "--exclude", "*.svg",
163
+ "--exclude", "*.rab",
164
+ "--exclude", "/download/",
165
+ "doc/_site/",
166
+ rsync_base_path)
167
+ end
168
+ end
169
+
170
+ desc "Tag the current revision."
171
+ task :tag do
172
+ sh("git tag -a #{version} -m 'release #{version}!!!'")
173
+ end
174
+
175
+ namespace :package do
176
+ desc "Upload tar.gz."
177
+ task :upload => :package do
178
+ htaccess = ".htaccess"
179
+ rabbit_tar_gz = "rabbit.tar.gz"
180
+ current_rabbit_tar_gz = "rabbit-#{version}.tar.gz"
181
+ File.open(htaccess, "w") do |file|
182
+ file.puts("Options +Indexes +FollowSymlinks")
183
+ end
184
+ ln_s(current_rabbit_tar_gz, rabbit_tar_gz)
185
+ sh("rsync", "-avz",
186
+ htaccess,
187
+ rabbit_tar_gz,
188
+ "pkg/#{current_rabbit_tar_gz}",
189
+ "#{rsync_base_path}download/")
190
+ rm(rabbit_tar_gz)
191
+ rm(htaccess)
192
+ end
193
+ end
data/TODO CHANGED
@@ -1,3 +1,5 @@
1
+ * setup content management system for rabbit-shockers.org.
2
+ gollum? jekyll?
1
3
  * documents all key-bindings and mouse-bindings. (e.g. spotlight)
2
4
  * support centering in table cell.
3
5
  * [BUG]: PDF slide doesn't scale???
data/bin/rabbit CHANGED
@@ -14,7 +14,7 @@ def parse_args(args=ARGV, logger=nil)
14
14
  options.theme = "default"
15
15
  options.theme_specified = false
16
16
  options.base = nil
17
- options.source_type = Rabbit::Source::File
17
+ options.source_type = :auto
18
18
  options.full_screen = false
19
19
  options.index_mode = false
20
20
  options.geometry = nil
@@ -42,7 +42,7 @@ def parse_args(args=ARGV, logger=nil)
42
42
  options.page_margin_top = nil
43
43
  options.page_margin_bottom = nil
44
44
  options.use_druby = true
45
- options.druby_uri = "druby://:10101"
45
+ options.druby_uri = "druby://127.0.0.1:10101"
46
46
  options.output_druby_uri = false
47
47
  options.use_soap = false
48
48
  options.soap_host = "0.0.0.0"
@@ -51,10 +51,8 @@ def parse_args(args=ARGV, logger=nil)
51
51
  options.xmlrpc_host = "0.0.0.0"
52
52
  options.xmlrpc_port = 10104
53
53
  options.server = false
54
- options.default_public_level = "strict"
54
+ options.default_public_level = "all"
55
55
  options.public_level = nil
56
- options.comment_source = nil
57
- options.comment_encoding = nil
58
56
  options.migemo_dictionary_search_path = [
59
57
  File.join(Config::CONFIG["prefix"], "share"),
60
58
  File.join("", "usr", "local", "share"),
@@ -73,9 +71,9 @@ def parse_args(args=ARGV, logger=nil)
73
71
 
74
72
  opts.on("-I", "--include=PATH",
75
73
  _("Add [PATH] to load path.")) do |path|
76
- $LOAD_PATH.unshift(path)
74
+ $LOAD_PATH.unshift(File.expand_path(path))
77
75
  end
78
-
76
+
79
77
  opts.on("-t", "--theme=THEME",
80
78
  _("Use [THEME] as theme."),
81
79
  "(#{options.theme})") do |theme|
@@ -89,6 +87,7 @@ def parse_args(args=ARGV, logger=nil)
89
87
  source_type_names = Rabbit::Source.types.collect do |x|
90
88
  Rabbit::Console.get_last_name(x).downcase
91
89
  end
90
+ source_type_names.unshift("auto")
92
91
  source_type_descs = Rabbit::Source.types.collect do |x|
93
92
  message = _("When select %s\nspecify %s\nas [SOURCE_INFOS].")
94
93
  type = Rabbit::Console.get_last_name(x)
@@ -100,12 +99,15 @@ def parse_args(args=ARGV, logger=nil)
100
99
  _("Specify source type as [TYPE]."),
101
100
  _("Select from [%s].") % source_type_names.join(', '),
102
101
  _("Note: case insensitive."),
103
- "(#{Rabbit::Console.get_last_name(options.source_type)})",
104
- _("(ARGV: if no filename is given)"),
102
+ "(auto)",
105
103
  " ",
106
104
  *source_type_descs) do |source_type|
107
- options.source_type = Rabbit::Source.types.find do |t|
108
- Rabbit::Console.get_last_name(t).downcase == source_type.downcase
105
+ if source_type == "auto"
106
+ options.source_type = :auto
107
+ else
108
+ options.source_type = Rabbit::Source.types.find do |t|
109
+ Rabbit::Console.get_last_name(t).downcase == source_type.downcase
110
+ end
109
111
  end
110
112
  end
111
113
 
@@ -467,15 +469,15 @@ def parse_args(args=ARGV, logger=nil)
467
469
  opts.category _("Comment")
468
470
 
469
471
  opts.on("--comment-source=FILE",
472
+ _("Deprecated. Just ignored."),
470
473
  _("Specify initial comment source."),
471
474
  _("(default source)")) do |name|
472
- options.comment_source = name
473
475
  end
474
476
 
475
477
  opts.on("--comment-encoding=ENCODING",
478
+ _("Deprecated. Just ignored."),
476
479
  _("Specify comment source encoding."),
477
480
  _("(auto)")) do |encoding|
478
- options.comment_encoding = encoding
479
481
  end
480
482
 
481
483
  opts.category _("Migemo")
@@ -523,30 +525,68 @@ def parse_args(args=ARGV, logger=nil)
523
525
  end
524
526
 
525
527
  def make_canvas(options, logger, renderer)
526
- args = [
527
- logger, renderer,
528
- options.comment_source, options.comment_encoding,
529
- ]
530
- Rabbit::Canvas.new(*args)
528
+ Rabbit::Canvas.new(logger, renderer)
529
+ end
530
+
531
+ def add_source_dialog_filter(dialog, name, pattern)
532
+ filter = Gtk::FileFilter.new
533
+ filter.name = "#{name} (#{pattern})"
534
+ filter.add_pattern(pattern)
535
+ dialog.add_filter(filter)
536
+ end
537
+
538
+ def choose_source_file_by_dialog(options)
539
+ dialog = Gtk::FileChooserDialog.new(_("Choose a Rabbit source file"),
540
+ nil,
541
+ Gtk::FileChooser::ACTION_OPEN,
542
+ nil,
543
+ [Gtk::Stock::CANCEL,
544
+ Gtk::Dialog::RESPONSE_CANCEL],
545
+ [Gtk::Stock::OPEN,
546
+ Gtk::Dialog::RESPONSE_ACCEPT])
547
+ dialog.current_folder = options.base if options.base
548
+ add_source_dialog_filter(dialog, "Rabbit files", "*.rab")
549
+ add_source_dialog_filter(dialog, "RD files", "*.rd")
550
+ add_source_dialog_filter(dialog, "Hiki files", "*.hiki")
551
+ add_source_dialog_filter(dialog, "PDF files", "*.pdf")
552
+ add_source_dialog_filter(dialog, "All files", "*")
553
+ file_name = nil
554
+ if dialog.run == Gtk::Dialog::RESPONSE_ACCEPT
555
+ file_name = dialog.filename
556
+ dialog.destroy
557
+ end
558
+ file_name
531
559
  end
532
560
 
533
561
  def make_source(options, argv, logger)
534
- if options.source_type == Rabbit::Source::File and argv.empty?
535
- options.source_type = Rabbit::Source::ARGF
562
+ if options.source_type == :auto
563
+ if argv.empty?
564
+ if Rabbit::Utils.support_console_input?
565
+ options.source_type = Rabbit::Source::ARGF
566
+ else
567
+ file_name = choose_source_file_by_dialog(options)
568
+ exit if file_name.nil?
569
+ argv = [file_name]
570
+ options.source_type = Rabbit::Source::File
571
+ end
572
+ elsif argv.size == 1 and /\Ahttps?:\/\// =~ argv[0]
573
+ options.source_type = Rabbit::Source::URI
574
+ else
575
+ options.source_type = Rabbit::Source::File
576
+ end
536
577
  end
537
578
  if options.source_type == Rabbit::Source::ARGF
538
579
  infos = [ARGF]
539
580
  else
540
581
  infos = argv
541
582
  end
542
- options.source_type.new(options.encoding, logger, *infos)
583
+ source = options.source_type.new(options.encoding, logger, *infos)
584
+ source.base = options.base if options.base
585
+ source
543
586
  end
544
587
 
545
588
  def make_front(canvas, options)
546
589
  level = options.public_level
547
- if options.source_type == Rabbit::Source::Memory or options.server
548
- level ||= "all"
549
- end
550
590
  level ||= options.default_public_level
551
591
  level = level.gsub(/-/, "_").upcase
552
592
  canvas.front(Rabbit::Front::PublicLevel.const_get(level))
@@ -556,9 +596,7 @@ def apply_theme_if_need(target, options)
556
596
  target.apply_theme(options.theme) if options.theme_specified
557
597
  end
558
598
 
559
- def parse(target, options, logger, background=false)
560
- source = make_source(options, ARGV, logger)
561
- source.base = options.base if options.base
599
+ def parse(target, source, background=false)
562
600
  if background
563
601
  callback = Rabbit::Utils.process_pending_events_proc
564
602
  else
@@ -664,13 +702,14 @@ def setup_xmlrpc(front, options, logger)
664
702
  end
665
703
 
666
704
  def do_print(options, logger)
705
+ source = make_source(options, ARGV, logger)
667
706
  renderer = Rabbit::Renderer.printable_renderer(options.slides_per_page)
668
707
  canvas = make_canvas(options, logger, renderer)
669
708
  setup_paper_size(canvas, options)
670
709
  setup_print_info(canvas, options)
671
710
  setup_3d_info(canvas, options)
672
711
  apply_theme_if_need(canvas, options)
673
- parse(canvas, options, logger)
712
+ parse(canvas, source)
674
713
  canvas.print
675
714
  canvas.quit
676
715
  rescue Rabbit::NoPrintSupportError
@@ -681,6 +720,7 @@ def do_save_as_image(options, logger)
681
720
  Rabbit::Renderer::Pixmap.init
682
721
  Rabbit.gui_init
683
722
 
723
+ source = make_source(options, ARGV, logger)
684
724
  canvas = make_canvas(options, logger, Rabbit::Renderer::Pixmap)
685
725
  setup_size(canvas, options)
686
726
  setup_image_info(canvas, options)
@@ -688,7 +728,7 @@ def do_save_as_image(options, logger)
688
728
  setup_paper_size(canvas, options)
689
729
  setup_3d_info(canvas, options)
690
730
  apply_theme_if_need(canvas, options)
691
- parse(canvas, options, logger)
731
+ parse(canvas, source)
692
732
  canvas.activate("ToggleIndexMode") if options.index_mode
693
733
  canvas.save_as_image
694
734
  canvas.quit
@@ -698,6 +738,7 @@ def do_display(options, logger)
698
738
  Rabbit::Renderer::Display.init
699
739
  Rabbit.gui_init
700
740
 
741
+ source = make_source(options, ARGV, logger)
701
742
  canvas = make_canvas(options, logger, Rabbit::Renderer::Display)
702
743
  frame = Rabbit::Frame.new(logger, canvas)
703
744
  frame.geometry = options.geometry
@@ -714,7 +755,7 @@ def do_display(options, logger)
714
755
  logger.info(_("Window ID: %d") % native_window.xid)
715
756
  end
716
757
  apply_theme_if_need(frame, options)
717
- parse(frame, options, logger, !Rabbit::Utils.windows?)
758
+ parse(frame, source, !Rabbit::Utils.windows?)
718
759
  canvas.activate("ToggleIndexMode") if options.index_mode
719
760
 
720
761
  front = make_front(canvas, options)
@@ -727,10 +768,11 @@ end
727
768
 
728
769
  def do_server(options, logger)
729
770
  Rabbit.gui_init
730
-
771
+
731
772
  # GLib::Log.cancel_handler
732
773
  # GLib::Log.set_handler(nil, GLib::Log::LEVEL_ERROR)
733
-
774
+
775
+ source = make_source(options, ARGV, logger)
734
776
  canvas = make_canvas(options, logger, Rabbit::Renderer::Pixmap)
735
777
  setup_size(canvas, options)
736
778
  setup_paper_size(canvas, options)
@@ -738,11 +780,11 @@ def do_server(options, logger)
738
780
  setup_print_info(canvas, options)
739
781
  setup_3d_info(canvas, options)
740
782
  apply_theme_if_need(canvas, options)
741
- parse(canvas, options, logger)
783
+ parse(canvas, source)
742
784
 
743
785
  soap_server_thread = nil
744
786
  xmlrpc_server_thread = nil
745
-
787
+
746
788
  front = make_front(canvas, options)
747
789
  setup_druby(front, options, logger) if options.use_druby
748
790
  if options.use_soap
@@ -780,6 +822,8 @@ def main
780
822
  else
781
823
  do_display(options, logger)
782
824
  end
825
+
826
+ Rabbit.cleanup
783
827
  end
784
828
 
785
829
  main