rabbit 2.1.6 → 2.1.7

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
  3. data/doc/_config.yml +2 -2
  4. data/doc/_layouts/en.html +1 -1
  5. data/doc/_layouts/ja.html +1 -1
  6. data/doc/_layouts/skeleton.html +22 -17
  7. data/doc/css/rabbit.css +62 -4
  8. data/doc/en/development.rd +2 -2
  9. data/doc/en/news.rd +65 -2
  10. data/doc/index.html.en +15 -15
  11. data/doc/index.html.ja +20 -20
  12. data/doc/ja/development.rd +2 -2
  13. data/doc/ja/index.rd +4 -4
  14. data/doc/ja/news.rd +61 -2
  15. data/lib/rabbit/command/rabbit.rb +7 -62
  16. data/lib/rabbit/cursor-manager.rb +29 -22
  17. data/lib/rabbit/element/index-slide.rb +1 -1
  18. data/lib/rabbit/error.rb +224 -0
  19. data/lib/rabbit/frame.rb +6 -10
  20. data/lib/rabbit/graffiti/config-dialog.rb +4 -4
  21. data/lib/rabbit/gtk.rb +173 -3
  22. data/lib/rabbit/image/pdf.rb +1 -3
  23. data/lib/rabbit/image/svg.rb +1 -3
  24. data/lib/rabbit/info-window.rb +37 -30
  25. data/lib/rabbit/keys.rb +70 -70
  26. data/lib/rabbit/logger/gui.rb +3 -10
  27. data/lib/rabbit/menu.rb +22 -8
  28. data/lib/rabbit/parser.rb +4 -2
  29. data/lib/rabbit/parser/base.rb +0 -6
  30. data/lib/rabbit/parser/image.rb +4 -0
  31. data/lib/rabbit/parser/markdown.rb +33 -7
  32. data/lib/rabbit/parser/markdown/converter.rb +15 -4
  33. data/lib/rabbit/parser/pdf.rb +4 -0
  34. data/lib/rabbit/parser/rd.rb +4 -0
  35. data/lib/rabbit/parser/rd/ext/block-verbatim.rb +47 -34
  36. data/lib/rabbit/parser/wiki.rb +4 -0
  37. data/lib/rabbit/parser/wiki/output.rb +42 -15
  38. data/lib/rabbit/progress.rb +1 -1
  39. data/lib/rabbit/rabbit.rb +8 -225
  40. data/lib/rabbit/renderer/base.rb +1 -1
  41. data/lib/rabbit/renderer/display/base.rb +10 -3
  42. data/lib/rabbit/renderer/display/button-handler.rb +3 -3
  43. data/lib/rabbit/renderer/display/clutter-embed.rb +9 -9
  44. data/lib/rabbit/renderer/display/drawing-area-base.rb +19 -24
  45. data/lib/rabbit/renderer/display/drawing-area-primitive.rb +22 -13
  46. data/lib/rabbit/renderer/display/drawing-area-view-only.rb +1 -1
  47. data/lib/rabbit/renderer/display/drawing-area.rb +1 -1
  48. data/lib/rabbit/renderer/display/gesture.rb +1 -1
  49. data/lib/rabbit/renderer/display/key-handler.rb +19 -19
  50. data/lib/rabbit/renderer/display/magnifier.rb +1 -1
  51. data/lib/rabbit/renderer/display/mask.rb +16 -21
  52. data/lib/rabbit/renderer/display/search.rb +1 -1
  53. data/lib/rabbit/renderer/display/spotlight.rb +1 -1
  54. data/lib/rabbit/renderer/engine.rb +1 -18
  55. data/lib/rabbit/renderer/engine/cairo.rb +0 -6
  56. data/lib/rabbit/renderer/pixmap.rb +1 -25
  57. data/lib/rabbit/renderer/pixmap/cairo.rb +1 -9
  58. data/lib/rabbit/renderer/print/cairo.rb +1 -10
  59. data/lib/rabbit/search-window.rb +2 -2
  60. data/lib/rabbit/source-generator/markdown.rb +1 -1
  61. data/lib/rabbit/stock.rb +3 -3
  62. data/lib/rabbit/task/slide.rb +1 -1
  63. data/lib/rabbit/theme/applier.rb +1 -1
  64. data/lib/rabbit/theme/clear-blue/clear-blue.rb +0 -8
  65. data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +7 -5
  66. data/lib/rabbit/theme/image-timer/image-timer.rb +4 -1
  67. data/lib/rabbit/utils.rb +20 -3
  68. data/lib/rabbit/version.rb +1 -1
  69. data/lib/rabbit/video-window.rb +3 -3
  70. data/po/en/rabbit.edit.po +187 -199
  71. data/po/en/rabbit.po +58 -67
  72. data/po/fr/rabbit.edit.po +187 -199
  73. data/po/fr/rabbit.po +58 -67
  74. data/po/ja/rabbit.edit.po +204 -205
  75. data/po/ja/rabbit.po +64 -73
  76. data/rabbit.gemspec +2 -0
  77. data/sample/rabbit-en.md +2 -2
  78. data/sample/rabbit.md +2 -2
  79. data/test/image/test-dia.rb +2 -2
  80. data/test/image/test-eps.rb +2 -2
  81. data/test/parser/test-markdown.rb +71 -25
  82. data/test/parser/test-wiki.rb +73 -0
  83. data/test/rabbit-test-utils.rb +3 -7
  84. data/test/rabbit-test-utils/fixture.rb +24 -0
  85. data/test/rabbit-test-utils/parser.rb +48 -0
  86. data/test/source-generator/test-markdown.rb +1 -1
  87. metadata +37 -7
  88. data/README +0 -1
  89. data/doc/images/jp.png +0 -0
  90. data/doc/images/us.png +0 -0
  91. data/lib/rabbit/renderer/engine/gdk.rb +0 -230
  92. data/lib/rabbit/renderer/pixmap/gdk.rb +0 -29
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: Rabbit 0.5.4\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
- "PO-Revision-Date: 2014-08-03 22:32+0900\n"
9
+ "PO-Revision-Date: 2015-09-05 23:04+0900\n"
10
10
  "Last-Translator: Kouhei Sutou <kou@cozmixng.org>\n"
11
11
  "Language-Team: Kouhei Sutou <kou@cozmixng.org> and Kobayashi Noritada <nori1@d"
12
12
  "olphin.c.u-tokyo.ac.jp>\n"
@@ -331,10 +331,10 @@ msgid "COMMAND"
331
331
  msgstr ""
332
332
 
333
333
  msgid " new: create a new slide"
334
- msgstr ""
334
+ msgstr " new: 新しいスライドを作成"
335
335
 
336
336
  msgid " change: change an existing slide"
337
- msgstr ""
337
+ msgstr " change: 既存のスライドを変更"
338
338
 
339
339
  msgid "Slide information"
340
340
  msgstr "スライドの情報"
@@ -707,12 +707,6 @@ msgstr "XML-RPCのホスト名を[HOST]とします."
707
707
  msgid "Specify XML-RPC port as [PORT]."
708
708
  msgstr "XML-RPCのポートを[PORT]とします."
709
709
 
710
- msgid "Server"
711
- msgstr "サーバ"
712
-
713
- msgid "Specify whether to run as server."
714
- msgstr "サーバとして動作するかどうかを指定します."
715
-
716
710
  msgid "Public level"
717
711
  msgstr "公開レベル"
718
712
 
@@ -765,7 +759,7 @@ msgid "Others"
765
759
  msgstr "その他"
766
760
 
767
761
  msgid "Check slide source syntax and exit."
768
- msgstr ""
762
+ msgstr "スライドのソースの構文をチェックして終了します。"
769
763
 
770
764
  msgid "Show a native window ID of the Rabbit window if available."
771
765
  msgstr "可能ならウィンドウシステムに依存したRabbitのウィンドウのIDを表示します。"
@@ -788,12 +782,6 @@ msgstr "XML-RPC用ポート<%s>は使用中です."
788
782
  msgid "Window ID: %d"
789
783
  msgstr "ウィンドウID: %d"
790
784
 
791
- msgid "going to shutdown..."
792
- msgstr "終了中です..."
793
-
794
- msgid "DRb.thread done."
795
- msgstr "DRB.threadは終了しました."
796
-
797
785
  msgid "Usage: %s [options]"
798
786
  msgstr "使用法: %s [オプション]"
799
787
 
@@ -824,6 +812,60 @@ msgstr "バージョンを表示します."
824
812
  msgid "Index"
825
813
  msgstr "一覧"
826
814
 
815
+ msgid "no such file: %s"
816
+ msgstr "そのようなファイルはありません: %s"
817
+
818
+ msgid "can't handle %s because the following command can't be run successfully: %s"
819
+ msgstr "次のコマンドを正常に実行できなかったので%sを扱うことができません: %s"
820
+
821
+ msgid "tried gs commands: %s"
822
+ msgstr "実行したgsコマンド名: %s"
823
+
824
+ msgid "tried dia commands: %s"
825
+ msgstr "実行したdiaコマンド名: %s"
826
+
827
+ msgid "tried gimp commands: %s"
828
+ msgstr "実行したgimpコマンド名: %s"
829
+
830
+ msgid "Unknown property: %s"
831
+ msgstr "未知のプロパティ: %s"
832
+
833
+ msgid "can't allocate color: %s"
834
+ msgstr "色を割り当てることができません: %s"
835
+
836
+ msgid "not exist: %s"
837
+ msgstr "存在しません: %s"
838
+
839
+ msgid "not a file: %s"
840
+ msgstr "ファイルではありません: %s"
841
+
842
+ msgid "can not be read: %s"
843
+ msgstr "読み込むことができません: %s"
844
+
845
+ msgid "immutable source type: %s"
846
+ msgstr "変更不能なソースタイプです: %s"
847
+
848
+ msgid "not available interface: %s"
849
+ msgstr "利用可能なインターフェイスではありません: %s"
850
+
851
+ msgid "can't find HTML template: %s"
852
+ msgstr "HTML のテンプレートが見つかりません: %s"
853
+
854
+ msgid "can't find theme RD template: %s"
855
+ msgstr "テーマ RD のテンプレートが見つかりません: %s"
856
+
857
+ msgid "invalid motion: %s"
858
+ msgstr "不正な動きです: %s"
859
+
860
+ msgid "invalid value of size property \"%{prop_name}\" of image \"%{filename}\": %{value}"
861
+ msgstr "画像\"%{filename}のサイズプロパティ%{prop_name}の値が不正です: %{value}"
862
+
863
+ msgid "unknown cursor type: %s"
864
+ msgstr "未知のカーソルタイプ: %s"
865
+
866
+ msgid "print isn't supported"
867
+ msgstr "印刷をサポートしていません"
868
+
827
869
  msgid "Installing gem: %s"
828
870
  msgstr "gemをインストール中: %s"
829
871
 
@@ -846,7 +888,7 @@ msgid "PDF"
846
888
  msgstr "PDF"
847
889
 
848
890
  msgid "invalid PDF page number: <%s>"
849
- msgstr ""
891
+ msgstr "不正なPDFのページ番号です: <%s>"
850
892
 
851
893
  msgid "%s page doesn't exist in PDF"
852
894
  msgstr "PDFの中に%sページはありません"
@@ -926,8 +968,11 @@ msgstr "水平線はサポートしていません"
926
968
  msgid "unsupported list type: %s"
927
969
  msgstr "サポートしていないリストの種類: %s"
928
970
 
929
- msgid "multiple {{image, 'XXX.png', :align => :right}} isn't supported."
930
- msgstr "複数の{{image, 'XXX.png', :align => :right}}はサポートしていません。"
971
+ msgid "inline {{image(...)}} isn't supported."
972
+ msgstr "インラインの{{image(...)}}は未サポートです。"
973
+
974
+ msgid "multiple {{image(..., :align => :right)}} isn't supported."
975
+ msgstr "複数の{{image(..., :align => :right)}}は未対応です。"
931
976
 
932
977
  msgid "Creating directory: %s"
933
978
  msgstr "ディレクトリを作成中: %s"
@@ -935,60 +980,6 @@ msgstr "ディレクトリを作成中: %s"
935
980
  msgid "Creating file: %s"
936
981
  msgstr "ファイルを作成中: %s"
937
982
 
938
- msgid "no such file: %s"
939
- msgstr "そのようなファイルはありません: %s"
940
-
941
- msgid "can't handle %s because the following command can't be run successfully: %s"
942
- msgstr "次のコマンドを正常に実行できなかったので%sを扱うことができません: %s"
943
-
944
- msgid "tried gs commands: %s"
945
- msgstr "実行したgsコマンド名: %s"
946
-
947
- msgid "tried dia commands: %s"
948
- msgstr "実行したdiaコマンド名: %s"
949
-
950
- msgid "tried gimp commands: %s"
951
- msgstr "実行したgimpコマンド名: %s"
952
-
953
- msgid "Unknown property: %s"
954
- msgstr "未知のプロパティ: %s"
955
-
956
- msgid "can't allocate color: %s"
957
- msgstr "色を割り当てることができません: %s"
958
-
959
- msgid "not exist: %s"
960
- msgstr "存在しません: %s"
961
-
962
- msgid "not a file: %s"
963
- msgstr "ファイルではありません: %s"
964
-
965
- msgid "can not be read: %s"
966
- msgstr "読み込むことができません: %s"
967
-
968
- msgid "immutable source type: %s"
969
- msgstr "変更不能なソースタイプです: %s"
970
-
971
- msgid "not available interface: %s"
972
- msgstr "利用可能なインターフェイスではありません: %s"
973
-
974
- msgid "can't find HTML template: %s"
975
- msgstr "HTML のテンプレートが見つかりません: %s"
976
-
977
- msgid "can't find theme RD template: %s"
978
- msgstr "テーマ RD のテンプレートが見つかりません: %s"
979
-
980
- msgid "invalid motion: %s"
981
- msgstr "不正な動きです: %s"
982
-
983
- msgid "invalid value of size property \"%{prop_name}\" of image \"%{filename}\": %{value}"
984
- msgstr "画像\"%{filename}のサイズプロパティ%{prop_name}の値が不正です: %{value}"
985
-
986
- msgid "unknown cursor type: %s"
987
- msgstr "未知のカーソルタイプ: %s"
988
-
989
- msgid "print isn't supported"
990
- msgstr "印刷をサポートしていません"
991
-
992
983
  msgid "No README found"
993
984
  msgstr "READMEがありません"
994
985
 
@@ -45,6 +45,7 @@ Gem::Specification.new do |spec|
45
45
 
46
46
  spec.required_ruby_version = ">= 1.9.3"
47
47
 
48
+ spec.add_runtime_dependency("gio2")
48
49
  spec.add_runtime_dependency("gtk2")
49
50
  spec.add_runtime_dependency("rsvg2")
50
51
  spec.add_runtime_dependency("poppler")
@@ -58,6 +59,7 @@ Gem::Specification.new do |spec|
58
59
  spec.add_runtime_dependency("faraday")
59
60
  # spec.add_runtime_dependency("gstreamer")
60
61
 
62
+ spec.add_development_dependency("gtk3")
61
63
  spec.add_development_dependency("test-unit")
62
64
  spec.add_development_dependency("test-unit-notify")
63
65
  spec.add_development_dependency("test-unit-rr")
@@ -20,7 +20,7 @@ A presentation tool
20
20
  * Env.: PC-UNIX/Win/Mac
21
21
  * Format:
22
22
  RD/Wiki/Markdown/PDF
23
- * View: Ruby
23
+ * View: Ruby {::note}(separated with format){:/note}
24
24
 
25
25
  # Features: Display (1)
26
26
 
@@ -161,7 +161,7 @@ Download an image from a URL
161
161
 
162
162
  # Math. expressions
163
163
 
164
- * TeX format
164
+ * TeX {::note}(like){:/note} format
165
165
  * Backends
166
166
  * LaTeX
167
167
 
@@ -20,7 +20,7 @@ theme
20
20
  * 動作: PC-UNIX/Win/Mac
21
21
  * 書式:
22
22
  Wiki/RD/Markdown/PDF
23
- * 見た目: Ruby
23
+ * 見た目: Ruby{::note}(ソースと分離){:/note}
24
24
 
25
25
  # 機能: 表示(1)
26
26
 
@@ -162,7 +162,7 @@ URL先の画像をダウンロード
162
162
 
163
163
  # 数式
164
164
 
165
- * 書式: TeX
165
+ * 書式: TeX{::note}(っぽい){:/note}
166
166
  * バックエンド
167
167
  * LaTeX
168
168
 
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2015 Kouhei Sutou <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
@@ -17,7 +17,7 @@
17
17
  require "rabbit/image/dia"
18
18
 
19
19
  class TestImageDia < Test::Unit::TestCase
20
- include RabbitTestUtils
20
+ include RabbitTestUtils::Fixture
21
21
 
22
22
  private
23
23
  def fixture_path(base_name)
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2012 Kouhei Sutou <kou@cozmixng.org>
1
+ # Copyright (C) 2012-2015 Kouhei Sutou <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
@@ -17,7 +17,7 @@
17
17
  require "rabbit/image/eps"
18
18
 
19
19
  class TestImageEPS < Test::Unit::TestCase
20
- include RabbitTestUtils
20
+ include RabbitTestUtils::Fixture
21
21
 
22
22
  private
23
23
  def fixture_path(base_name)
@@ -22,33 +22,12 @@ require "rabbit/source/memory"
22
22
  require "rabbit/parser/markdown"
23
23
 
24
24
  class RabbitParserMarkdownTest < Test::Unit::TestCase
25
+ include RabbitTestUtils::Fixture
26
+ include RabbitTestUtils::Parser
27
+
25
28
  private
26
29
  def parse(markdown)
27
- canvas = []
28
- def canvas.logger
29
- Rabbit::Logger.default
30
- end
31
- source = Rabbit::Source::Memory.new("UTF-8", nil)
32
- source.source = markdown
33
- parser = Rabbit::Parser::Markdown.new(canvas, source)
34
- parser.parse
35
- canvas
36
- end
37
-
38
- def inspect_canvas(canvas)
39
- canvas.collect do |page|
40
- inspect_element(page)
41
- end
42
- end
43
-
44
- def inspect_element(element)
45
- name = element.class.name.split(/::/).last
46
- if element.respond_to?(:elements)
47
- children = element.elements.collect {|child| inspect_element(child)}
48
- else
49
- children = [element.text]
50
- end
51
- [name, *children]
30
+ super(Rabbit::Parser::Markdown, markdown)
52
31
  end
53
32
 
54
33
  class TitlePageTest < self
@@ -266,5 +245,72 @@ class RabbitParserMarkdownTest < Test::Unit::TestCase
266
245
  MARKDOWN
267
246
  end
268
247
  end
248
+
249
+ class ListTest < self
250
+ class UnorderedListTest < self
251
+ class NesetedTest < self
252
+ def test_no_new_line_after_first_line
253
+ assert_equal([
254
+ "Body", [
255
+ "ItemList", [
256
+ "ItemListItem", [
257
+ "Paragraph", ["Text", "First"],
258
+ ], [
259
+ "ItemList", [
260
+ "ItemListItem", [
261
+ "Paragraph", ["Text", "Second"],
262
+ ],
263
+ ],
264
+ ],
265
+ ],
266
+ ],
267
+ ],
268
+ parse(<<-MARKDOWN))
269
+ * First
270
+ * Second
271
+ MARKDOWN
272
+ end
273
+
274
+ def test_have_new_line_after_first_line
275
+ assert_equal([
276
+ "Body", [
277
+ "ItemList", [
278
+ "ItemListItem", [
279
+ "Paragraph", ["Text", "First"],
280
+ ], [
281
+ "ItemList", [
282
+ "ItemListItem", [
283
+ "Paragraph", ["Text", "Second"],
284
+ ],
285
+ ],
286
+ ],
287
+ ],
288
+ ],
289
+ ],
290
+ parse(<<-MARKDOWN))
291
+ * First
292
+
293
+ * Second
294
+ MARKDOWN
295
+ end
296
+ end
297
+ end
298
+ end
299
+
300
+ class ImageTest < self
301
+ class InlineTest < self
302
+ include Rabbit::GetText
303
+
304
+ def test_unsupported
305
+ image_path = fixture_path("image/png/lavie.png")
306
+ message = _("multiple ![alt]{image} in a paragraph isn't supported.")
307
+ assert_raise(Rabbit::ParseError.new(message)) do
308
+ parse(<<-MARKDOWN)
309
+ a ![](#{image_path})
310
+ MARKDOWN
311
+ end
312
+ end
313
+ end
314
+ end
269
315
  end
270
316
  end
@@ -0,0 +1,73 @@
1
+ # Copyright (C) 2015 Kouhei Sutou <kou@cozmixng.org>
2
+ #
3
+ # This program is free software; you can redistribute it and/or modify
4
+ # it under the terms of the GNU General Public License as published by
5
+ # the Free Software Foundation; either version 2 of the License, or
6
+ # (at your option) any later version.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License along
14
+ # with this program; if not, write to the Free Software Foundation, Inc.,
15
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16
+
17
+ require "rabbit-test-utils"
18
+
19
+ require "rabbit/logger"
20
+ require "rabbit/slide"
21
+ require "rabbit/source/memory"
22
+ require "rabbit/parser/wiki"
23
+
24
+ class RabbitParserWikiTest < Test::Unit::TestCase
25
+ include RabbitTestUtils::Fixture
26
+ include RabbitTestUtils::Parser
27
+
28
+ private
29
+ def parse(wiki_text)
30
+ super(Rabbit::Parser::Wiki, wiki_text)
31
+ end
32
+
33
+ class ImageTest < self
34
+ include Rabbit::GetText
35
+
36
+ class InlineTest < self
37
+ test "unsupported" do
38
+ image_path = fixture_path("image/png/lavie.png")
39
+ wiki_text = <<-WIKI
40
+ ! Title
41
+
42
+ ! Slide
43
+
44
+ a {{image(#{image_path.dump})}}
45
+ WIKI
46
+ message = _("inline {{image(...)}} isn't supported.")
47
+ assert_raise(Rabbit::ParseError.new(message)) do
48
+ parse(wiki_text)
49
+ end
50
+ end
51
+ end
52
+
53
+ class BlockTest < self
54
+ test ":align => :right: twice" do
55
+ image_path = fixture_path("image/png/lavie.png")
56
+ wiki_text = <<-WIKI
57
+ ! Title
58
+
59
+ ! Slide
60
+
61
+ {{image(#{image_path.dump}, {:align => :right})}}
62
+
63
+ {{image(#{image_path.dump}, :align => :right)}}
64
+ WIKI
65
+
66
+ message = _("multiple {{image(..., :align => :right)}} isn't supported.")
67
+ assert_raise(Rabbit::ParseError.new(message)) do
68
+ parse(wiki_text)
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end