rabbit 3.0.0 → 3.0.2

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 (154) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -1
  3. data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
  4. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  5. data/doc/_config.yml +2 -2
  6. data/doc/_layouts/skeleton.html +0 -7
  7. data/doc/en/faq.rd +4 -2
  8. data/doc/en/install/homebrew.rd +8 -13
  9. data/doc/en/news.rd +158 -0
  10. data/doc/en/sample/hiki/rabbit.hiki +0 -4
  11. data/doc/en/sample/rd/rabbit.rd +0 -4
  12. data/doc/en/usage/rabbit-slide.rd +3 -3
  13. data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
  14. data/doc/images/screenshots/en/blue-circle.png +0 -0
  15. data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
  16. data/doc/images/screenshots/en/clear-blue.png +0 -0
  17. data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
  18. data/doc/images/screenshots/en/cozmixng.png +0 -0
  19. data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
  20. data/doc/images/screenshots/en/dark-gradation.png +0 -0
  21. data/doc/images/screenshots/en/day-white-raw.png +0 -0
  22. data/doc/images/screenshots/en/day-white.png +0 -0
  23. data/doc/images/screenshots/en/debian-raw.png +0 -0
  24. data/doc/images/screenshots/en/debian.png +0 -0
  25. data/doc/images/screenshots/en/green-circle-raw.png +0 -0
  26. data/doc/images/screenshots/en/green-circle.png +0 -0
  27. data/doc/images/screenshots/en/night-black-raw.png +0 -0
  28. data/doc/images/screenshots/en/night-black.png +0 -0
  29. data/doc/images/screenshots/en/rabbit-raw.png +0 -0
  30. data/doc/images/screenshots/en/rabbit.png +0 -0
  31. data/doc/images/screenshots/en/ranguba-raw.png +0 -0
  32. data/doc/images/screenshots/en/ranguba.png +0 -0
  33. data/doc/images/screenshots/en/red-frame-raw.png +0 -0
  34. data/doc/images/screenshots/en/red-frame.png +0 -0
  35. data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
  36. data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
  37. data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
  38. data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
  39. data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
  40. data/doc/images/screenshots/ja/blue-circle.png +0 -0
  41. data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
  42. data/doc/images/screenshots/ja/clear-blue.png +0 -0
  43. data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
  44. data/doc/images/screenshots/ja/cozmixng.png +0 -0
  45. data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
  46. data/doc/images/screenshots/ja/dark-gradation.png +0 -0
  47. data/doc/images/screenshots/ja/day-white-raw.png +0 -0
  48. data/doc/images/screenshots/ja/day-white.png +0 -0
  49. data/doc/images/screenshots/ja/debian-raw.png +0 -0
  50. data/doc/images/screenshots/ja/debian.png +0 -0
  51. data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
  52. data/doc/images/screenshots/ja/green-circle.png +0 -0
  53. data/doc/images/screenshots/ja/night-black-raw.png +0 -0
  54. data/doc/images/screenshots/ja/night-black.png +0 -0
  55. data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
  56. data/doc/images/screenshots/ja/rabbit.png +0 -0
  57. data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
  58. data/doc/images/screenshots/ja/ranguba.png +0 -0
  59. data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
  60. data/doc/images/screenshots/ja/red-frame.png +0 -0
  61. data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
  62. data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
  63. data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
  64. data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
  65. data/doc/index.html.en +1 -1
  66. data/doc/ja/faq.rd +2 -0
  67. data/doc/ja/install/homebrew.rd +8 -12
  68. data/doc/ja/news.rd +157 -0
  69. data/doc/ja/sample/hiki/rabbit.hiki +0 -4
  70. data/doc/ja/sample/rd/rabbit.rd +0 -4
  71. data/doc/ja/usage/rabbit-slide.rd +3 -3
  72. data/doc/ja/users.rd +7 -0
  73. data/lib/rabbit/action/toggle.rb +7 -0
  74. data/lib/rabbit/author-configuration.rb +3 -4
  75. data/lib/rabbit/canvas.rb +18 -6
  76. data/lib/rabbit/command/rabbit-slide.rb +59 -1
  77. data/lib/rabbit/command/rabbit-slide.ui +127 -49
  78. data/lib/rabbit/command/rabbit.rb +5 -9
  79. data/lib/rabbit/element/base.rb +1 -5
  80. data/lib/rabbit/element/image.rb +139 -89
  81. data/lib/rabbit/element/video.rb +3 -11
  82. data/lib/rabbit/error.rb +9 -3
  83. data/lib/rabbit/formatter.rb +1 -1
  84. data/lib/rabbit/frame.rb +102 -4
  85. data/lib/rabbit/gem-pusher.rb +29 -6
  86. data/lib/rabbit/image/base.rb +163 -28
  87. data/lib/rabbit/image/dia.rb +21 -14
  88. data/lib/rabbit/image/mermaid.rb +73 -0
  89. data/lib/rabbit/image/pdf.rb +22 -9
  90. data/lib/rabbit/image/svg.rb +1 -4
  91. data/lib/rabbit/image.rb +6 -6
  92. data/lib/rabbit/info-window.rb +106 -80
  93. data/lib/rabbit/keys.rb +6 -0
  94. data/lib/rabbit/menu.rb +2 -0
  95. data/lib/rabbit/parser/base.rb +2 -1
  96. data/lib/rabbit/parser/ext/blockdiag.rb +16 -14
  97. data/lib/rabbit/parser/ext/charty.rb +58 -0
  98. data/lib/rabbit/parser/ext/image.rb +38 -10
  99. data/lib/rabbit/parser/markdown/converter.rb +36 -30
  100. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +33 -35
  101. data/lib/rabbit/parser/rd/ext/image.rb +23 -4
  102. data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +3 -1
  103. data/lib/rabbit/parser/rd.rb +1 -1
  104. data/lib/rabbit/parser/wiki/output.rb +9 -9
  105. data/lib/rabbit/parser.rb +2 -2
  106. data/lib/rabbit/progress.rb +1 -1
  107. data/lib/rabbit/properties.rb +154 -0
  108. data/lib/rabbit/rabbit.rb +3 -1
  109. data/lib/rabbit/relative-size.rb +28 -0
  110. data/lib/rabbit/renderer/base.rb +6 -0
  111. data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -2
  112. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +1 -0
  113. data/lib/rabbit/renderer/display/info.rb +6 -1
  114. data/lib/rabbit/renderer/display/key-handler.rb +27 -2
  115. data/lib/rabbit/renderer/engine/cairo.rb +24 -3
  116. data/lib/rabbit/renderer/screen.rb +0 -1
  117. data/lib/rabbit/slide-configuration.rb +16 -8
  118. data/lib/rabbit/task/slide.rb +6 -33
  119. data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +38 -0
  120. data/lib/rabbit/theme/clear-blue/clear-blue.rb +4 -2
  121. data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +12 -2
  122. data/lib/rabbit/theme/image/image.rb +3 -0
  123. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +8 -3
  124. data/lib/rabbit/theme/image-timer/image-timer.rb +8 -3
  125. data/lib/rabbit/theme/pdf/pdf.rb +1 -1
  126. data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +2 -0
  127. data/lib/rabbit/theme/tag/tag.rb +9 -2
  128. data/lib/rabbit/theme-configuration.rb +3 -4
  129. data/lib/rabbit/utils.rb +25 -2
  130. data/lib/rabbit/version.rb +2 -2
  131. data/lib/rabbit/video-window.rb +14 -3
  132. data/{test/test-slideshare.rb → lib/rabbit/yaml-loader.rb} +20 -15
  133. data/po/en/rabbit.edit.po +123 -121
  134. data/po/en/rabbit.po +28 -26
  135. data/po/fr/rabbit.edit.po +122 -120
  136. data/po/fr/rabbit.po +27 -25
  137. data/po/ja/rabbit.edit.po +156 -125
  138. data/po/ja/rabbit.po +34 -30
  139. data/rabbit.gemspec +0 -1
  140. data/sample/can_rabbit.rd +0 -24
  141. data/sample/rabbit-en.hiki +0 -4
  142. data/sample/rabbit-en.md +13 -0
  143. data/sample/rabbit-en.rd +10 -4
  144. data/sample/rabbit.hiki +0 -4
  145. data/sample/rabbit.md +21 -0
  146. data/sample/rabbit.rd +20 -4
  147. data/test/command/test-rabbit.rb +1 -0
  148. data/test/parser/test-markdown.rb +2 -2
  149. data/test/test-slide-configuration.rb +4 -2
  150. metadata +30 -46
  151. data/doc/css/jquery-ui/themes/ui-lightness.css +0 -573
  152. data/doc/javascripts/jquery-ui.js +0 -11544
  153. data/doc/javascripts/jquery.js +0 -7179
  154. data/lib/rabbit/slideshare.rb +0 -192
data/doc/ja/news.rd CHANGED
@@ -4,6 +4,163 @@ title: お知らせ
4
4
  apply_data: false
5
5
  ---
6
6
  {% raw %}
7
+
8
+ == 3.0.2: 2023-06-25
9
+
10
+ 画像への描画をサポートしたリリース。
11
+
12
+ === 改良
13
+
14
+ ==== rabbit
15
+
16
+ * image: 画像への描画をサポート。
17
+
18
+ * image: (({align=right}))をサポート。
19
+
20
+ * Mermaidをサポート。
21
+
22
+ * blockdiag: (({blockdiag3}))コマンドをサポート。
23
+
24
+ ==== rabbit-slide
25
+
26
+ * config: (({source_code_uri}))を追加。
27
+ ((<GH-144|URL:https://github.com/rabbit-shocker/rabbit/issues/144>))
28
+ [Yusuke Nakamuraさんがパッチ提供]
29
+
30
+ * SlideShareへのアップロード機能を削除。これはSlideShareのAPIからス
31
+ ライドアップロード機能が削除されたからです。
32
+
33
+ ==== テーマ
34
+
35
+ * image-slide-number: メインコンテンツの後ろに画像を描画するように変
36
+ 更。これによりメインコンテンツを隠すことがなくなります。
37
+
38
+ * image-timer: メインコンテンツの後ろに画像を描画するように変更。こ
39
+ れによりメインコンテンツを隠すことがなくなります。
40
+
41
+ * background-image-toolkit: キャプションをサポート。
42
+
43
+ * clear-blue: フッターの(({\n}))を削除するのではなく空白文字に置換す
44
+ るように変更。
45
+
46
+ * pdf: デフォルトで(({canvas.title}))テーマではなく(({./theme.rb}))
47
+ テーマを使うように変更。
48
+
49
+ ==== ドキュメント
50
+
51
+ * macos Homebrew: インストールドキュメントを更新。
52
+ ((<GH-150|URL:https://github.com/rabbit-shocker/rabbit/issues/150>))
53
+ [Yusuke Nakamuraさんがパッチ提供]
54
+
55
+ === 修正
56
+
57
+ ==== rabbit
58
+
59
+ * formatter HTML: 重みの設定が反映されない問題を修正。
60
+ ((<GH-146|URL:https://github.com/rabbit-shocker/rabbit/issues/146>))
61
+ [HASUMI Hitoshiさんがパッチ提供]
62
+
63
+ ==== テーマ
64
+
65
+ * image-timer: PDFで画像が表示されない問題を修正。
66
+
67
+ * image-slide-number: PDFで画像が表示されない問題を修正。
68
+
69
+ === 感謝
70
+
71
+ * Yusuke Nakamuraさん
72
+
73
+ * HASUMI Hitoshiさん
74
+
75
+ == 3.0.1: 2021-09-25
76
+
77
+ Ruby 3.0をサポートしたリリース。
78
+
79
+ === 改良
80
+
81
+ ==== rabbit
82
+
83
+ * 警告を除去。
84
+ [GitHub#132][kojix2さんがパッチ提供]
85
+
86
+ * image: Ruby 3.0をサポート。
87
+ [GitHub#133][kojix2さんがパッチを提供]
88
+
89
+ * image: ダウンロードした画像を再利用するようにしました。
90
+
91
+ * image: (({normalized_width}))と(({normalized_height}))のサポートを
92
+ 削除。
93
+
94
+ * image: (({clip_x}))と(({clip_y}))と(({clip_width}))と(({clip_height}))で
95
+ クリップをサポート。
96
+
97
+ * info-window: ノートモードではタイマーの位置を下部に移動。
98
+
99
+ * info-window: (({wait}))をサポート。
100
+
101
+ * 重複した(({require}))を削除。
102
+ [GitHub#134][kojix2さんがパッチを提供]
103
+
104
+ * Chartyをサポート。
105
+
106
+ * 埋め込みターミナルをサポート。
107
+
108
+ * Ustreamサポートを削除。
109
+
110
+ * MFAが有効になったアカウントでのgemのpushをサポート。
111
+ [GitHub#141][Yusuke Nakamuraさんが報告]
112
+
113
+ ==== rabbit-slide
114
+
115
+ * スライドサイズの指定をサポート。
116
+
117
+ ==== テーマ
118
+
119
+ * clear-blue: 縦方向のセンタリングの無効化をサポート。
120
+
121
+ * tag: (({margin-*})): 負の値と浮動小数点数をサポート。
122
+
123
+ * tag: (({wrap-char}))と(({wrap-word}))と(({wrap-word-char}))で折り返し
124
+ をサポート。
125
+
126
+ * tag: (({justify}))と(({no-justify}))で両端揃えをサポート。
127
+
128
+ * edge-info-toolkit: テキストのセンタリングをサポート。
129
+
130
+ * slide-footer-info: テキストのセンタリングをサポート。
131
+
132
+ ==== ドキュメント
133
+
134
+ * うさぎとかめとテーマに関する注意書きを追加。
135
+ [GitHub#139][Asaf Bartovさんがパッチを提供]
136
+
137
+ === 修正
138
+
139
+ ==== テーマ
140
+
141
+ * image-slide-number: 幅の計算方法を修正。
142
+ [GitHub#130][HASUMI Hitoshiさんがパッチを提供]
143
+
144
+ ==== ドキュメント
145
+
146
+ * 英語を修正。
147
+ [GitHub#128][Zero Kingさんがパッチを提供]
148
+
149
+ * typoを修正。
150
+ [GitHub#140][Yusuke Nakamuraさんがパッチを提供]
151
+
152
+ === 感謝
153
+
154
+ * Zero Kingさん
155
+
156
+ * HASUMI Hitoshiさん
157
+
158
+ * kojix2さん
159
+
160
+ * Asaf Bartovさん
161
+
162
+ * Yusuke Nakamuraさん
163
+
7
164
  == 3.0.0: 2019-09-06
8
165
 
9
166
  GTK+ 3をサポートしたリリース。GTK+ 2のサポートは終了。
@@ -130,8 +130,6 @@ title: "サンプルスライド: Rabbit"
130
130
  :caption => "Lavie",
131
131
  :width => 100,
132
132
  :height => 100,
133
- # :normalized_width => 50,
134
- # :normalized_height => 50,
135
133
  # :relative_width => 100,
136
134
  # :relative_height => 50,
137
135
  })}}
@@ -177,8 +175,6 @@ title: "サンプルスライド: Rabbit"
177
175
  {{image("usagi.png",
178
176
  {
179
177
  :caption => "兎",
180
- # :normalized_width => 50,
181
- # :normalized_height => 50,
182
178
  # :relative_width => 100,
183
179
  :relative_height => 50,
184
180
  })}}
@@ -133,8 +133,6 @@ title: "サンプルスライド: Rabbit"
133
133
  # caption = Lavie
134
134
  # width = 100
135
135
  # height = 100
136
- # # normalized_width = 50
137
- # # normalized_height = 50
138
136
  # # relative_width = 100
139
137
  # # relative_height = 50
140
138
 
@@ -184,8 +182,6 @@ title: "サンプルスライド: Rabbit"
184
182
  # image
185
183
  # src = usagi.png
186
184
  # caption = 兎
187
- # # normalized_width = 50
188
- # # normalized_height = 50
189
185
  # # relative_width = 100
190
186
  # relative_height = 80
191
187
 
@@ -185,12 +185,12 @@ APIがなかったので諦めました。
185
185
  Rabbitのテーマを確認するためのスライドです。スライドで使われる要素がた
186
186
  くさん入っているためテーマの確認に便利です。
187
187
 
188
- 準備ができたら((%rabbit publish%))でRubyGems.orgとSlideShareにまとめて
188
+ 準備ができたら((%rake publish%))でRubyGems.orgとSlideShareにまとめて
189
189
  公開できます。別々に公開する方法は以下の通りです。
190
190
 
191
191
  === RubyGems.orgへ公開
192
192
 
193
- ((%rabbit publish:rubygems%))でRubyGems.orgに公開できます。
193
+ ((%rake publish:rubygems%))でRubyGems.orgに公開できます。
194
194
 
195
195
  % rake publish:rubygems
196
196
 
@@ -213,7 +213,7 @@ Rabbit Slide ShowはRubyGems.orgに公開されているスライドを自動で
213
213
 
214
214
  === SlideShareへ公開
215
215
 
216
- ((%rabbit publish:slideshare%))でSlideShareに公開できます。
216
+ ((%rake publish:slideshare%))でSlideShareに公開できます。
217
217
 
218
218
  % rake publish:slideshare
219
219
 
data/doc/ja/users.rd CHANGED
@@ -186,4 +186,11 @@ Rabbitショッカーのためにshocker-jaというメーリングリストが
186
186
  * ((<効率的なビットマップマーキングを用いたRuby用ごみ集め実装|URL:http://www.narihiro.info/resource/presen/Ruby%20Garbage%20Collection%20Using%20Efficient%20Bitmap%20Marking.pdf>))
187
187
  * うえださん
188
188
  * ((<エンジニアでありたい人の日記|URL:http://d.hatena.ne.jp/hiro-ueda/>))
189
+
190
+ # 2019年
191
+
192
+ * yoku0825さん
193
+ * ((<日々の覚書|URL:https://yoku0825.blogspot.com/>))
194
+ * ((<Shooting a trouble of MySQL|URL:https://speakerdeck.com/yoku0825/shooting-a-trouble-of-mysql>))
195
+ * 他にもたくさん
189
196
  * ...
@@ -71,5 +71,12 @@ module Rabbit
71
71
  def act_toggle_magnifier_config(config, canvas)
72
72
  config[:label] = N_("Magnifier")
73
73
  end
74
+
75
+ def act_toggle_terminal(action, group, canvas)
76
+ canvas.toggle_terminal
77
+ end
78
+ def act_toggle_terminal_config(config, canvas)
79
+ config[:label] = N_("Terminal")
80
+ end
74
81
  end
75
82
  end
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -14,11 +14,10 @@
14
14
  # with this program; if not, write to the Free Software Foundation, Inc.,
15
15
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
16
 
17
- require "yaml"
18
-
19
17
  require "rabbit/gettext"
20
18
  require "rabbit/logger"
21
19
  require "rabbit/path-manipulatable"
20
+ require "rabbit/yaml-loader"
22
21
 
23
22
  module Rabbit
24
23
  class AuthorConfiguration
@@ -35,7 +34,7 @@ module Rabbit
35
34
 
36
35
  def load
37
36
  return unless File.exist?(path)
38
- conf = YAML.load(File.read(path))
37
+ conf = YAMLLoader.load(File.read(path))
39
38
  clear
40
39
  merge!(conf)
41
40
  rescue
data/lib/rabbit/canvas.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2004-2019 Sutou Kouhei <kou@cozmixng.org>
1
+ # Copyright (C) 2004-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -43,6 +43,8 @@ module Rabbit
43
43
  def_delegators(:@frame, :iconify, :window)
44
44
  def_delegators(:@frame, :fullscreen_available?)
45
45
  def_delegators(:@frame, :iconify_available?)
46
+ def_delegators(:@frame, :toggle_terminal)
47
+ def_delegators(:@frame, :in_terminal?)
46
48
 
47
49
  def_delegators(:@renderer, :width, :height)
48
50
  # Deprecated. Use #base_width= instead.
@@ -81,6 +83,8 @@ module Rabbit
81
83
  def_delegators(:@renderer, :shear_context)
82
84
  def_delegators(:@renderer, :save_context, :restore_context)
83
85
  def_delegators(:@renderer, :draw_line, :draw_rectangle, :draw_arc)
86
+ def_delegators(:@renderer, :draw_lines)
87
+ def_delegators(:@renderer, :draw_polygon)
84
88
  def_delegators(:@renderer, :draw_circle, :draw_layout, :draw_pixbuf)
85
89
  def_delegators(:@renderer, :draw_arc_by_radius, :draw_circle_by_radius)
86
90
  def_delegators(:@renderer, :draw_slide, :draw_polygon, :draw_flag)
@@ -343,7 +347,7 @@ module Rabbit
343
347
  apply_theme(@theme_name, &block)
344
348
  end
345
349
 
346
- def parse(source=nil, callback=nil, &block)
350
+ def parse(source=nil, progress=nil, &block)
347
351
  id = Object.new.__id__
348
352
  @parse_request_queue.push(id)
349
353
  @source = source || @source
@@ -353,7 +357,7 @@ module Rabbit
353
357
  keep_index do
354
358
  @renderer.pre_parse
355
359
  clear
356
- Parser.parse(self, @source)
360
+ Parser.parse(self, @source, progress: progress)
357
361
  new_allotted_time = allotted_time
358
362
  reset_timer if new_allotted_time != current_allotted_time
359
363
  apply_timer
@@ -362,7 +366,7 @@ module Rabbit
362
366
  if @parse_request_queue.last != id
363
367
  raise ParseFinish
364
368
  end
365
- callback.call if callback
369
+ progress.call if progress
366
370
  end
367
371
  @renderer.post_parse
368
372
  index = current_index
@@ -380,9 +384,9 @@ module Rabbit
380
384
  end
381
385
  end
382
386
 
383
- def reload_source(callback=nil, &block)
387
+ def reload_source(progress=nil, &block)
384
388
  if need_reload_source?
385
- parse(nil, callback, &block)
389
+ parse(nil, progress, &block)
386
390
  end
387
391
  end
388
392
 
@@ -436,6 +440,14 @@ module Rabbit
436
440
  @renderer.post_iconify
437
441
  end
438
442
 
443
+ def pre_terminal
444
+ @renderer.pre_terminal
445
+ end
446
+
447
+ def post_terminal
448
+ @renderer.post_terminal
449
+ end
450
+
439
451
  def saved_image_base_name
440
452
  if @saved_image_base_name
441
453
  base_name = @saved_image_base_name.encode("UTF-8")
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012-2019 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2021 Sutou Kouhei <kou@cozmixng.org>
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or modify
4
4
  # it under the terms of the GNU General Public License as published by
@@ -106,6 +106,8 @@ module Rabbit
106
106
  " --id rubykaigi2012 \\\n" \
107
107
  " --base-name rabbit-introduction \\\n" \
108
108
  " --markup-language rd \\\n" \
109
+ " --width 800 \\\n" \
110
+ " --height 450 \\\n" \
109
111
  " --name \"Kouhei Sutou\" \\\n" \
110
112
  " --email kou@cozmixng.org \\\n" \
111
113
  " --rubygems-user kou \\\n" \
@@ -218,6 +220,22 @@ module Rabbit
218
220
  @data.slide_conf.presentation_end_time = time
219
221
  end
220
222
 
223
+ width_example = "--width=800"
224
+ parser.on("--width=WIDTH", Integer,
225
+ _("The default slide width"),
226
+ _("(e.g.: %s)") % width_example,
227
+ _("(optional)")) do |width|
228
+ @data.slide_conf.width = width
229
+ end
230
+
231
+ height_example = "--width=450"
232
+ parser.on("--height=HEIGHT", Integer,
233
+ _("The default slide height"),
234
+ _("(e.g.: %s)") % height_example,
235
+ _("(optional)")) do |height|
236
+ @data.slide_conf.height = height
237
+ end
238
+
221
239
  parser.separator(_("Your information"))
222
240
 
223
241
  messages = [
@@ -324,6 +342,20 @@ module Rabbit
324
342
  end
325
343
  end
326
344
 
345
+ class IntegerMapper
346
+ def initialize(data)
347
+ @data = data
348
+ end
349
+
350
+ def attach(entry)
351
+ entry.value = value if value
352
+ end
353
+
354
+ def apply(entry)
355
+ apply_value(entry.value_as_int)
356
+ end
357
+ end
358
+
327
359
  class SlideIDMapper < TextMapper
328
360
  private
329
361
  def valid?(value)
@@ -374,11 +406,35 @@ module Rabbit
374
406
  end
375
407
  end
376
408
 
409
+ class SlideWidthMapper < IntegerMapper
410
+ private
411
+ def value
412
+ @data.slide_conf.width
413
+ end
414
+
415
+ def apply_value(value)
416
+ @data.slide_conf.width = value
417
+ end
418
+ end
419
+
420
+ class SlideHeightMapper < IntegerMapper
421
+ private
422
+ def value
423
+ @data.slide_conf.height
424
+ end
425
+
426
+ def apply_value(value)
427
+ @data.slide_conf.height = value
428
+ end
429
+ end
430
+
377
431
  def build_gui_mappers
378
432
  {
379
433
  "slide-id" => SlideIDMapper.new(@data),
380
434
  "slide-base-name" => SlideBaseNameMapper.new(@data),
381
435
  "slide-markup-language" => SlideMarkupLanguageMapper.new(@data),
436
+ "slide-width" => SlideWidthMapper.new(@data),
437
+ "slide-height" => SlideHeightMapper.new(@data),
382
438
  }
383
439
  end
384
440
 
@@ -484,6 +540,8 @@ EOD
484
540
  def generate_dot_rabbit
485
541
  create_file(".rabbit") do |dot_rabbit|
486
542
  options = []
543
+ size = [@data.slide_conf.width, @data.slide_conf.height].join(",")
544
+ options << "--size #{size}"
487
545
  if @data.author_conf.markup_language.nil? and @data.allotted_time
488
546
  options << "--allotted-time #{@data.allotted_time}"
489
547
  end