rabbit 0.6.4 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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