rabbit 0.6.2 → 0.6.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.
- data/NEWS.en +83 -1
- data/NEWS.ja +80 -1
- data/README.en +3 -1
- data/README.ja +3 -1
- data/Rakefile +2 -0
- data/TODO +1 -0
- data/bin/rabbit +8 -0
- data/data/rabbit/image/rabbit-images/mini-butler-rabbit.png +0 -0
- data/lib/rabbit/canvas.rb +9 -1
- data/lib/rabbit/cursor-manager.rb +1 -1
- data/lib/rabbit/element/tag.rb +10 -0
- data/lib/rabbit/html/generator.rb +8 -3
- data/lib/rabbit/parser/rd.rb +2 -0
- data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +12 -0
- data/lib/rabbit/parser/wiki/output.rb +2 -2
- data/lib/rabbit/rabbit.rb +1 -1
- data/lib/rabbit/renderer/base.rb +2 -0
- data/lib/rabbit/renderer/display/button-handler.rb +11 -6
- data/lib/rabbit/renderer/display/clutter-embed.rb +1 -0
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +1 -0
- data/lib/rabbit/renderer/display/drawing-area-view-only.rb +0 -4
- data/lib/rabbit/renderer/display/drawing-area.rb +0 -4
- data/lib/rabbit/renderer/engine/cairo.rb +6 -1
- data/lib/rabbit/renderer/engine/gdk.rb +1 -0
- data/lib/rabbit/renderer/kernel.rb +0 -1
- data/lib/rabbit/source/base.rb +4 -2
- data/lib/rabbit/theme/blue-bar/blue-bar.rb +0 -2
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -2
- data/lib/rabbit/theme/default-block-quote/default-block-quote.rb +33 -16
- data/lib/rabbit/theme/default-item-mark/default-item-mark.rb +13 -1
- data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +5 -1
- data/lib/rabbit/theme/default-text/default-text.rb +8 -0
- data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +2 -2
- data/lib/rabbit/theme/lightning-monochrome/lightning-monochrome.rb +16 -0
- data/lib/rabbit/theme/lightning-monochrome/property.rb +3 -0
- data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +1 -0
- data/lib/rabbit/theme/newline-in-slides/newline-in-slides.rb +27 -1
- data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +3 -0
- data/lib/rabbit/utils.rb +12 -6
- data/misc/update-rd.rb +2 -0
- metadata +16 -3
data/NEWS.en
CHANGED
@@ -2,7 +2,89 @@
|
|
2
2
|
|
3
3
|
= NEWS.en
|
4
4
|
|
5
|
-
$Id: NEWS.en
|
5
|
+
$Id: NEWS.en 1331 2009-12-16 13:09:53Z kou $
|
6
|
+
|
7
|
+
== Changes 0.6.3 from 0.6.2: 2009-12-16
|
8
|
+
|
9
|
+
=== Improvements
|
10
|
+
|
11
|
+
* [#180] Supported inline markup in DL with Wiki format.
|
12
|
+
[kdmsnr]
|
13
|
+
* Added butler rabbit to the standard theme.
|
14
|
+
* Changed to use scaled images by default even when
|
15
|
+
printing mode.
|
16
|
+
* Supported pixbuf rendering with alpha channel.
|
17
|
+
(when cairo is used as rendering engine)
|
18
|
+
|
19
|
+
==== Theme
|
20
|
+
|
21
|
+
* Added:
|
22
|
+
* lightning-monochrome:
|
23
|
+
Takahashi method slide + monochrome normal slide
|
24
|
+
* Changed:
|
25
|
+
* default-block-quote: Added
|
26
|
+
@block_quote_image_background_alpha parameter that
|
27
|
+
specifies alpha channel of background images.
|
28
|
+
* default-preformatted: Made auto text size adjustment
|
29
|
+
optional. It is customized by
|
30
|
+
@preformatted_keep_in_size parameter.
|
31
|
+
* clear-blue: Displayed title in the left bottom by
|
32
|
+
default. It can be disabled by the following theme:
|
33
|
+
include_theme("clear-blue")
|
34
|
+
@slide_footer_info_left_text = ""
|
35
|
+
* Supported nest of "itemize > enum" and
|
36
|
+
"itemize > itemize > enum".
|
37
|
+
|
38
|
+
==== Experimental
|
39
|
+
|
40
|
+
((*This maybe changed in the feature.*))
|
41
|
+
|
42
|
+
* Supported tag:
|
43
|
+
|
44
|
+
syntax:
|
45
|
+
(('tag:name:content'))
|
46
|
+
or
|
47
|
+
(('tag:name'))content
|
48
|
+
|
49
|
+
e.g.:
|
50
|
+
slide.rab:
|
51
|
+
(('tag:center'))Hi, look it!
|
52
|
+
|
53
|
+
theme.rb:
|
54
|
+
match("**", CustomTag) do |tags|
|
55
|
+
tags.each do |tag|
|
56
|
+
case tag.name
|
57
|
+
when "center"
|
58
|
+
tag.parent.horizontal_centering = true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
output(before):
|
64
|
+
+-------------------+
|
65
|
+
| Hi, look it! |
|
66
|
+
+-------------------+
|
67
|
+
|
68
|
+
output(after):
|
69
|
+
+-------------------+
|
70
|
+
| Hi, look it! |
|
71
|
+
+-------------------+
|
72
|
+
|
73
|
+
=== Fixes
|
74
|
+
|
75
|
+
* Fixed a problem that fullscreen doesn't work on Ruby 1.9
|
76
|
+
[Masaki Suketa]
|
77
|
+
* [#179] Fixed a problem that Rabbit sometimes crashes
|
78
|
+
with mouse clicks. [kdmsnr]
|
79
|
+
* newline-in-slides theme: Disabled newline substitution in
|
80
|
+
preformatted text.
|
81
|
+
* Fixed a problem that cursor isn't displayed after
|
82
|
+
unfullscreen.
|
83
|
+
|
84
|
+
=== Thanks
|
85
|
+
|
86
|
+
* Masaki Suketa
|
87
|
+
* kdmsnr
|
6
88
|
|
7
89
|
== Changes 0.6.2 from 0.6.1: 2009-10-03
|
8
90
|
|
data/NEWS.ja
CHANGED
@@ -2,7 +2,86 @@
|
|
2
2
|
|
3
3
|
= NEWS.ja
|
4
4
|
|
5
|
-
$Id: NEWS.ja
|
5
|
+
$Id: NEWS.ja 1330 2009-12-16 13:07:47Z kou $
|
6
|
+
|
7
|
+
== 0.6.2から0.6.3の変更点: 2009-12-16
|
8
|
+
|
9
|
+
=== 改良
|
10
|
+
|
11
|
+
* [#180] Wikiフォーマットの定義リスト内でインラインマーク
|
12
|
+
アップが効かない問題を修正。
|
13
|
+
[kdmsnrさん]
|
14
|
+
* 執事うさぎを標準テーマに追加。
|
15
|
+
* 印刷時でもデフォルトでは拡大・縮小後の画像を使用。
|
16
|
+
* アルファチャンネル付きのpixbufレンダリング対応。
|
17
|
+
(cairoレンダリングエンジン使用時)
|
18
|
+
|
19
|
+
==== テーマ
|
20
|
+
|
21
|
+
* 追加
|
22
|
+
* lightning-monochrome:
|
23
|
+
高橋メソッドスライド + モノクロな通常スライド
|
24
|
+
* 変更
|
25
|
+
* default-block-quote: 背景画像の透明度を指定する
|
26
|
+
@block_quote_image_background_alphaパラメーターを追加。
|
27
|
+
* default-preformatted: テキストの自動サイズ調整をカスタ
|
28
|
+
マイズできるようにした。@preformatted_keep_in_sizeパラ
|
29
|
+
メータで変更可能。
|
30
|
+
* clear-blue: デフォルトで左下にタイトルを表示するように
|
31
|
+
変更。無効にする場合は以下を追加するとよい。
|
32
|
+
include_theme("clear-blue")
|
33
|
+
@slide_footer_info_left_text = ""
|
34
|
+
* 箇条書きと列挙のネスト"itemize > enum"と
|
35
|
+
"itemize > itemize > enum"に対応
|
36
|
+
|
37
|
+
==== 実験的
|
38
|
+
|
39
|
+
((*変更される可能性があります。*))
|
40
|
+
|
41
|
+
* タグのサポート
|
42
|
+
|
43
|
+
構文:
|
44
|
+
(('tag:name:内容'))
|
45
|
+
または
|
46
|
+
(('tag:name'))内容
|
47
|
+
|
48
|
+
例:
|
49
|
+
slide.rab:
|
50
|
+
(('tag:center'))どうもどうも
|
51
|
+
|
52
|
+
theme.rb:
|
53
|
+
match("**", CustomTag) do |tags|
|
54
|
+
tags.each do |tag|
|
55
|
+
case tag.name
|
56
|
+
when "center"
|
57
|
+
tag.parent.horizontal_centering = true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
出力(テーマ適用前):
|
63
|
+
+-------------------+
|
64
|
+
| どうもどうも |
|
65
|
+
+-------------------+
|
66
|
+
|
67
|
+
出力(テーマ適用後):
|
68
|
+
+-------------------+
|
69
|
+
| どうもどうも |
|
70
|
+
+-------------------+
|
71
|
+
|
72
|
+
=== 修正
|
73
|
+
|
74
|
+
* Ruby 1.9でフルスクリーンが動かない問題を修正 [助田さん]
|
75
|
+
* [#179] マウス使用時にクラッシュすることがある問題を修正
|
76
|
+
[kdmsnrさん]
|
77
|
+
* newline-in-slidesテーマ: 整形済みテキストでは改行を置換
|
78
|
+
しないようにした。
|
79
|
+
* フルスクリーン解除時にカーソルが表示されない問題を修正
|
80
|
+
|
81
|
+
=== 感謝
|
82
|
+
|
83
|
+
* 助田さん
|
84
|
+
* kdmsnrさん
|
6
85
|
|
7
86
|
== 0.6.1から0.6.2の変更点: 2009-10-03
|
8
87
|
|
data/README.en
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
= README.en
|
4
4
|
|
5
|
-
$Id: README.en
|
5
|
+
$Id: README.en 1309 2009-10-17 09:18:27Z kou $
|
6
6
|
|
7
7
|
== Name
|
8
8
|
|
@@ -834,3 +834,5 @@ page from XXX.rd.
|
|
834
834
|
* JunichiNakai: Reports bugs.
|
835
835
|
* Eduardo Gonzalez: Improves documents in English.
|
836
836
|
* Kazuhiro NISHIYAMA: Reported a bug.
|
837
|
+
* Masaki Suketa: Reported bugs related Ruby 1.9.
|
838
|
+
* kdmsnr: Reported a bug.
|
data/README.ja
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
= README.ja
|
4
4
|
|
5
|
-
$Id: README.ja
|
5
|
+
$Id: README.ja 1309 2009-10-17 09:18:27Z kou $
|
6
6
|
|
7
7
|
== 名前
|
8
8
|
|
@@ -869,3 +869,5 @@ XXX.rdから1ページに8枚のスライドが入ったPDF(XXX_multi.pdf)
|
|
869
869
|
* Eduardo Gonzalezさん: 英語のドキュメントをよくしてくれま
|
870
870
|
した。
|
871
871
|
* 西山さん: バグレポートしてくれました。
|
872
|
+
* 助田さん: Ruby 1.9関連のバグを報告してくれました。
|
873
|
+
* kdmsnrさん: バグレポートしてくれました。
|
data/Rakefile
CHANGED
@@ -61,10 +61,12 @@ 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
65
|
['hikidoc'],
|
65
66
|
# ['gettext'],
|
66
67
|
]
|
67
68
|
self.description = self.summary # FIXME
|
69
|
+
self.need_tar = false
|
68
70
|
end
|
69
71
|
|
70
72
|
rule '.png' => ['.svg'] do |t|
|
data/TODO
CHANGED
data/bin/rabbit
CHANGED
@@ -32,6 +32,7 @@ def parse_args(args=ARGV, logger=nil)
|
|
32
32
|
options.print = false
|
33
33
|
options.print_out_filename = nil
|
34
34
|
options.slides_per_page = 1
|
35
|
+
options.draw_scaled_image = true
|
35
36
|
options.margin_left = nil
|
36
37
|
options.margin_right = nil
|
37
38
|
options.margin_top = nil
|
@@ -228,6 +229,12 @@ def parse_args(args=ARGV, logger=nil)
|
|
228
229
|
options.slides_per_page = slides
|
229
230
|
end
|
230
231
|
|
232
|
+
opts.on("--[no-]draw-scaled-image",
|
233
|
+
_("Draw scaled image."),
|
234
|
+
_("Better look for displaying but lesser look for printing."),
|
235
|
+
"(#{options.draw_scaled_image})") do |boolean|
|
236
|
+
options.draw_scaled_image = boolean
|
237
|
+
end
|
231
238
|
|
232
239
|
opts.category _("Paper")
|
233
240
|
|
@@ -555,6 +562,7 @@ end
|
|
555
562
|
def setup_print_info(target, options)
|
556
563
|
target.filename = options.print_out_filename
|
557
564
|
target.slides_per_page = options.slides_per_page
|
565
|
+
target.draw_scaled_image = options.draw_scaled_image
|
558
566
|
end
|
559
567
|
|
560
568
|
def setup_size(target, options)
|
Binary file
|
data/lib/rabbit/canvas.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "forwardable"
|
2
2
|
require "gtk2"
|
3
|
-
require "rd/rdfmt"
|
4
3
|
|
5
4
|
require "rabbit/rabbit"
|
6
5
|
require 'rabbit/frame'
|
@@ -119,6 +118,8 @@ module Rabbit
|
|
119
118
|
|
120
119
|
def_delegators(:@renderer, :search_slide, :stop_slide_search, :searching?)
|
121
120
|
|
121
|
+
def_delegators(:@renderer, :draw_scaled_image, :draw_scaled_image=)
|
122
|
+
|
122
123
|
def_delegators(:@source, :source=, :reset, :base)
|
123
124
|
|
124
125
|
attr_reader :logger, :renderer, :last_modified
|
@@ -211,6 +212,13 @@ module Rabbit
|
|
211
212
|
end
|
212
213
|
end
|
213
214
|
|
215
|
+
def slide_text(index=current_index)
|
216
|
+
return "" if slides.empty?
|
217
|
+
slide = slides[index]
|
218
|
+
return "" if slide.nil?
|
219
|
+
slide.text.strip
|
220
|
+
end
|
221
|
+
|
214
222
|
def slides
|
215
223
|
if @index_mode
|
216
224
|
@index_slides
|
data/lib/rabbit/element/tag.rb
CHANGED
@@ -165,7 +165,7 @@ module Rabbit
|
|
165
165
|
output_html(filename) if output_html?
|
166
166
|
if rss_available?
|
167
167
|
@rss_info << [filename, slide_title(slide_number),
|
168
|
-
@slide.
|
168
|
+
@slide.text, @slide.to_html(self)]
|
169
169
|
end
|
170
170
|
end
|
171
171
|
end
|
@@ -179,7 +179,7 @@ module Rabbit
|
|
179
179
|
output_html(filename) if output_index_html?
|
180
180
|
if rss_available?
|
181
181
|
@rss_info << [filename, slide_title(slide_number),
|
182
|
-
@slide.
|
182
|
+
@slide.text, @slide_index_html]
|
183
183
|
end
|
184
184
|
@slide_index_html = nil
|
185
185
|
end
|
@@ -286,7 +286,8 @@ module Rabbit
|
|
286
286
|
|
287
287
|
def slide_image(slide_number=@slide_number)
|
288
288
|
src = image_src(slide_number)
|
289
|
-
img = "<img title=\"#{image_title(slide_number)}\"
|
289
|
+
img = "<img title=\"#{image_title(slide_number)}\" " +
|
290
|
+
"src=\"#{src}\" alt=\"#{h(slide_text(slide_number))}\" />"
|
290
291
|
if last_slide?(slide_number)
|
291
292
|
img
|
292
293
|
else
|
@@ -295,6 +296,10 @@ module Rabbit
|
|
295
296
|
end
|
296
297
|
end
|
297
298
|
|
299
|
+
def slide_text(slide_number=@slide_number)
|
300
|
+
@canvas.slide_text(slide_number)
|
301
|
+
end
|
302
|
+
|
298
303
|
def first_slide?(slide_number=@slide_number)
|
299
304
|
slide_number.zero?
|
300
305
|
end
|
data/lib/rabbit/parser/rd.rb
CHANGED
@@ -82,6 +82,18 @@ module Rabbit
|
|
82
82
|
return nil unless /^wait$/ =~ label
|
83
83
|
WaitTag.new
|
84
84
|
end
|
85
|
+
|
86
|
+
def ext_inline_verb_tag(label, source, content, visitor)
|
87
|
+
label = label.to_s
|
88
|
+
return nil unless /^tag:(.+?)(?::(.+))?$/ =~ label
|
89
|
+
name = $1
|
90
|
+
content = $2
|
91
|
+
if content
|
92
|
+
CustomTag.new(name, Text.new(visitor.apply_to_String(content)))
|
93
|
+
else
|
94
|
+
CustomTag.new(name)
|
95
|
+
end
|
96
|
+
end
|
85
97
|
end
|
86
98
|
end
|
87
99
|
end
|
@@ -176,8 +176,8 @@ module Rabbit
|
|
176
176
|
else
|
177
177
|
return unless @parent
|
178
178
|
|
179
|
-
desc_term = DescriptionTerm.new(Paragraph.new(dt))
|
180
|
-
desc_content = DescriptionContent.new(Paragraph.new(dd))
|
179
|
+
desc_term = DescriptionTerm.new(Paragraph.new(dt.flatten))
|
180
|
+
desc_content = DescriptionContent.new(Paragraph.new(dd.flatten))
|
181
181
|
@parent << DescriptionListItem.new(desc_term, desc_content)
|
182
182
|
end
|
183
183
|
end
|
data/lib/rabbit/rabbit.rb
CHANGED
data/lib/rabbit/renderer/base.rb
CHANGED
@@ -35,6 +35,7 @@ module Rabbit
|
|
35
35
|
attr_accessor :adjustment_x, :adjustment_y
|
36
36
|
attr_accessor :graffiti_color, :graffiti_line_width
|
37
37
|
attr_accessor :gl_scale, :gl_quaternion
|
38
|
+
attr_accessor :draw_scaled_image
|
38
39
|
attr_writer :page_margin_left, :page_margin_right
|
39
40
|
attr_writer :page_margin_top, :page_margin_bottom
|
40
41
|
|
@@ -62,6 +63,7 @@ module Rabbit
|
|
62
63
|
@progress_background = nil
|
63
64
|
@graffiti_color = nil
|
64
65
|
@graffiti_line_width = nil
|
66
|
+
@draw_scaled_image = true
|
65
67
|
clean
|
66
68
|
init_hook_procs
|
67
69
|
init_dpi
|
@@ -29,14 +29,19 @@ module Rabbit
|
|
29
29
|
end
|
30
30
|
|
31
31
|
widget.signal_connect("button_release_event") do |_widget, event|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
if last_button_press_event
|
33
|
+
handled = call_hook_procs(@button_release_hook_procs,
|
34
|
+
event, last_button_press_event)
|
35
|
+
if handled
|
36
|
+
clear_button_handler
|
37
|
+
else
|
38
|
+
handled = handle_button_release(event, last_button_press_event)
|
39
|
+
end
|
40
|
+
handled
|
36
41
|
else
|
37
|
-
|
42
|
+
clear_button_handler
|
43
|
+
false
|
38
44
|
end
|
39
|
-
handled
|
40
45
|
end
|
41
46
|
end
|
42
47
|
|
@@ -253,6 +253,7 @@ module Rabbit
|
|
253
253
|
x, y = from_screen(x, y)
|
254
254
|
|
255
255
|
draw_scaled_pixbuf = params[:draw_scaled_pixbuf]
|
256
|
+
draw_scaled_pixbuf = @draw_scaled_image if draw_scaled_pixbuf.nil?
|
256
257
|
width = (params[:width] || pixbuf.width).to_f
|
257
258
|
height = (params[:height] || pixbuf.height).to_f
|
258
259
|
if draw_scaled_pixbuf and
|
@@ -265,7 +266,7 @@ module Rabbit
|
|
265
266
|
@context.scale(width / pixbuf.width, height / pixbuf.height)
|
266
267
|
end
|
267
268
|
@context.set_source_pixbuf(pixbuf, 0, 0)
|
268
|
-
@context.paint
|
269
|
+
@context.paint(params[:alpha])
|
269
270
|
end
|
270
271
|
|
271
272
|
_draw_reflected_pixbuf(pixbuf, x, y, params[:reflect])
|
@@ -328,6 +329,10 @@ module Rabbit
|
|
328
329
|
context
|
329
330
|
end
|
330
331
|
|
332
|
+
def set_font_resolution(context)
|
333
|
+
context.resolution = @canvas.font_resolution
|
334
|
+
end
|
335
|
+
|
331
336
|
private
|
332
337
|
def init_engine_color
|
333
338
|
@foreground = make_color("black")
|
@@ -156,6 +156,7 @@ module Rabbit
|
|
156
156
|
return if gc.nil?
|
157
157
|
|
158
158
|
draw_scaled_pixbuf = params[:draw_scaled_pixbuf]
|
159
|
+
draw_scaled_pixbuf = @draw_scaled_image if draw_scaled_pixbuf.nil?
|
159
160
|
width = params[:width] || pixbuf.width
|
160
161
|
height = params[:height] || pixbuf.height
|
161
162
|
if draw_scaled_pixbuf and
|
data/lib/rabbit/source/base.rb
CHANGED
@@ -39,8 +39,10 @@ module Rabbit
|
|
39
39
|
else
|
40
40
|
enc = @encoding
|
41
41
|
end
|
42
|
-
|
43
|
-
|
42
|
+
|
43
|
+
if /\Autf-?8\z/i =~ enc
|
44
|
+
@source.force_encoding(enc) if @source.respond_to?(:force_encoding)
|
45
|
+
else
|
44
46
|
require "iconv"
|
45
47
|
@source = Iconv.conv("UTF-8", enc, @source)
|
46
48
|
end
|
@@ -63,8 +63,6 @@ end
|
|
63
63
|
match(TitleSlide, "*") do |elements|
|
64
64
|
elements.horizontal_centering = false
|
65
65
|
elements.align = :right
|
66
|
-
|
67
|
-
elements.substitute_newline
|
68
66
|
end
|
69
67
|
|
70
68
|
match(TitleSlide, Title) do |titles|
|
@@ -96,5 +94,6 @@ include_theme("slide-logo")
|
|
96
94
|
@icon_images = ["clear-blue-icon.png"]
|
97
95
|
include_theme("icon")
|
98
96
|
|
97
|
+
@slide_footer_info_left_text ||= canvas.title
|
99
98
|
@slide_footer_info_right_text ||= "Powered by Rabbit #{Rabbit::VERSION}"
|
100
99
|
include_theme("slide-footer-info")
|
@@ -16,6 +16,7 @@
|
|
16
16
|
@block_quote_open_quote_image ||= nil
|
17
17
|
@block_quote_close_quote_image ||= nil
|
18
18
|
@block_quote_image_max_width ||= canvas.width * 0.1
|
19
|
+
@block_quote_image_background_alpha ||= nil
|
19
20
|
|
20
21
|
match("**", BlockQuote) do
|
21
22
|
name = "block-quote"
|
@@ -44,14 +45,18 @@ match("**", BlockQuote) do
|
|
44
45
|
if open_quote.width > @block_quote_image_max_width
|
45
46
|
open_quote.resize(@block_quote_image_max_width, nil)
|
46
47
|
end
|
47
|
-
|
48
|
+
unless @block_quote_image_background_alpha
|
49
|
+
padding_left += open_quote.width
|
50
|
+
end
|
48
51
|
end
|
49
52
|
if @block_quote_close_quote_image
|
50
53
|
close_quote = ImageLoader.new(find_file(@block_quote_close_quote_image))
|
51
54
|
if close_quote.width > @block_quote_image_max_width
|
52
55
|
close_quote.resize(@block_quote_image_max_width, nil)
|
53
56
|
end
|
54
|
-
|
57
|
+
unless @block_quote_image_background_alpha
|
58
|
+
padding_right += close_quote.width
|
59
|
+
end
|
55
60
|
end
|
56
61
|
|
57
62
|
block.padding_with(:left => padding_left,
|
@@ -63,22 +68,34 @@ match("**", BlockQuote) do
|
|
63
68
|
:bottom => @space)
|
64
69
|
|
65
70
|
block.delete_pre_draw_proc_by_name(name)
|
66
|
-
|
67
|
-
if open_quote
|
68
|
-
adjust_open_quote_x = (@block_quote_padding_left / 2) + open_quote.width
|
71
|
+
if open_quote or close_quote
|
69
72
|
block.add_pre_draw_proc(name) do |canvas, x, y, w, h, simulation|
|
70
73
|
unless simulation
|
71
|
-
open_quote
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
74
|
+
if open_quote
|
75
|
+
adjust_open_quote_x = @block_quote_padding_left / 2
|
76
|
+
adjust_open_quote_y = @block_quote_padding_top / 2
|
77
|
+
unless @block_quote_image_background_alpha
|
78
|
+
adjust_open_quote_x += open_quote.width
|
79
|
+
end
|
80
|
+
open_quote.draw(canvas,
|
81
|
+
x - adjust_open_quote_x,
|
82
|
+
y - adjust_open_quote_y,
|
83
|
+
:alpha => @block_quote_image_background_alpha)
|
84
|
+
end
|
85
|
+
if close_quote
|
86
|
+
adjust_close_quote_x = -@block_quote_padding_right / 2
|
87
|
+
if @block_quote_image_background_alpha
|
88
|
+
adjust_close_quote_x += close_quote.width
|
89
|
+
end
|
90
|
+
adjust_close_quote_y = block.height
|
91
|
+
adjust_close_quote_y -= close_quote.height
|
92
|
+
adjust_close_quote_y -= @block_quote_padding_bottom / 2
|
93
|
+
adjust_close_quote_y -= block.padding_bottom
|
94
|
+
close_quote.draw(canvas,
|
95
|
+
x + w - adjust_close_quote_x,
|
96
|
+
y + adjust_close_quote_y,
|
97
|
+
:alpha => @block_quote_image_background_alpha)
|
98
|
+
end
|
82
99
|
end
|
83
100
|
[x, y, w, h]
|
84
101
|
end
|
@@ -54,12 +54,24 @@ match(*(slide_body + (enum_list_item * 2))) do |items|
|
|
54
54
|
end
|
55
55
|
|
56
56
|
match(*(slide_body + (enum_list_item * 3))) do |items|
|
57
|
-
setup_default_enum_item_mark(items,
|
57
|
+
setup_default_enum_item_mark(items, "enum3", 1, (1 / 4.0),
|
58
58
|
{"size" => @x_small_font_size},
|
59
59
|
{"type" => "upper-case"})
|
60
60
|
end
|
61
61
|
|
62
62
|
|
63
|
+
match(*(slide_body + item_list_item + enum_list_item)) do |items|
|
64
|
+
setup_default_enum_item_mark(items, "item1-enum", 1.5, (2 / 4.0),
|
65
|
+
{"size" => @small_font_size},
|
66
|
+
{"type" => "lower-case"})
|
67
|
+
end
|
68
|
+
|
69
|
+
match(*(slide_body + (item_list_item * 2) + enum_list_item)) do |items|
|
70
|
+
setup_default_enum_item_mark(items, "item2-enum", 1, (1 / 4.0),
|
71
|
+
{"size" => @x_small_font_size},
|
72
|
+
{"type" => "upper-case"})
|
73
|
+
end
|
74
|
+
|
63
75
|
match(*(slide_body + enum_list_item + item_list_item)) do |items|
|
64
76
|
setup_default_item_mark(items, "enum-item1", 1.5, 1.5, (2 / 4.0),
|
65
77
|
@default_enum_item1_mark_color,
|
@@ -8,6 +8,10 @@
|
|
8
8
|
@preformatted_padding_top ||= screen_y(2)
|
9
9
|
@preformatted_padding_bottom ||= screen_y(2)
|
10
10
|
|
11
|
+
if @preformatted_keep_in_size.nil?
|
12
|
+
@preformatted_keep_in_size = true
|
13
|
+
end
|
14
|
+
|
11
15
|
match("**", PreformattedBlock) do |blocks|
|
12
16
|
name = "preformatted-block"
|
13
17
|
|
@@ -31,7 +35,7 @@ match("**", PreformattedBlock) do |blocks|
|
|
31
35
|
blocks.margin_top = @space
|
32
36
|
blocks.margin_bottom = @space
|
33
37
|
|
34
|
-
blocks.keep_in_size
|
38
|
+
blocks.keep_in_size if @preformatted_keep_in_size
|
35
39
|
|
36
40
|
draw_frame(blocks, params)
|
37
41
|
end
|
@@ -140,6 +140,14 @@ match(*(slide_body + (enum_list_item * 3))) do
|
|
140
140
|
end
|
141
141
|
|
142
142
|
|
143
|
+
match(*(slide_body + item_list_item + enum_list_item)) do
|
144
|
+
prop_set("size", @small_font_size)
|
145
|
+
end
|
146
|
+
|
147
|
+
match(*(slide_body + (item_list_item * 2) + enum_list_item)) do
|
148
|
+
prop_set("size", @x_small_font_size)
|
149
|
+
end
|
150
|
+
|
143
151
|
match(*(slide_body + enum_list_item + item_list_item)) do
|
144
152
|
prop_set("size", @small_font_size)
|
145
153
|
end
|
@@ -37,10 +37,10 @@ match(SlideElement) do |slides|
|
|
37
37
|
"color" => text_color,
|
38
38
|
}
|
39
39
|
left_layout = right_layout = nil
|
40
|
-
if left_text
|
40
|
+
if left_text and !left_text.empty?
|
41
41
|
left_layout = make_formatted_layout.call(props, left_text)
|
42
42
|
end
|
43
|
-
if right_text
|
43
|
+
if right_text and !right_text.empty?
|
44
44
|
right_layout = make_formatted_layout.call(props, right_text)
|
45
45
|
end
|
46
46
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
@slide_number_uninstall = true
|
2
|
+
@default_headline_line_color = "black"
|
3
|
+
@default_item1_mark_type = "check"
|
4
|
+
@default_item2_mark_type = "circle"
|
5
|
+
include_theme("default")
|
6
|
+
|
7
|
+
@lightning_talk_proc_name = "lightning-default"
|
8
|
+
include_theme("lightning-talk-toolkit")
|
9
|
+
|
10
|
+
match(Slide) do |slides|
|
11
|
+
slides.each do |slide|
|
12
|
+
if slide.lightning_talk?
|
13
|
+
slide.lightning_talk
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -1,3 +1,29 @@
|
|
1
1
|
match("**") do |elements|
|
2
|
-
|
2
|
+
have_preformatted_in_parent = Proc.new do |element|
|
3
|
+
if element.nil?
|
4
|
+
false
|
5
|
+
elsif element.is_a?(PreformattedBlock)
|
6
|
+
true
|
7
|
+
else
|
8
|
+
have_preformatted_in_parent.call(element.parent)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
have_preformatted_in_children = Proc.new do |element|
|
13
|
+
if element.nil?
|
14
|
+
false
|
15
|
+
elsif element.is_a?(PreformattedBlock)
|
16
|
+
true
|
17
|
+
elsif element.respond_to?(:elements)
|
18
|
+
element.elements.any? {|child| have_preformatted_in_children.call(child)}
|
19
|
+
else
|
20
|
+
false
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
elements.each do |element|
|
25
|
+
next if have_preformatted_in_parent.call(element)
|
26
|
+
next if have_preformatted_in_children.call(element)
|
27
|
+
element.substitute_newline
|
28
|
+
end
|
3
29
|
end
|
@@ -20,6 +20,9 @@ name = "slide-footer-info"
|
|
20
20
|
@slide_footer_info_text_over_line ||= false
|
21
21
|
@slide_footer_info_base_y ||= canvas.height - @margin_bottom
|
22
22
|
|
23
|
+
@slide_footer_info_left_text ||= nil
|
24
|
+
@slide_footer_info_right_text ||= nil
|
25
|
+
|
23
26
|
include_theme("edge-info-toolkit")
|
24
27
|
|
25
28
|
match(SlideElement) do
|
data/lib/rabbit/utils.rb
CHANGED
@@ -387,12 +387,18 @@ module Rabbit
|
|
387
387
|
|
388
388
|
module Converter
|
389
389
|
module_function
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
390
|
+
if "".respond_to?(:encoding)
|
391
|
+
def keep_kcode(new_kcode)
|
392
|
+
yield
|
393
|
+
end
|
394
|
+
else
|
395
|
+
def keep_kcode(new_kcode)
|
396
|
+
kcode = $KCODE
|
397
|
+
$KCODE = new_kcode
|
398
|
+
yield
|
399
|
+
ensure
|
400
|
+
$KCODE = kcode
|
401
|
+
end
|
396
402
|
end
|
397
403
|
|
398
404
|
def to_utf8(str)
|
data/misc/update-rd.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
@@ -9,9 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-16 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: cairo
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
15
25
|
- !ruby/object:Gem::Dependency
|
16
26
|
name: hikidoc
|
17
27
|
type: :runtime
|
@@ -30,7 +40,7 @@ dependencies:
|
|
30
40
|
requirements:
|
31
41
|
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
43
|
+
version: 2.4.0
|
34
44
|
version:
|
35
45
|
description: Rabbit is an RD-document-based presentation application.
|
36
46
|
email:
|
@@ -88,6 +98,7 @@ files:
|
|
88
98
|
- data/rabbit/image/rabbit-images/lavie-with-logo.png
|
89
99
|
- data/rabbit/image/rabbit-images/lavie.png
|
90
100
|
- data/rabbit/image/rabbit-images/mini-alice.png
|
101
|
+
- data/rabbit/image/rabbit-images/mini-butler-rabbit.png
|
91
102
|
- data/rabbit/image/rabbit-images/mini-horizontal-bar.png
|
92
103
|
- data/rabbit/image/rabbit-images/mini-kame-taro.png
|
93
104
|
- data/rabbit/image/rabbit-images/mini-tanu-kitaro.png
|
@@ -418,6 +429,8 @@ files:
|
|
418
429
|
- lib/rabbit/theme/image/property.rb
|
419
430
|
- lib/rabbit/theme/lightning-clear-blue/lightning-clear-blue.rb
|
420
431
|
- lib/rabbit/theme/lightning-clear-blue/property.rb
|
432
|
+
- lib/rabbit/theme/lightning-monochrome/lightning-monochrome.rb
|
433
|
+
- lib/rabbit/theme/lightning-monochrome/property.rb
|
421
434
|
- lib/rabbit/theme/lightning-rabbit/lightning-rabbit.rb
|
422
435
|
- lib/rabbit/theme/lightning-rabbit/property.rb
|
423
436
|
- lib/rabbit/theme/lightning-simple/lightning-simple.rb
|