rabbit 3.0.5 → 4.0.0
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.
- checksums.yaml +4 -4
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +2 -2
- data/doc/en/news.rd +54 -0
- data/doc/ja/news.rd +54 -0
- data/lib/rabbit/actions.rb +446 -0
- data/lib/rabbit/author-configuration.rb +7 -10
- data/lib/rabbit/canvas.rb +74 -42
- data/lib/rabbit/command/rabbit-slide.rb +11 -13
- data/lib/rabbit/command/rabbit-theme.rb +10 -12
- data/lib/rabbit/command/rabbit.rb +31 -43
- data/lib/rabbit/console.rb +20 -22
- data/lib/rabbit/dependency-canvas.rb +2 -2
- data/lib/rabbit/element/base.rb +93 -6
- data/lib/rabbit/element/block-element.rb +17 -1
- data/lib/rabbit/element/block.rb +17 -1
- data/lib/rabbit/element/container-element.rb +59 -3
- data/lib/rabbit/element/description-list.rb +18 -2
- data/lib/rabbit/element/enum-list.rb +18 -2
- data/lib/rabbit/element/footnote.rb +18 -2
- data/lib/rabbit/element/image-title-slide.rb +17 -1
- data/lib/rabbit/element/image.rb +32 -2
- data/lib/rabbit/element/index-slide.rb +29 -13
- data/lib/rabbit/element/item-list.rb +18 -2
- data/lib/rabbit/element/method-list.rb +18 -2
- data/lib/rabbit/element/poppler-page.rb +17 -1
- data/lib/rabbit/element/poppler-slide.rb +18 -2
- data/lib/rabbit/element/poppler-title-slide.rb +18 -2
- data/lib/rabbit/element/preformatted.rb +18 -2
- data/lib/rabbit/element/slide-element.rb +29 -2
- data/lib/rabbit/element/slide.rb +18 -2
- data/lib/rabbit/element/syntax-highlighting.rb +17 -1
- data/lib/rabbit/element/table.rb +19 -3
- data/lib/rabbit/element/tag.rb +18 -2
- data/lib/rabbit/element/text-block-element.rb +18 -2
- data/lib/rabbit/element/text-container-element.rb +41 -2
- data/lib/rabbit/element/text-element.rb +17 -1
- data/lib/rabbit/element/text-renderer.rb +17 -1
- data/lib/rabbit/element/text.rb +4 -4
- data/lib/rabbit/element/title-slide.rb +19 -3
- data/lib/rabbit/element/video.rb +157 -56
- data/lib/rabbit/element.rb +20 -20
- data/lib/rabbit/formatter.rb +18 -1
- data/lib/rabbit/frame.rb +102 -90
- data/lib/rabbit/front.rb +11 -4
- data/lib/rabbit/gem-finder.rb +4 -8
- data/lib/rabbit/gem-pusher.rb +4 -4
- data/lib/rabbit/gesture/handler.rb +26 -21
- data/lib/rabbit/graffiti/config-dialog.rb +18 -2
- data/lib/rabbit/graffiti/processor.rb +20 -4
- data/lib/rabbit/gtk.rb +48 -14
- data/lib/rabbit/html/generator.rb +18 -18
- data/{test/helper/fixture.rb → lib/rabbit/icon.rb} +16 -6
- data/lib/rabbit/image/base.rb +7 -6
- data/lib/rabbit/image/default.rb +17 -1
- data/lib/rabbit/image/dia.rb +2 -2
- data/lib/rabbit/image/eps.rb +16 -2
- data/lib/rabbit/image/gimp.rb +28 -11
- data/lib/rabbit/image/mermaid.rb +3 -3
- data/lib/rabbit/image/pdf.rb +3 -3
- data/lib/rabbit/image/svg.rb +2 -2
- data/lib/rabbit/image.rb +8 -8
- data/lib/rabbit/info-window.rb +55 -18
- data/lib/rabbit/key-handler.rb +381 -0
- data/lib/rabbit/keys.rb +31 -2
- data/lib/rabbit/logger/base.rb +17 -1
- data/lib/rabbit/logger/gui.rb +20 -4
- data/lib/rabbit/logger/stderr.rb +16 -2
- data/lib/rabbit/logger.rb +4 -4
- data/lib/rabbit/menu.rb +200 -220
- data/lib/rabbit/parser/base.rb +17 -1
- data/lib/rabbit/parser/ext/aafigure.rb +17 -1
- data/lib/rabbit/parser/ext/blockdiag.rb +17 -1
- data/lib/rabbit/parser/ext/charty.rb +2 -2
- data/lib/rabbit/parser/ext/coderay.rb +20 -4
- data/lib/rabbit/parser/ext/enscript.rb +31 -15
- data/lib/rabbit/parser/ext/entity.rb +17 -1
- data/lib/rabbit/parser/ext/image.rb +6 -6
- data/lib/rabbit/parser/ext/inline.rb +17 -1
- data/lib/rabbit/parser/ext/rouge.rb +7 -4
- data/lib/rabbit/parser/ext/tex.rb +18 -2
- data/lib/rabbit/parser/ext/video.rb +4 -4
- data/lib/rabbit/parser/image.rb +20 -4
- data/lib/rabbit/parser/markdown/converter.rb +12 -13
- data/lib/rabbit/parser/markdown.rb +18 -2
- data/lib/rabbit/parser/pause-support.rb +1 -0
- data/lib/rabbit/parser/pdf.rb +3 -3
- data/lib/rabbit/parser/rd/ext/base.rb +20 -4
- data/lib/rabbit/parser/rd/ext/block-verbatim.rb +24 -28
- data/lib/rabbit/parser/rd/ext/character-reference.rb +18 -2
- data/lib/rabbit/parser/rd/ext/image.rb +3 -3
- data/lib/rabbit/parser/rd/ext/inline-verbatim.rb +6 -6
- data/lib/rabbit/parser/rd/ext/refer.rb +18 -2
- data/lib/rabbit/parser/rd/ext/video.rb +19 -2
- data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +24 -8
- data/lib/rabbit/parser/rd/rt/rt2rabbit-lib.rb +18 -2
- data/lib/rabbit/parser/rd/visitor.rb +18 -2
- data/lib/rabbit/parser/rd.rb +18 -2
- data/lib/rabbit/parser/wiki/output.rb +25 -28
- data/lib/rabbit/parser/wiki.rb +18 -2
- data/lib/rabbit/parser.rb +6 -6
- data/lib/rabbit/path-manipulatable.rb +4 -4
- data/lib/rabbit/progress.rb +17 -1
- data/lib/rabbit/properties.rb +3 -3
- data/lib/rabbit/rabbit.rb +15 -7
- data/lib/rabbit/readme-parser.rb +4 -6
- data/lib/rabbit/renderer/base.rb +44 -36
- data/lib/rabbit/renderer/color.rb +18 -2
- data/lib/rabbit/renderer/display/base.rb +10 -12
- data/lib/rabbit/renderer/display/button-handler.rb +141 -60
- data/lib/rabbit/renderer/display/cursor.rb +4 -5
- data/lib/rabbit/renderer/display/drawing-area-base.rb +32 -48
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +10 -61
- data/lib/rabbit/renderer/display/drawing-area-view-only.rb +19 -8
- data/lib/rabbit/renderer/display/drawing-area.rb +19 -15
- data/lib/rabbit/renderer/display/gesture.rb +9 -9
- data/lib/rabbit/renderer/display/graffiti.rb +22 -13
- data/lib/rabbit/renderer/display/info.rb +22 -2
- data/lib/rabbit/renderer/display/magnifier.rb +30 -17
- data/lib/rabbit/renderer/display/mask.rb +17 -1
- data/lib/rabbit/renderer/display/menu.rb +27 -3
- data/lib/rabbit/renderer/display/motion-handler.rb +45 -0
- data/lib/rabbit/renderer/display/progress.rb +17 -2
- data/lib/rabbit/renderer/display/scroll-handler.rb +60 -13
- data/lib/rabbit/renderer/display/search.rb +19 -2
- data/lib/rabbit/renderer/display/spotlight.rb +39 -25
- data/lib/rabbit/renderer/display.rb +16 -36
- data/lib/rabbit/renderer/engine/cairo.rb +4 -11
- data/lib/rabbit/renderer/engine.rb +17 -1
- data/lib/rabbit/renderer/kernel.rb +2 -20
- data/lib/rabbit/renderer/offscreen.rb +8 -14
- data/lib/rabbit/renderer/print-layout.rb +2 -2
- data/lib/rabbit/renderer/printer.rb +9 -16
- data/lib/rabbit/renderer/scene-background-widget.rb +95 -0
- data/lib/rabbit/renderer/scene-node-widget.rb +63 -0
- data/lib/rabbit/renderer/scene.rb +508 -0
- data/lib/rabbit/renderer.rb +6 -6
- data/lib/rabbit/search-window.rb +18 -2
- data/lib/rabbit/searcher.rb +15 -1
- data/lib/rabbit/size.rb +9 -1
- data/lib/rabbit/slide-configuration.rb +11 -14
- data/lib/rabbit/soap/driver.rb +20 -4
- data/lib/rabbit/soap/server.rb +17 -1
- data/lib/rabbit/source/argf.rb +5 -5
- data/lib/rabbit/source/base.rb +5 -6
- data/lib/rabbit/source/file.rb +5 -5
- data/lib/rabbit/source/memory.rb +20 -4
- data/lib/rabbit/source/uri.rb +9 -11
- data/lib/rabbit/source-generator/hiki.rb +2 -7
- data/lib/rabbit/source-generator/markdown.rb +2 -7
- data/lib/rabbit/source-generator/rd.rb +2 -7
- data/lib/rabbit/source-generator.rb +4 -4
- data/lib/rabbit/source.rb +5 -5
- data/lib/rabbit/task/slide.rb +13 -11
- data/lib/rabbit/task/theme.rb +8 -11
- data/lib/rabbit/task.rb +3 -3
- data/lib/rabbit/theme/applier.rb +27 -11
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +1 -1
- data/lib/rabbit/theme/color-circle/color-circle.rb +18 -1
- data/lib/rabbit/theme/cozmixng/cozmixng.rb +1 -1
- data/lib/rabbit/theme/default/default.rb +1 -0
- data/lib/rabbit/theme/default-icon/default-icon.rb +1 -1
- data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +17 -1
- data/lib/rabbit/theme/default-preformatted/default-preformatted.rb +9 -1
- data/lib/rabbit/theme/enishi-green/enishi-green.rb +1 -1
- data/lib/rabbit/theme/entry.rb +10 -12
- data/lib/rabbit/theme/icon/icon.rb +3 -8
- data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +5 -5
- data/lib/rabbit/theme/image-timer/image-timer.rb +3 -3
- data/lib/rabbit/theme/lightning-simple/lightning-simple.rb +1 -0
- data/lib/rabbit/theme/lightning-talk/lightning-talk.rb +1 -0
- data/lib/rabbit/theme/manager.rb +19 -9
- data/lib/rabbit/theme/rabbit-icon/rabbit-icon.rb +1 -1
- data/lib/rabbit/theme/ranguba/ranguba.rb +1 -1
- data/lib/rabbit/theme/red-frame/red-frame.rb +6 -2
- data/lib/rabbit/theme/ruby-gnome2/ruby-gnome2.rb +1 -0
- data/lib/rabbit/theme/ruby-gnome2-icon/ruby-gnome2-icon.rb +1 -1
- data/lib/rabbit/theme/searcher.rb +23 -7
- data/lib/rabbit/theme/slide-number/slide-number.rb +1 -1
- data/lib/rabbit/theme/slide-show/slide-show.rb +1 -1
- data/lib/rabbit/theme/table/table.rb +2 -2
- data/lib/rabbit/theme/video/property.rb +3 -0
- data/lib/rabbit/theme/video/video.rb +5 -0
- data/lib/rabbit/theme-configuration.rb +9 -11
- data/lib/rabbit/utils.rb +12 -94
- data/lib/rabbit/version.rb +1 -1
- data/lib/rabbit/xmlrpc/client.rb +17 -1
- data/lib/rabbit/xmlrpc/server.rb +17 -1
- data/po/en/rabbit.edit.po +324 -316
- data/po/en/rabbit.po +61 -55
- data/po/fr/rabbit.edit.po +324 -316
- data/po/fr/rabbit.po +61 -55
- data/po/ja/rabbit.edit.po +345 -370
- data/po/ja/rabbit.po +83 -80
- data/rabbit.gemspec +4 -2
- data/sample/block-quote.rab +13 -0
- data/sample/description-list.rab +17 -0
- data/sample/mermaid.rab +16 -0
- data/sample/rabbit-en.hiki +0 -1
- data/sample/rabbit-en.md +0 -1
- data/sample/rabbit-en.rd +0 -1
- data/sample/rabbit.hiki +0 -1
- data/sample/rabbit.md +0 -1
- data/sample/rabbit.rd +0 -1
- data/sample/video.rab +17 -0
- metadata +33 -65
- data/lib/rabbit/action/basic.rb +0 -304
- data/lib/rabbit/action/radio.rb +0 -78
- data/lib/rabbit/action/toggle.rb +0 -82
- data/lib/rabbit/action.rb +0 -140
- data/lib/rabbit/renderer/display/gl.rb +0 -98
- data/lib/rabbit/renderer/display/key-handler.rb +0 -321
- data/lib/rabbit/renderer/gl.rb +0 -95
- data/lib/rabbit/renderer/screen.rb +0 -286
- data/lib/rabbit/renderer/widget/drawing-area.rb +0 -93
- data/lib/rabbit/stock.rb +0 -31
- data/lib/rabbit/trackball.rb +0 -228
- data/lib/rabbit/video-window.rb +0 -123
- data/test/command/test-rabbit.rb +0 -101
- data/test/helper/parser.rb +0 -48
- data/test/helper.rb +0 -24
- data/test/image/test-dia.rb +0 -54
- data/test/image/test-eps.rb +0 -41
- data/test/parser/test-markdown.rb +0 -360
- data/test/parser/test-rd.rb +0 -43
- data/test/parser/test-wiki.rb +0 -71
- data/test/run-test.rb +0 -27
- data/test/source-generator/test-hiki.rb +0 -68
- data/test/source-generator/test-markdown.rb +0 -67
- data/test/source-generator/test-rd.rb +0 -69
- data/test/test-applier.rb +0 -73
- data/test/test-author-configuration.rb +0 -37
- data/test/test-canvas.rb +0 -70
- data/test/test-color.rb +0 -51
- data/test/test-element.rb +0 -103
- data/test/test-readme-parser.rb +0 -160
- data/test/test-size.rb +0 -155
- data/test/test-slide-configuration.rb +0 -74
- data/test/test-source.rb +0 -122
- data/test/test-theme-configuration.rb +0 -47
- data/test/test-utils.rb +0 -64
data/test/image/test-eps.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# Copyright (C) 2012-2019 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/image/eps"
|
18
|
-
|
19
|
-
class TestImageEPS < Test::Unit::TestCase
|
20
|
-
include Helper::Fixture
|
21
|
-
|
22
|
-
private
|
23
|
-
def fixture_path(base_name)
|
24
|
-
super("image", "eps", base_name)
|
25
|
-
end
|
26
|
-
|
27
|
-
class TestMatch < self
|
28
|
-
private
|
29
|
-
def match?(base_name)
|
30
|
-
Rabbit::ImageManipulable::EPS.match?(fixture_path(base_name))
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_have_extension
|
34
|
-
assert_true(match?("rabbit.eps"))
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_no_extension
|
38
|
-
assert_true(match?("rabbit"))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
@@ -1,360 +0,0 @@
|
|
1
|
-
# Copyright (C) 2014-2024 Sutou Kouhei <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/logger"
|
18
|
-
require "rabbit/slide"
|
19
|
-
require "rabbit/source/memory"
|
20
|
-
require "rabbit/parser/markdown"
|
21
|
-
|
22
|
-
class RabbitParserMarkdownTest < Test::Unit::TestCase
|
23
|
-
include Helper::Fixture
|
24
|
-
include Helper::Parser
|
25
|
-
|
26
|
-
private
|
27
|
-
def parse(markdown)
|
28
|
-
super(Rabbit::Parser::Markdown, markdown)
|
29
|
-
end
|
30
|
-
|
31
|
-
class TitlePageTest < self
|
32
|
-
def parse(markdown)
|
33
|
-
inspect_canvas(super(markdown))
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_title
|
37
|
-
assert_equal([
|
38
|
-
[
|
39
|
-
"TitleSlide", [
|
40
|
-
"Title", [
|
41
|
-
"Text",
|
42
|
-
"Title",
|
43
|
-
],
|
44
|
-
],
|
45
|
-
],
|
46
|
-
],
|
47
|
-
parse(+"# Title"))
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class BodyTest < self
|
52
|
-
def parse(markdown)
|
53
|
-
full_markdown = <<-MARKDOWN
|
54
|
-
\# Title
|
55
|
-
|
56
|
-
\# Page
|
57
|
-
|
58
|
-
#{markdown}
|
59
|
-
MARKDOWN
|
60
|
-
inspect_element(super(full_markdown)[1].body)
|
61
|
-
end
|
62
|
-
|
63
|
-
class TextEscapeTest < self
|
64
|
-
def test_html_tag
|
65
|
-
assert_equal([
|
66
|
-
"Body", [
|
67
|
-
"Paragraph", [
|
68
|
-
"Code", [
|
69
|
-
"Text",
|
70
|
-
"<pre>",
|
71
|
-
],
|
72
|
-
],
|
73
|
-
],
|
74
|
-
],
|
75
|
-
parse("`<pre>`"))
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
class WaitTest < self
|
80
|
-
def test_in_list_item
|
81
|
-
assert_equal([
|
82
|
-
"Body", [
|
83
|
-
"ItemList", [
|
84
|
-
"ItemListItem", [
|
85
|
-
"Paragraph",
|
86
|
-
["Text", "Hello"],
|
87
|
-
["WaitTag", ""],
|
88
|
-
["Text", " World"],
|
89
|
-
],
|
90
|
-
],
|
91
|
-
],
|
92
|
-
],
|
93
|
-
parse("* Hello{::wait/} World"))
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
class DeletedTextTest < self
|
98
|
-
def test_simple
|
99
|
-
assert_equal([
|
100
|
-
"Body", [
|
101
|
-
"Paragraph",
|
102
|
-
["Text", "Hello "],
|
103
|
-
["DeletedText", ["Text", "deleted"]],
|
104
|
-
["Text", " World"],
|
105
|
-
],
|
106
|
-
],
|
107
|
-
parse("Hello ~~deleted~~ World"))
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_start_only
|
111
|
-
assert_equal([
|
112
|
-
"Body", [
|
113
|
-
"Paragraph",
|
114
|
-
["Text", "Hello ~~ World"],
|
115
|
-
],
|
116
|
-
],
|
117
|
-
parse("Hello ~~ World"))
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_escaple
|
121
|
-
assert_equal([
|
122
|
-
"Body", [
|
123
|
-
"Paragraph",
|
124
|
-
["Text", "Hello ~~not deleted~~ World"],
|
125
|
-
],
|
126
|
-
],
|
127
|
-
parse("Hello \\~\\~not deleted\\~\\~ World"))
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
class SyntaxHighlightTest < self
|
132
|
-
def test_indent_lang
|
133
|
-
assert_equal([
|
134
|
-
"Body", [
|
135
|
-
"SyntaxHighlightingBlock", [
|
136
|
-
"TextContainer",
|
137
|
-
[
|
138
|
-
"CustomTag", [
|
139
|
-
"SyntaxHighlightingText",
|
140
|
-
["Text", "\"Hello World\""],
|
141
|
-
],
|
142
|
-
],
|
143
|
-
],
|
144
|
-
],
|
145
|
-
],
|
146
|
-
parse(<<-MARKDOWN))
|
147
|
-
"Hello World"
|
148
|
-
{: lang="ruby"}
|
149
|
-
MARKDOWN
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_indent_language
|
153
|
-
assert_equal([
|
154
|
-
"Body", [
|
155
|
-
"SyntaxHighlightingBlock", [
|
156
|
-
"TextContainer",
|
157
|
-
[
|
158
|
-
"CustomTag", [
|
159
|
-
"SyntaxHighlightingText",
|
160
|
-
["Text", "\"Hello World\""],
|
161
|
-
],
|
162
|
-
],
|
163
|
-
],
|
164
|
-
],
|
165
|
-
],
|
166
|
-
parse(<<-MARKDOWN))
|
167
|
-
"Hello World"
|
168
|
-
{: language="ruby"}
|
169
|
-
MARKDOWN
|
170
|
-
end
|
171
|
-
|
172
|
-
def test_fence_kramdown
|
173
|
-
assert_equal([
|
174
|
-
"Body", [
|
175
|
-
"SyntaxHighlightingBlock", [
|
176
|
-
"TextContainer",
|
177
|
-
[
|
178
|
-
"CustomTag", [
|
179
|
-
"SyntaxHighlightingText",
|
180
|
-
["Text", "\"Hello World\""],
|
181
|
-
],
|
182
|
-
],
|
183
|
-
],
|
184
|
-
],
|
185
|
-
],
|
186
|
-
parse(<<-MARKDOWN))
|
187
|
-
~~~ruby
|
188
|
-
"Hello World"
|
189
|
-
~~~
|
190
|
-
MARKDOWN
|
191
|
-
end
|
192
|
-
|
193
|
-
def test_fence_gfm
|
194
|
-
assert_equal([
|
195
|
-
"Body", [
|
196
|
-
"SyntaxHighlightingBlock", [
|
197
|
-
"TextContainer",
|
198
|
-
[
|
199
|
-
"CustomTag", [
|
200
|
-
"SyntaxHighlightingText",
|
201
|
-
["Text", "\"Hello World\""],
|
202
|
-
],
|
203
|
-
],
|
204
|
-
],
|
205
|
-
],
|
206
|
-
],
|
207
|
-
parse(<<-MARKDOWN))
|
208
|
-
```ruby
|
209
|
-
"Hello World"
|
210
|
-
```
|
211
|
-
MARKDOWN
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
class BlockDiagTest < self
|
216
|
-
def test_codeblock_fence
|
217
|
-
assert_equal([
|
218
|
-
"Body", [
|
219
|
-
"Image",
|
220
|
-
""
|
221
|
-
],
|
222
|
-
],
|
223
|
-
parse(<<-MARKDOWN))
|
224
|
-
```blockdiag
|
225
|
-
{
|
226
|
-
A -> B -> C;
|
227
|
-
}
|
228
|
-
```
|
229
|
-
MARKDOWN
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
class ListTest < self
|
234
|
-
class UnorderedListTest < self
|
235
|
-
class NesetedTest < self
|
236
|
-
def test_no_new_line_after_first_line
|
237
|
-
assert_equal([
|
238
|
-
"Body", [
|
239
|
-
"ItemList", [
|
240
|
-
"ItemListItem", [
|
241
|
-
"Paragraph", ["Text", "First"],
|
242
|
-
], [
|
243
|
-
"ItemList", [
|
244
|
-
"ItemListItem", [
|
245
|
-
"Paragraph", ["Text", "Second"],
|
246
|
-
],
|
247
|
-
],
|
248
|
-
],
|
249
|
-
],
|
250
|
-
],
|
251
|
-
],
|
252
|
-
parse(<<-MARKDOWN))
|
253
|
-
* First
|
254
|
-
* Second
|
255
|
-
MARKDOWN
|
256
|
-
end
|
257
|
-
|
258
|
-
def test_have_new_line_after_first_line
|
259
|
-
assert_equal([
|
260
|
-
"Body", [
|
261
|
-
"ItemList", [
|
262
|
-
"ItemListItem", [
|
263
|
-
"Paragraph", ["Text", "First"],
|
264
|
-
], [
|
265
|
-
"ItemList", [
|
266
|
-
"ItemListItem", [
|
267
|
-
"Paragraph", ["Text", "Second"],
|
268
|
-
],
|
269
|
-
],
|
270
|
-
],
|
271
|
-
],
|
272
|
-
],
|
273
|
-
],
|
274
|
-
parse(<<-MARKDOWN))
|
275
|
-
* First
|
276
|
-
|
277
|
-
* Second
|
278
|
-
MARKDOWN
|
279
|
-
end
|
280
|
-
end
|
281
|
-
end
|
282
|
-
end
|
283
|
-
|
284
|
-
class ImageTest < self
|
285
|
-
class InlineTest < self
|
286
|
-
include Rabbit::GetText
|
287
|
-
|
288
|
-
def test_unsupported
|
289
|
-
image_path = fixture_path("image/png/lavie.png")
|
290
|
-
format = _("![alt]{image} and other contents in a paragraph isn't supported: %{types}")
|
291
|
-
message = format % {types: [:text, :img]}
|
292
|
-
assert_raise(Rabbit::ParseError.new(message)) do
|
293
|
-
parse(<<-MARKDOWN)
|
294
|
-
a 
|
295
|
-
MARKDOWN
|
296
|
-
end
|
297
|
-
end
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
301
|
-
class HorizontalRuleTest < self
|
302
|
-
include Rabbit::GetText
|
303
|
-
|
304
|
-
def test_unsupported
|
305
|
-
message = _("horizontal rule isn't supported.")
|
306
|
-
assert_raise(Rabbit::ParseError.new(message)) do
|
307
|
-
parse(<<-MARKDOWN)
|
308
|
-
---
|
309
|
-
MARKDOWN
|
310
|
-
end
|
311
|
-
end
|
312
|
-
end
|
313
|
-
|
314
|
-
class TagTest < self
|
315
|
-
include Rabbit::GetText
|
316
|
-
|
317
|
-
def test_no_name
|
318
|
-
message = _("tag name is missing.")
|
319
|
-
assert_raise(Rabbit::ParseError.new(message)) do
|
320
|
-
parse(<<-MARKDOWN)
|
321
|
-
{::tag}content{:/tag}
|
322
|
-
MARKDOWN
|
323
|
-
end
|
324
|
-
end
|
325
|
-
|
326
|
-
def test_inline
|
327
|
-
assert_equal([
|
328
|
-
"Body", [
|
329
|
-
"Paragraph", [
|
330
|
-
"CustomTag", [
|
331
|
-
"Text",
|
332
|
-
"Hello",
|
333
|
-
],
|
334
|
-
],
|
335
|
-
],
|
336
|
-
],
|
337
|
-
parse(<<-MARKDOWN))
|
338
|
-
{::tag name="x-large"}Hello{:/tag}
|
339
|
-
MARKDOWN
|
340
|
-
end
|
341
|
-
|
342
|
-
def test_paragraph
|
343
|
-
assert_equal([
|
344
|
-
"Body", [
|
345
|
-
"Paragraph", [
|
346
|
-
"CustomTag", [
|
347
|
-
"Text",
|
348
|
-
"Hello",
|
349
|
-
],
|
350
|
-
],
|
351
|
-
],
|
352
|
-
],
|
353
|
-
parse(<<-MARKDOWN))
|
354
|
-
{:.x-large}
|
355
|
-
Hello
|
356
|
-
MARKDOWN
|
357
|
-
end
|
358
|
-
end
|
359
|
-
end
|
360
|
-
end
|
data/test/parser/test-rd.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
# Copyright (C) 2014-2024 Sutou Kouhei <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/slide"
|
18
|
-
require "rabbit/source/memory"
|
19
|
-
require "rabbit/parser/rd"
|
20
|
-
|
21
|
-
class RabbitParserRDTest < Test::Unit::TestCase
|
22
|
-
class MatchTest < self
|
23
|
-
def match?(source)
|
24
|
-
Rabbit::Parser::RD.match?(source)
|
25
|
-
end
|
26
|
-
|
27
|
-
class ContentTest < self
|
28
|
-
def match?(content)
|
29
|
-
source = Rabbit::Source::Memory.new("UTF-8", nil)
|
30
|
-
source.source = content
|
31
|
-
super(source)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_with_space
|
35
|
-
assert_true(match?(+"= Hello"))
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_no_space
|
39
|
-
assert_true(match?(+"=Hello"))
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
data/test/parser/test-wiki.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# Copyright (C) 2015-2024 Sutou Kouhei <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/logger"
|
18
|
-
require "rabbit/slide"
|
19
|
-
require "rabbit/source/memory"
|
20
|
-
require "rabbit/parser/wiki"
|
21
|
-
|
22
|
-
class RabbitParserWikiTest < Test::Unit::TestCase
|
23
|
-
include Helper::Fixture
|
24
|
-
include Helper::Parser
|
25
|
-
|
26
|
-
private
|
27
|
-
def parse(wiki_text)
|
28
|
-
super(Rabbit::Parser::Wiki, wiki_text)
|
29
|
-
end
|
30
|
-
|
31
|
-
class ImageTest < self
|
32
|
-
include Rabbit::GetText
|
33
|
-
|
34
|
-
class InlineTest < self
|
35
|
-
test "unsupported" do
|
36
|
-
image_path = fixture_path("image/png/lavie.png")
|
37
|
-
wiki_text = +<<-WIKI
|
38
|
-
! Title
|
39
|
-
|
40
|
-
! Slide
|
41
|
-
|
42
|
-
a {{image(#{image_path.dump})}}
|
43
|
-
WIKI
|
44
|
-
message = _("inline {{image(...)}} isn't supported.")
|
45
|
-
assert_raise(Rabbit::ParseError.new(message)) do
|
46
|
-
parse(wiki_text)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class BlockTest < self
|
52
|
-
test ":align => :right: twice" do
|
53
|
-
image_path = fixture_path("image/png/lavie.png")
|
54
|
-
wiki_text = <<-WIKI
|
55
|
-
! Title
|
56
|
-
|
57
|
-
! Slide
|
58
|
-
|
59
|
-
{{image(#{image_path.dump}, {:align => :right})}}
|
60
|
-
|
61
|
-
{{image(#{image_path.dump}, :align => :right)}}
|
62
|
-
WIKI
|
63
|
-
|
64
|
-
message = _("multiple {{image(..., :align => :right)}} isn't supported.")
|
65
|
-
assert_raise(Rabbit::ParseError.new(message)) do
|
66
|
-
parse(wiki_text)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
data/test/run-test.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# Copyright (C) 2004-2019 Kouhei Sutou <kou@cozmixng.org>
|
4
|
-
#
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
8
|
-
# (at your option) any later version.
|
9
|
-
#
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
# GNU General Public License for more details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
18
|
-
|
19
|
-
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
20
|
-
test_dir = File.join(base_dir, "test")
|
21
|
-
|
22
|
-
$LOAD_PATH.unshift(File.join(base_dir, "lib"))
|
23
|
-
$LOAD_PATH.unshift(test_dir)
|
24
|
-
|
25
|
-
require_relative "helper"
|
26
|
-
|
27
|
-
exit(Test::Unit::AutoRunner.run(true, test_dir))
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# Copyright (C) 2012 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/source-generator/hiki"
|
18
|
-
|
19
|
-
class TestSourceGeneratorHiki < Test::Unit::TestCase
|
20
|
-
def setup
|
21
|
-
@generator = Rabbit::SourceGenerator::Hiki.new
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_heading1
|
25
|
-
assert_equal("! Hello",
|
26
|
-
@generator.heading(1, "Hello"))
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_heading2
|
30
|
-
assert_equal("!! Hello",
|
31
|
-
@generator.heading(2, "Hello"))
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_heading3
|
35
|
-
assert_equal("!!! Hello",
|
36
|
-
@generator.heading(3, "Hello"))
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_definition_list_item
|
40
|
-
item = @generator.definition_list_item("Rabbit",
|
41
|
-
"The presentation tool for Rubyist")
|
42
|
-
assert_equal(":Rabbit:The presentation tool for Rubyist",
|
43
|
-
item)
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_unordered_list_item
|
47
|
-
assert_equal("* Hello",
|
48
|
-
@generator.unordered_list_item("Hello"))
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_image
|
52
|
-
image = @generator.image("lavie.png", :relative_height => 90)
|
53
|
-
assert_equal(<<-EOR.rstrip, image)
|
54
|
-
{{image("lavie.png",
|
55
|
-
{
|
56
|
-
"relative_height" => 90,
|
57
|
-
})}}
|
58
|
-
EOR
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_preformatted_line
|
62
|
-
assert_equal(" Hello", @generator.preformatted_line("Hello"))
|
63
|
-
end
|
64
|
-
|
65
|
-
def test_comment
|
66
|
-
assert_equal("// Hello", @generator.comment("Hello"))
|
67
|
-
end
|
68
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# Copyright (C) 2012 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/source-generator/markdown"
|
18
|
-
|
19
|
-
class TestSourceGeneratorMarkdown < Test::Unit::TestCase
|
20
|
-
def setup
|
21
|
-
@generator = Rabbit::SourceGenerator::Markdown.new
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_heading1
|
25
|
-
assert_equal("# Hello",
|
26
|
-
@generator.heading(1, "Hello"))
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_heading2
|
30
|
-
assert_equal("## Hello",
|
31
|
-
@generator.heading(2, "Hello"))
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_heading3
|
35
|
-
assert_equal("### Hello",
|
36
|
-
@generator.heading(3, "Hello"))
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_definition_list_item
|
40
|
-
item = @generator.definition_list_item("Rabbit",
|
41
|
-
"The presentation tool for Rubyist")
|
42
|
-
assert_equal(<<-MARKDOWN, item)
|
43
|
-
Rabbit
|
44
|
-
: The presentation tool for Rubyist
|
45
|
-
MARKDOWN
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_unordered_list_item
|
49
|
-
assert_equal("* Hello",
|
50
|
-
@generator.unordered_list_item("Hello"))
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_image
|
54
|
-
image = @generator.image("lavie.png", :relative_height => 90)
|
55
|
-
assert_equal(<<-EOR.rstrip, image)
|
56
|
-
{:relative_height='90'}
|
57
|
-
EOR
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_preformatted_line
|
61
|
-
assert_equal(" Hello", @generator.preformatted_line("Hello"))
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_comment
|
65
|
-
assert_equal("", @generator.comment("Hello"))
|
66
|
-
end
|
67
|
-
end
|