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
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