rabbit 0.6.4 → 0.9.0

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 (51) hide show
  1. data/COPYING +1 -1
  2. data/NEWS.en +157 -2
  3. data/NEWS.ja +153 -1
  4. data/README.en +8 -1
  5. data/README.ja +8 -1
  6. data/Rakefile +4 -1
  7. data/TODO +17 -0
  8. data/bin/rabbiter +96 -0
  9. data/lib/rabbit/element/block-element.rb +0 -2
  10. data/lib/rabbit/element/block.rb +5 -4
  11. data/lib/rabbit/element/container-element.rb +2 -1
  12. data/lib/rabbit/element/description-list.rb +5 -2
  13. data/lib/rabbit/element/enum-list.rb +4 -0
  14. data/lib/rabbit/element/image.rb +41 -1
  15. data/lib/rabbit/element/item-list.rb +3 -0
  16. data/lib/rabbit/element/method-list.rb +2 -2
  17. data/lib/rabbit/element/poppler-page.rb +1 -0
  18. data/lib/rabbit/element/slide-element.rb +1 -0
  19. data/lib/rabbit/element/slide.rb +1 -1
  20. data/lib/rabbit/element/table.rb +7 -2
  21. data/lib/rabbit/element/tag.rb +1 -0
  22. data/lib/rabbit/element/text-block-element.rb +11 -0
  23. data/lib/rabbit/element/text-container-element.rb +4 -0
  24. data/lib/rabbit/element/text.rb +6 -3
  25. data/lib/rabbit/element/title-slide.rb +10 -10
  26. data/lib/rabbit/parser/ext/aafigure.rb +31 -0
  27. data/lib/rabbit/parser/rd.rb +2 -1
  28. data/lib/rabbit/parser/rd/ext/aafigure.rb +18 -0
  29. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +27 -1
  30. data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +16 -22
  31. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +8 -2
  32. data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +7 -1
  33. data/lib/rabbit/parser/wiki/output.rb +35 -6
  34. data/lib/rabbit/rabbit.rb +7 -1
  35. data/lib/rabbit/renderer/display/clutter-embed.rb +2 -0
  36. data/lib/rabbit/renderer/display/comment-drawing-area.rb +2 -0
  37. data/lib/rabbit/renderer/print/base.rb +6 -1
  38. data/lib/rabbit/theme/applier.rb +1 -1
  39. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +85 -0
  40. data/lib/rabbit/theme/body-background-image/body-background-image.rb +8 -0
  41. data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
  42. data/lib/rabbit/theme/default/default.rb +12 -4
  43. data/lib/rabbit/theme/per-slide-background-image/per-slide-background-image.rb +7 -35
  44. data/lib/rabbit/theme/table/table.rb +13 -11
  45. data/lib/rabbit/theme/tag/property.rb +4 -0
  46. data/lib/rabbit/theme/tag/tag.rb +35 -0
  47. data/lib/rabbit/theme/title-background-image/title-background-image.rb +19 -17
  48. data/sample/rabbit-en.rd +89 -1
  49. data/sample/rabbit.rd +91 -2
  50. data/sample/table.hiki +34 -0
  51. metadata +106 -32
data/COPYING CHANGED
@@ -1,4 +1,4 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
1
+ Rabbit is copyrighted free software by Kouhei Sutou <kou@cozmixng.org>.
2
2
  You can redistribute it and/or modify it under either the terms of the GPL
3
3
  (see the file GPL), or the conditions below:
4
4
 
data/NEWS.en CHANGED
@@ -2,9 +2,164 @@
2
2
 
3
3
  = NEWS.en
4
4
 
5
- $Id: NEWS.en 1358 2010-01-29 14:01:18Z kou $
5
+ $Id: NEWS.en 1410 2010-09-26 03:39:30Z kou $
6
6
 
7
- == Changes 0.6.4 from 0.6.3: 2009-12-16
7
+ == Changes 0.9.0 from 0.6.5: 2010-09-26
8
+
9
+ Applied defalut custom tag styles.
10
+
11
+ === Improvements
12
+
13
+ ==== Theme
14
+
15
+ * background-image-toolkit: Added vertical-align
16
+ paramteter that specifies vertical position.
17
+
18
+ Example:
19
+ # image
20
+ # src = lavie.png
21
+ # relative-width = 30
22
+ # align = right
23
+ # vertical-align = top
24
+ # relative-margin-right = -5
25
+
26
+ * tag: New theme. It provides default style for some
27
+ custome tags. The following custom tags are supports. It
28
+ is enabled by default.
29
+
30
+ * tag:x-large: Made specified text large.
31
+ * tag:center: Placed specified text in center If no text
32
+ is specified, block that has center tag is placed in
33
+ center.
34
+ * tag:right: Placed specified text in right If no text
35
+ is specified, block that has right tag is placed in
36
+ right.
37
+
38
+ Example:
39
+ (('tag:x-large:Large Text'))
40
+
41
+ (('tag:center'))Centerized Text
42
+
43
+ (('tag:right'))Right-Justified Text
44
+
45
+ ==== RD
46
+
47
+ * Supported recursive markup in (('('))('XXX:')((')')) markup.
48
+
49
+ * Supported markup in cells in table.
50
+
51
+ === Fix
52
+
53
+ * Fixed missing require.
54
+ [Reported by OBATA Akio]
55
+ * Fixed aafigure's site URL.
56
+ [Reported by kdmsnr]
57
+ * Changed default align to center of
58
+ background-image-toolkit theme for backward compatibility.
59
+ [Suggested by nari]
60
+ * Renamed Rabbitter to Rabbiter.
61
+
62
+ === Thanks
63
+
64
+ * OBATA Akio
65
+ * kdmsnr
66
+ * nari
67
+
68
+ == Changes 0.6.5 from 0.6.4: 2010-07-31
69
+
70
+ * Added Rabbiter that collects comments from Twitter.
71
+ [OBATA Akio]
72
+ * Supported
73
+ ((<aafigure|URL:https://launchpad.net/aafigure>)).
74
+ [Suggested by kdmsnr]
75
+
76
+ === Improvements
77
+
78
+ * Removed needless newlines from default PDF filename.
79
+ * Worked with \r\n newline. [Reported by zunda]
80
+ * Rabbitter: Added. It collects comments from Twitter.
81
+ [OBATA Akio]
82
+ * Supported aafigure. [Suggested by kdmsnr]
83
+
84
+ ==== Theme
85
+
86
+ * clear-blue: Removed needless newlines from footer text.
87
+ * per-slide-background-iamge:
88
+ Supported "background-image-align: right" slide property.
89
+ [Suggested by kdmsnr]
90
+
91
+ = slide
92
+
93
+ ...
94
+
95
+ == properties
96
+
97
+ : background-image
98
+ lavie.png
99
+
100
+ : background-image-relative-width
101
+ 30
102
+
103
+ : background-image-align
104
+ right
105
+
106
+ : background-image-relative-margin-right
107
+ 3
108
+
109
+ * Supported width parameter 'relative_width' as well as
110
+ 'relative-width'.
111
+
112
+ * body-background-image: Added. It enables "align = right"
113
+ image property:
114
+
115
+ = title
116
+
117
+ # image
118
+ # src = lavie.png
119
+ # relative-width = 30
120
+ # align = right
121
+ # relative-margin-right = -5
122
+
123
+ * Enabled body-background-image and
124
+ per-slide-background-image by default.
125
+
126
+ * background-image-tookit: Added. It is a toolkit for
127
+ shareing common processes in body-background-image and
128
+ per-slide-background-image themes.
129
+
130
+ * title-background-image:
131
+ Supported customize by
132
+ @title_background_image_properties. The same options for
133
+ image element can be used.
134
+ [Suggested by kdmsnr]
135
+
136
+ @title_background_image_properties = {
137
+ :align => :right,
138
+ :as_large_as_possible => false,
139
+ :relative_height => 75,
140
+ }
141
+
142
+ This shows image with the following layout:
143
+ +-----------+
144
+ | +---+|
145
+ | title <- background image
146
+ | +---+|
147
+ +-----------+
148
+
149
+ A background image is showed in center and it is
150
+ resized to as large as possible by default.
151
+
152
+ === Fixes
153
+
154
+ * Fixed comment view doesn't work.
155
+
156
+ === Thanks
157
+
158
+ * kdmsnr
159
+ * zunda
160
+ * OBATA Akio
161
+
162
+ == Changes 0.6.4 from 0.6.3: 2010-01-29
8
163
 
9
164
  Rabbit had been included in Debian official packages! [Youhei
10
165
  SASAKI]
data/NEWS.ja CHANGED
@@ -2,7 +2,159 @@
2
2
 
3
3
  = NEWS.ja
4
4
 
5
- $Id: NEWS.ja 1358 2010-01-29 14:01:18Z kou $
5
+ $Id: NEWS.ja 1410 2010-09-26 03:39:30Z kou $
6
+
7
+ == 0.6.5から0.9.0の変更点: 2010-09-26
8
+
9
+ カスタムタグのデフォルトスタイルを適用。
10
+
11
+ === 改良
12
+
13
+ ==== テーマ
14
+
15
+ * background-image-toolkit: 縦方向の位置を設定する
16
+ vertical-alignパラメータの追加。
17
+
18
+ 例:
19
+ # image
20
+ # src = lavie.png
21
+ # relative-width = 30
22
+ # align = right
23
+ # vertical-align = top
24
+ # relative-margin-right = -5
25
+
26
+ * tag: 新規。カスタムタグ用のデフォルトスタイルを指定する
27
+ テーマ。以下のカスタムタグをサポート。デフォルトで有効。
28
+
29
+ * tag:x-large: 指定したテキストの文字を大きくする。
30
+ * tag:center: 指定したテキストを中央寄せして配置する。テ
31
+ キストを指定しない場合はそのブロック全体を中央寄せする。
32
+ * tag:center: 指定したテキストを右寄せして配置する。テ
33
+ キストを指定しない場合はそのブロック全体を右寄せする。
34
+
35
+ 例:
36
+ (('tag:x-large:文字の大きなテキスト'))
37
+
38
+ (('tag:center'))中央寄せされたテキスト
39
+
40
+ (('tag:right'))右寄せされたテキスト
41
+
42
+ ==== RD
43
+
44
+ * (('('))('XXX:')((')'))形式のマークアップ内での再帰的なマー
45
+ クアップのサポート。
46
+
47
+ * テーブルのセル内でのマークアップをサポート。
48
+
49
+ === 修正
50
+
51
+ * require忘れを修正。
52
+ [おばたさんが報告]
53
+ * aafigureのサイトのURLを修正
54
+ [kdmsnrさんが報告]
55
+ * background-image-toolkitテーマのデフォルトの配置位置を
56
+ 後方互換性のためcenterに変更。
57
+ [nariさんが提案]
58
+ * RabbitterをRabbiterに変更。
59
+
60
+ === 感謝
61
+
62
+ * おばたさん
63
+ * kdmsnrさん
64
+ * nariさん
65
+
66
+ == 0.6.4から0.6.5の変更点: 2010-07-31
67
+
68
+ * Twitterからコメントを拾ってくるRabbitterを追加しました。
69
+ [おばたさん]
70
+ * ((<aafigure|URL:https://launchpad.net/aafigure>))
71
+ に対応しました。 [kdmsnrさんが提案]
72
+
73
+ === 改良
74
+
75
+ * デフォルトのPDFのファイル名から不要な改行を削除。
76
+ * 改行文字が\r\nでも動作するようにした。
77
+ [zundaさんが報告]
78
+ * Rabbitter: 追加。Twitterからコメントを拾ってくる。
79
+ [おばたさん]
80
+ * aafigure対応。[kdmsnrさんが提案]
81
+
82
+ ==== テーマ
83
+
84
+ * clear-blue: フッターのテキストから不要な改行を削除。
85
+ * per-slide-background-iamge:
86
+ "background-image-align: right"スライドプロパティ対応。
87
+ [kdmsnrさんが提案]
88
+
89
+ = スライド
90
+
91
+ ...
92
+
93
+ == プロパティ
94
+
95
+ : background-image
96
+ lavie.png
97
+
98
+ : background-image-relative-width
99
+ 30
100
+
101
+ : background-image-align
102
+ right
103
+
104
+ : background-image-relative-margin-right
105
+ 3
106
+
107
+ * relative_widthでもrelative-widthでも画像の幅を指定できる
108
+ ようにした。
109
+
110
+ * body-background-image: 追加。"align = right"画像プロパティ
111
+ が使えるようになる。
112
+
113
+ = タイトル
114
+
115
+ # image
116
+ # src = lavie.png
117
+ # relative-width = 30
118
+ # align = right
119
+ # relative-margin-right = -5
120
+
121
+ * デフォルトでbody-background-imageと
122
+ per-slide-background-imageを有効にした。
123
+
124
+ * background-image-tookit: 追加。body-background-imageと
125
+ per-slide-background-imageテーマの共通部分を汎用化した
126
+ ツールキット。
127
+
128
+ * title-background-image:
129
+ @title_background_image_propertiesによるカスタマイズに対
130
+ 応。画像要素に使えるオプションと同じものが指定できる。
131
+ [kdmsnrさんが提案]
132
+
133
+ @title_background_image_properties = {
134
+ :align => :right,
135
+ :as_large_as_possible => false,
136
+ :relative_height => 75,
137
+ }
138
+
139
+ 上記のオプションでは以下のようになる。
140
+ +-----------+
141
+ | +---+|
142
+ | タイトル <- 背景画像
143
+ | +---+|
144
+ +-----------+
145
+
146
+ デフォルトでは、背景画像はできるだけ拡大して、中央に配置
147
+ されます。
148
+
149
+ === 修正
150
+
151
+ * コメント表示が動かない問題を修正
152
+
153
+ === 感謝
154
+
155
+ * kdmsnrさん
156
+ * zundaさん
157
+ * おばたさん
6
158
 
7
159
  == 0.6.3から0.6.4の変更点: 2010-01-29
8
160
 
data/README.en CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  = README.en
4
4
 
5
- $Id: README.en 1357 2010-01-29 13:50:12Z kou $
5
+ $Id: README.en 1377 2010-05-25 09:59:27Z kou $
6
6
 
7
7
  == Name
8
8
 
@@ -113,6 +113,12 @@ bin/rabbirc
113
113
 
114
114
  akira yamada
115
115
 
116
+ === Rabbitter
117
+
118
+ bin/rabbitter
119
+
120
+ OBATA Akio
121
+
116
122
  == Co-Authors
117
123
 
118
124
  * Mr. MIYAMUKO
@@ -821,6 +827,7 @@ page from XXX.rd.
821
827
  * Makes presentations with Rabbit.
822
828
  * Reports some bugs and also fixes them.
823
829
  * Helps debug many problems.
830
+ * Made Rabbitter.
824
831
  * Masao Mutoh:
825
832
  * Makes presentations with Rabbit.
826
833
  * Updated INSTALL.win32.ja.
data/README.ja CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  = README.ja
4
4
 
5
- $Id: README.ja 1355 2010-01-29 13:48:57Z kou $
5
+ $Id: README.ja 1377 2010-05-25 09:59:27Z kou $
6
6
 
7
7
  == 名前
8
8
 
@@ -110,6 +110,12 @@ bin/rabbirc
110
110
 
111
111
  やまだあきらさん
112
112
 
113
+ === Rabbitter
114
+
115
+ bin/rabbitter
116
+
117
+ おばたさん
118
+
113
119
  == 共同開発者
114
120
 
115
121
  * みやむこさん
@@ -855,6 +861,7 @@ XXX.rdから1ページに8枚のスライドが入ったPDF(XXX_multi.pdf)
855
861
  * Rabbitを使ってプレゼンしてくれます。
856
862
  * バグ報告をし、修正もしてくれます。
857
863
  * たくさんデバッグしてくれます。
864
+ * Rabbitterを作ってくれました。
858
865
  * むとうさん:
859
866
  * Rabbitを使ってプレゼンしてくれます。
860
867
  * Windowsへのインストール用ドキュメントを更新してくれま
data/Rakefile CHANGED
@@ -61,7 +61,10 @@ project = Hoe.spec('rabbit') do
61
61
  self.test_globs = ['test/test_*.rb']
62
62
  self.changes = File.read('NEWS.en').split(/^== /)[1].gsub(/^==/, '').strip
63
63
  self.extra_deps = [
64
- ['cairo'],
64
+ ['gtk2'],
65
+ ['gdk_pixbuf2'],
66
+ ['rsvg2'],
67
+ ['poppler'],
65
68
  ['hikidoc'],
66
69
  # ['gettext'],
67
70
  ]
data/TODO CHANGED
@@ -1,3 +1,5 @@
1
+ * documents all key-bindings and mouse-bindings. (e.g. spotlight)
2
+ * support centering in table cell.
1
3
  * [BUG]: PDF slide doesn't scale???
2
4
  * improve Clutter support.
3
5
  * support GStreamer.
@@ -6,3 +8,18 @@
6
8
  * [nori] write manpage (converted from something like RD or DocBook XML).
7
9
  * support GooCanvas.
8
10
  * support Nokogiri as alternative of HTree.
11
+ * support theme configuration in RD:
12
+ e.g.:
13
+
14
+ : theme
15
+ * @slide_footer_info_left_text = "Ruby Kaigi"
16
+ * image_path: clear-code-images
17
+ * @slide_logo_image = "clear-code-logo.png"
18
+ * clear-blue
19
+
20
+ ->
21
+ @slide_footer_info_left_text = "Ruby Kaigi"
22
+ add_image_path("clear-code-images")
23
+ @slide_logo_image = "clear-code-logo.png"
24
+ include_theme("clear-blue")
25
+
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- ruby -*-
3
+
4
+ require 'rubygems'
5
+ require 'password'
6
+ require 'tweetstream'
7
+ require 'drb'
8
+ require "optparse"
9
+ require "ostruct"
10
+
11
+ class Rabbiter
12
+ def initialize(options)
13
+ @options = options
14
+ @rabbit = DRb::DRbObject.new_with_uri(@options.rabbit_uri)
15
+ @tweet = nil
16
+ end
17
+
18
+ def start
19
+ @tweet = TweetStream::Daemon.new(@options.username,
20
+ @options.password,
21
+ "rabbiter")
22
+ @tweet.track(@options.keyword) do |status|
23
+ begin
24
+ comment = "#{status.user.screen_name}: #{clean_text(status.text)}"
25
+ @rabbit.append_comment(comment)
26
+ rescue DRb::DRbConnError
27
+ puts "Rabbiter: #{$!.class}: #{$!.message}"
28
+ end
29
+ end
30
+ end
31
+
32
+ def stop
33
+ if @tweet
34
+ @tweet.stop
35
+ end
36
+ end
37
+
38
+ private
39
+ def clean_text(text)
40
+ remove_ustream_link(remove_hash_tag(text))
41
+ end
42
+
43
+ def remove_hash_tag(text)
44
+ text.gsub(/\##{Regexp.escape(@options.keyword)}/, "")
45
+ end
46
+
47
+ def remove_ustream_link(text)
48
+ text.gsub(/\(.* live at http:\/\/ustre\.am\/.*\)/, "")
49
+ end
50
+ end
51
+
52
+ options = OpenStruct.new
53
+ options.keyword = 'ruby'
54
+ options.rabbit_uri = 'druby://localhost:10101'
55
+ options.username = ENV['USER'] || ENV['USERNAME']
56
+ options.password = ''
57
+
58
+ parser = OptionParser.new do |opts|
59
+ opts.on("--keyword=KEYWROD",
60
+ "Keyword for search Twitter",
61
+ "(#{options.keyword})") do |keyword|
62
+ options.keyword = keyword
63
+ end
64
+
65
+ opts.on("--rabbit-uri=URI",
66
+ "Rabbit's dRuby URI",
67
+ "(#{options.rabbit_uri})") do |uri|
68
+ options.rabbit_uri = uri
69
+ end
70
+
71
+ opts.on("--username=USERNAME",
72
+ "Username for Twitter",
73
+ "(#{options.username})") do |username|
74
+ options.username = username
75
+ end
76
+
77
+ opts.on("--password=PASSWORD",
78
+ "User password for Twitter",
79
+ "(#{options.password})") do |password|
80
+ options.password = password
81
+ end
82
+ end
83
+
84
+ parser.parse!(ARGV)
85
+
86
+ if options.password.empty?
87
+ options.password = Password.get("Password for #{options.username}: ")
88
+ end
89
+
90
+ rabbiter = Rabbiter.new(options)
91
+
92
+ Signal.trap("INT") do
93
+ rabbiter.stop
94
+ end
95
+
96
+ rabbiter.start