rabbit 2.1.6 → 2.1.7

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