rabbit 2.1.9 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  3. data/doc/_config.yml +4 -4
  4. data/doc/en/faq.rd +8 -8
  5. data/doc/en/news.rd +105 -1
  6. data/doc/ja/news.rd +104 -1
  7. data/lib/rabbit/canvas.rb +2 -1
  8. data/lib/rabbit/command/rabbit.rb +6 -3
  9. data/lib/rabbit/element/index-slide.rb +2 -2
  10. data/lib/rabbit/element/text-container-element.rb +30 -1
  11. data/lib/rabbit/element/text-renderer.rb +12 -1
  12. data/lib/rabbit/element/text.rb +7 -0
  13. data/lib/rabbit/error.rb +4 -3
  14. data/lib/rabbit/frame.rb +8 -22
  15. data/lib/rabbit/front.rb +8 -8
  16. data/lib/rabbit/gem-pusher.rb +66 -0
  17. data/lib/rabbit/gtk.rb +4 -0
  18. data/lib/rabbit/image-data-loader.rb +3 -3
  19. data/lib/rabbit/image/dia.rb +11 -6
  20. data/lib/rabbit/image/eps.rb +13 -11
  21. data/lib/rabbit/image/gimp.rb +1 -1
  22. data/lib/rabbit/image/pdf.rb +6 -10
  23. data/lib/rabbit/image/svg.rb +5 -1
  24. data/lib/rabbit/parser/markdown.rb +1 -0
  25. data/lib/rabbit/parser/markdown/converter.rb +43 -2
  26. data/lib/rabbit/password-reader.rb +34 -0
  27. data/lib/rabbit/progress.rb +22 -10
  28. data/lib/rabbit/renderer.rb +1 -1
  29. data/lib/rabbit/renderer/base.rb +7 -7
  30. data/lib/rabbit/renderer/color.rb +8 -0
  31. data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -0
  32. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +14 -2
  33. data/lib/rabbit/renderer/display/magnifier.rb +6 -4
  34. data/lib/rabbit/renderer/display/scroll-handler.rb +2 -2
  35. data/lib/rabbit/renderer/display/spotlight.rb +1 -1
  36. data/lib/rabbit/renderer/engine/cairo.rb +16 -1
  37. data/lib/rabbit/renderer/offscreen.rb +120 -0
  38. data/lib/rabbit/search-window.rb +6 -6
  39. data/lib/rabbit/searcher.rb +4 -84
  40. data/lib/rabbit/slideshare.rb +7 -11
  41. data/lib/rabbit/source-generator/markdown.rb +4 -4
  42. data/lib/rabbit/task/slide.rb +4 -2
  43. data/lib/rabbit/task/theme.rb +6 -3
  44. data/lib/rabbit/theme/slide-logo/slide-logo.rb +37 -27
  45. data/lib/rabbit/theme/syntax-highlighting/syntax-highlighting.rb +1 -7
  46. data/lib/rabbit/theme/title-on-image-toolkit/title-on-image-toolkit.rb +6 -0
  47. data/lib/rabbit/utils.rb +0 -5
  48. data/lib/rabbit/version.rb +2 -2
  49. data/po/en/rabbit.edit.po +151 -143
  50. data/po/en/rabbit.po +7 -1
  51. data/po/fr/rabbit.edit.po +151 -143
  52. data/po/fr/rabbit.po +7 -1
  53. data/po/ja/rabbit.edit.po +155 -147
  54. data/po/ja/rabbit.po +11 -5
  55. data/rabbit.gemspec +2 -1
  56. data/sample/rabbit.md +10 -0
  57. data/test/parser/test-markdown.rb +47 -1
  58. data/test/source-generator/test-markdown.rb +2 -2
  59. metadata +21 -9
  60. data/lib/rabbit/renderer/pixmap.rb +0 -1
  61. data/lib/rabbit/renderer/pixmap/base.rb +0 -127
  62. data/lib/rabbit/renderer/pixmap/cairo.rb +0 -15
  63. data/lib/rabbit/renderer/pixmap/gl.rb +0 -46
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bb7d4c4da1f200c5e29e65dc548e9a4dfe21a127
4
- data.tar.gz: 74e3c6893db6afeaee4d260ef2dfd2b330c93c1e
3
+ metadata.gz: 6f8a805af9b4c6690fe8f9453cfceb0c1e0892d4
4
+ data.tar.gz: ad5fe1b1e857c6915e385411d4bfb39ea1e0584b
5
5
  SHA512:
6
- metadata.gz: cee32005d4a4536cdc07c074d0d2105f588ed4dde786667402fa2ac1135aa7313460a2b0970001ba214994d0a6188d108575270481725bf355995fb0ce34923f
7
- data.tar.gz: b179a707b24fee6d6406bd818cf28aaf61e3959580a12404a20b72ef33b396cab0372134dc76ebce757b661a27626cc4c5470ad8134da83a36d3ac1ca17cda9b
6
+ metadata.gz: 358394e487119026459084289744f958c54a964ca165f2b9a1d138a34f67a132ac32e3c3bb6034909a634c5891b3a51e3f039acb350a53b11bf725229785950b
7
+ data.tar.gz: ef2ed17a7b5dcbe187382a92f0a43adc8d431b639f0fe4e700cd977e66d62331761b7fcd33ee547519cce4cedbce9153d4facd047a6f1c4fb51cbe9e701821c1
@@ -1,8 +1,8 @@
1
1
  markdown: kramdown
2
- version: 2.1.9
3
- release_date: 2016-05-27
4
- rabbiter_version: 2.0.1
5
- rabbiter_release_date: 2013-08-29
2
+ version: 2.2.0
3
+ release_date: 2017-01-22
4
+ rabbiter_version: 2.0.3
5
+ rabbiter_release_date: 2016-08-21
6
6
  rabbirack_version: 2.0.0
7
7
  rabbirack_release_date: 2012-08-29
8
8
  rabwii_version: 2.0.0
@@ -4,20 +4,20 @@ title: FAQ
4
4
  ---
5
5
  == FAQ
6
6
 
7
- This page lists frequently asked questions. Here is a format used in this page.
7
+ This page lists frequently asked questions. Here is the format used on this page.
8
8
 
9
9
  == Question...
10
10
 
11
11
  Answer...
12
12
 
13
- == How can I embed tweets on Rabbit slide?
13
+ == How can I embed tweets on a Rabbit slide?
14
14
 
15
- Use "rabbiter" command. For exapmle, you hit rabbitter command as follows
16
- after starting Rabbit and you will see tweets including word "ruby" in the bottom of the slides in form of comment.
15
+ Use the "rabbiter" command. For exapmle, you use the rabbiter command as follows:
16
+ (after starting Rabbit, you will see tweets including the word "ruby" at the bottom of the slides in the form of comments)
17
17
 
18
18
  % rabbiter --filter ruby
19
19
 
20
- == How can I flow tweets on slides like embeded video?
20
+ == How can I flow tweets on slides like an embeded video?
21
21
 
22
22
  Run ((%rabbit%)) command with ((%--comment-theme stream-comment%)) options.
23
23
 
@@ -26,7 +26,7 @@ Run ((%rabbit%)) command with ((%--comment-theme stream-comment%)) options.
26
26
  Taking into tweets with ((%rabbiter%)) command,
27
27
  you can flow them on your slides.
28
28
 
29
- == How to make a PDF which has some slides per page?
29
+ == How to create a PDF with multiple slides per page?
30
30
 
31
31
  For example, we make XXX_multi.pdf which has 8 slides per
32
32
  page from XXX.rd.
@@ -138,8 +138,8 @@ Use following charachters.
138
138
 
139
139
  This is available in both content and title.
140
140
 
141
- TODO: Formery we should use 
 but now can use \n
142
- , which means following sentence is oblsolate. Oh my god...
141
+ TODO: Formerly we used 
 but now can use \n
142
+ , which means following sentence is oblsolete. Oh my god...
143
143
 
144
144
  Rabbit has got into the magic as well as Ruby, which "makes what you shouldn't looks ugly". ((-Using (({$})) for global vars is a kind of "Magic Powder" for Ruby. -))。
145
145
 
@@ -3,6 +3,110 @@ layout: en
3
3
  title: News
4
4
  ---
5
5
  {% raw %}
6
+ == 2.2.0: 2017-01-22
7
+
8
+ Markdown support improvement release.
9
+
10
+ === Improvements
11
+
12
+ ==== All
13
+
14
+ * Dropped Ruby 2.0 support.
15
+
16
+ * Dropped gdk_pixbuf2 gem 3.0.8 or earlier support.
17
+
18
+ ==== rabbit
19
+
20
+ * PDF: Supported PDF file that has "%" in its name.
21
+
22
+ * Dropped Migemo support.
23
+
24
+ * Markdown: Supported tag.
25
+
26
+ Example (Inline):
27
+
28
+ Normal {::tag name="center"}Centered{:/tag} Normal
29
+
30
+ Example (Paragraph):
31
+
32
+ Normal
33
+
34
+ {:.center}
35
+ Centered
36
+
37
+ Normal
38
+
39
+ * Markdown: Supported (({wait})) in nested list item.
40
+
41
+ * Improved performance on deciding font size dynamically.
42
+
43
+ * Changed to use RubyGems user in (({config.yaml})) on pushing
44
+ slide/theme gems.
45
+
46
+ * PDF: Supported link. But there are the following limitations:
47
+ * cairo 1.15.4 is required. (If you use Rabbit with cairo 1.15.2
48
+ or earlier, you just can't use this feature.)
49
+ * Link target is paragraph not link text.
50
+
51
+ ==== Theme
52
+
53
+ * slide-logo: Supported logo per side by specifying image file name
54
+ to (({logo-image})) slide property.
55
+
56
+ * title-on-image-toolkit: Improved readability by rendering
57
+ character border.
58
+
59
+ * syntax-highlighting: Changed color for path of (({#include})) in
60
+ C. Now, it uses the same color as normal string.
61
+
62
+ ==== rabbit-slide
63
+
64
+ * Markdown: Fixed a bug that required newlines are missing.
65
+ [GitHub#95][Patch by znz]
66
+
67
+ ==== Document
68
+
69
+ * Improve English in FAQ.
70
+ [GitHub#100][Patch by Todd Trimble]
71
+
72
+ === Fixes
73
+
74
+ ==== rabbit
75
+
76
+ * Fixed a bug that error isn't reported when multibyte image file
77
+ name is specified and it doesn't exist.
78
+ [GitHub#91][Reported by takiy33]
79
+
80
+ * Windows: Fixed encoding error on image file detection.
81
+ [GitHub#93][Reported by dogatana]
82
+
83
+ * Fixed a bug that an error is occurred when you cancel in slide
84
+ select dialog.
85
+
86
+ * Fixed typos.
87
+ [GitHub#97][Patch by znz]
88
+
89
+ * Fixed a bug that spotlight and magnifier uses wrong position when
90
+ slide aspect ratio and window aspect ratio are difference.
91
+ [GitHub#99][Patch by OBATA Akio]
92
+
93
+ * Windows: Fixed a bug that unfullscreen doesn't restore window size.
94
+ [GitHub#98][Reported by TADA, Tadashi]
95
+
96
+ ==== Document
97
+
98
+ * Fix typos.
99
+ [GitHub#101][Patch by znz]
100
+
101
+ === Thanks
102
+
103
+ * takiy33
104
+ * dogatana
105
+ * znz
106
+ * Todd Trimble
107
+ * OBATA Akio
108
+ * TADA, Tadashi
109
+
6
110
  == 2.1.9: 2016-05-27
7
111
 
8
112
  Markdown support improvement release.
@@ -1150,7 +1254,7 @@ Markdown support release!
1150
1254
  * [GitHub#3]: Fixed a wrong variable name.
1151
1255
  [Patch by TAKATSU Tomonari]
1152
1256
 
1153
- ==== rabbitter
1257
+ ==== rabbiter
1154
1258
 
1155
1259
  * Supported HTTPS. [Patch by OBATA Akio]
1156
1260
 
@@ -4,6 +4,109 @@ title: お知らせ
4
4
  apply_data: false
5
5
  ---
6
6
  {% raw %}
7
+ == 2.2.0: 2017-01-22
8
+
9
+ Markdownサポートを強化したリリース。
10
+
11
+ === 改良
12
+
13
+ ==== 全体
14
+
15
+ * Ruby 2.0のサポートをやめた。
16
+
17
+ * gdk_pixbuf2 gem 3.0.8以前のサポートをやめた。
18
+
19
+ ==== rabbit
20
+
21
+ * PDF:「%」が含まれているファイル名に対応。
22
+
23
+ * Migemoサポートを削除した。
24
+
25
+ * Markdown:タグをサポート。
26
+
27
+ 例(インライン):
28
+
29
+ 普通のテキスト{::tag name="center"}中央寄せされたテキスト{:/tag}普通のテキスト
30
+
31
+ 例(段落単位):
32
+
33
+ 普通のテキスト
34
+
35
+ {:.center}
36
+ 中央寄せされたテキスト
37
+
38
+ 普通のテキスト
39
+
40
+ * Markdown:ネストしたリストの項目での(({wait}))をサポート。
41
+
42
+ * 動的にフォントサイズを決めるときのパフォーマンスを改善。
43
+
44
+ * スライド・テーマのgemをpushするときに(({config.yaml}))で指定してい
45
+ るRubyGemsユーザーを使うようにした。
46
+
47
+ * PDF:リンクをサポート。ただし、以下の制限がある。
48
+ * cairo 1.15.4以降が必要。(1.15.4未満の場合は単にこの機能を使えないだけ。)
49
+ * リンクテキストだけでなく段落全体がリンクになってしまう。
50
+
51
+ ==== テーマ
52
+
53
+ * slide-logo:(({logo-image}))スライドプロパティーに画像ファイル名を
54
+ 指定することでスライド毎にロゴを変えられるようにした。
55
+
56
+ * title-on-image-toolkit:文字の縁も描画して読みやすくした。
57
+
58
+ * syntax-highlighting:Cの(({#include}))のパスの色を通常の文字列と同
59
+ じ色にした。
60
+
61
+ ==== rabbit-slide
62
+
63
+ * Markdown:必要な改行が出力されていない問題を修正。
64
+ [GitHub#95][znzさんがパッチ提供]
65
+
66
+ ==== ドキュメント
67
+
68
+ * FAQの英語を改良。
69
+ [GitHub#100][Todd Trimbleさんがパッチ提供]
70
+
71
+ === 修正
72
+
73
+ ==== rabbit
74
+
75
+ * マルチバイトの画像ファイル名を指定してそのファイルが見つからなかっ
76
+ たときに適切にエラーを報告できない問題を修正。
77
+ [GitHub#91][takiy33さんが報告]
78
+
79
+ * Windows:画像ファイル検出時のエンコーディングエラーを修正。
80
+ [GitHub#93][dogatanaさんが報告]
81
+
82
+ * スライド選択ダイアログでキャンセルしたときにエラーが発生していた問
83
+ 題を修正。
84
+
85
+ * typoを修正。
86
+ [GitHub#97][znzさんがパッチ提供]
87
+
88
+ * スライドのアスペクト比とウィンドウのアスペクト比が異なるときにスポッ
89
+ トライト・虫眼鏡が対象とする位置がずれる問題を修正。
90
+ [GitHub#99][おばたさんがパッチ提供]
91
+
92
+ * Windows:フルスクリーンを解除してもウィンドウサイズが戻らない問題
93
+ を修正。
94
+ [GitHub#98][ただただしさんが報告]
95
+
96
+ ==== ドキュメント
97
+
98
+ * typoを修正。
99
+ [GitHub#101][znzさんがパッチ提供]
100
+
101
+ === 感謝
102
+
103
+ * takiy33さん
104
+ * dogatanaさん
105
+ * znzさん
106
+ * Todd Trimbleさん
107
+ * おばたさん
108
+ * ただただしさん
109
+
7
110
  == 2.1.9: 2016-05-27
8
111
 
9
112
  Markdownサポートを強化したリリース。
@@ -1144,7 +1247,7 @@ Markdown対応リリース!
1144
1247
  * [GitHub#3]: 変数名が間違っていた問題を修正。
1145
1248
  [TAKATSU Tomonariさんが修正]
1146
1249
 
1147
- ==== rabbitter
1250
+ ==== rabbiter
1148
1251
 
1149
1252
  * HTTPS対応。 [OBATA Akioさんが修正]
1150
1253
 
@@ -45,7 +45,7 @@ module Rabbit
45
45
  def_delegators(:@renderer, :redraw, :clear_slide)
46
46
  def_delegators(:@renderer, :cursor=, :filename, :filename=)
47
47
  def_delegators(:@renderer, :each_slide_pixbuf)
48
- def_delegators(:@renderer, :off_screen_canvas)
48
+ def_delegators(:@renderer, :offscreen_canvas)
49
49
  def_delegators(:@renderer, :foreground, :background)
50
50
  def_delegators(:@renderer, :foreground=, :background=)
51
51
  def_delegators(:@renderer, :background_image, :background_image=)
@@ -66,6 +66,7 @@ module Rabbit
66
66
  def_delegators(:@renderer, :draw_rounded_rectangle)
67
67
  def_delegators(:@renderer, :draw_rsvg_handle)
68
68
  def_delegators(:@renderer, :draw_poppler_page)
69
+ def_delegators(:@renderer, :draw_link)
69
70
 
70
71
  def_delegators(:@renderer, :draw_cube, :draw_sphere, :draw_cone)
71
72
  def_delegators(:@renderer, :draw_torus, :draw_tetrahedron)
@@ -56,7 +56,10 @@ module Rabbit
56
56
  end
57
57
  application.signal_connect("activate") do
58
58
  begin
59
- succeeded = __send__("do_#{@options.action}")
59
+ succeeded = catch do |abort_tag|
60
+ @abort_tag = abort_tag
61
+ __send__("do_#{@options.action}")
62
+ end
60
63
  rescue
61
64
  @logger.error($!)
62
65
  end
@@ -666,7 +669,7 @@ module Rabbit
666
669
  if @options.source_type == :auto
667
670
  if rest_arguments.empty?
668
671
  file_name = choose_source_file_by_dialog
669
- exit if file_name.nil?
672
+ throw(@abort_tag, true) if file_name.nil?
670
673
  rest_arguments = [file_name]
671
674
  @options.source_type = Source::File
672
675
  elsif rest_arguments.size == 1 and
@@ -821,7 +824,7 @@ module Rabbit
821
824
 
822
825
  def do_save_as_image
823
826
  source = make_source
824
- canvas = make_canvas(Renderer::Pixmap::Cairo)
827
+ canvas = make_canvas(Renderer::Offscreen)
825
828
  setup_size(canvas)
826
829
  setup_image_info(canvas)
827
830
  setup_print_info(canvas)
@@ -1,5 +1,5 @@
1
1
  require 'rabbit/canvas'
2
- require 'rabbit/renderer/pixmap'
2
+ require 'rabbit/renderer/offscreen'
3
3
  require 'rabbit/element/container-element'
4
4
  require 'rabbit/element/slide-element'
5
5
 
@@ -87,7 +87,7 @@ module Rabbit
87
87
 
88
88
  private
89
89
  def make_thumbnail_maker(canvas, width, height)
90
- new_canvas = Canvas.new(canvas.logger, Renderer::Pixmap::Cairo)
90
+ new_canvas = Canvas.new(canvas.logger, Renderer::Offscreen)
91
91
  new_canvas.width = width
92
92
  new_canvas.height = height
93
93
  new_canvas.pango_context = canvas.create_pango_context
@@ -15,7 +15,10 @@ module Rabbit
15
15
 
16
16
  def draw_elements(canvas, x, y, w, h, simulation)
17
17
  unless simulation
18
- draw_layout(canvas, x, y)
18
+ # TODO: This is too workaround. :<
19
+ draw_sub_elements(canvas, x, y, w, h) do
20
+ draw_layout(canvas, x, y)
21
+ end
19
22
  end
20
23
  [x, y + @height, w, h - @height]
21
24
  end
@@ -103,6 +106,32 @@ module Rabbit
103
106
  end
104
107
  super(my_font_size)
105
108
  end
109
+
110
+ private
111
+ # TODO: This is too workaround. :<
112
+ def draw_sub_elements(canvas, x, y, w, h)
113
+ draw_sub_elements_recursive(canvas, x, y, w, h, 0) do
114
+ yield
115
+ end
116
+ end
117
+
118
+ # TODO: This is too workaround. :<
119
+ def draw_sub_elements_recursive(canvas, x, y, w, h, i)
120
+ if i == @elements.size
121
+ yield
122
+ else
123
+ draw_sub_elements_recursive(canvas, x, y, w, h, i + 1) do
124
+ element = @elements[i]
125
+ if element.respond_to?(:draw_sub_elements)
126
+ element.draw_sub_elements(canvas, x, y, w, h) do
127
+ yield
128
+ end
129
+ else
130
+ yield
131
+ end
132
+ end
133
+ end
134
+ end
106
135
  end
107
136
  end
108
137
  end
@@ -148,7 +148,12 @@ module Rabbit
148
148
  max_width, max_height|
149
149
  if (max_width and initial_width > max_width) or
150
150
  (max_height and initial_height > max_height)
151
- scale = 0.95
151
+ scale = lambda do |_width, _height|
152
+ candidates = [0.95]
153
+ candidates << (max_width.to_f) / _width if max_width
154
+ candidates << (max_height.to_f) / _height if max_height
155
+ candidates.min
156
+ end
152
157
  compare = Proc.new do |_width, _height|
153
158
  (max_width.nil? or _width < max_width) and
154
159
  (max_height.nil? or _height < max_height)
@@ -306,10 +311,16 @@ module Rabbit
306
311
 
307
312
  return if scale.nil? or compare.nil?
308
313
 
314
+ if scale.respond_to?(:call)
315
+ compute_scale = scale
316
+ scale = nil
317
+ end
318
+
309
319
  size = new_size = initial_font_size_for_compute_font_size
310
320
  current_layout_size = @layout.pixel_size
311
321
  unless compare.call(*@layout.pixel_size)
312
322
  loop do
323
+ scale = compute_scale.call(*@layout.pixel_size) if compute_scale
313
324
  new_size = compute_next_font_size(size, scale)
314
325
  break if new_size == size
315
326
  set_computed_font_size(new_size)