rabbit 3.0.4 → 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/Gemfile +1 -0
- data/Rakefile +53 -7
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +2 -2
- data/doc/en/news.rd +69 -1
- data/doc/ja/news.rd +68 -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 +8 -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 +2 -2
- data/lib/rabbit/xmlrpc/client.rb +17 -1
- data/lib/rabbit/xmlrpc/server.rb +17 -1
- data/po/en/rabbit.edit.po +325 -317
- data/po/en/rabbit.po +61 -55
- data/po/fr/rabbit.edit.po +325 -317
- data/po/fr/rabbit.po +61 -55
- data/po/ja/rabbit.edit.po +346 -371
- 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
@@ -1,5 +1,21 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Copyright (C) 2007-2025 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_relative "../../utils"
|
18
|
+
require_relative "escape"
|
3
19
|
|
4
20
|
module Rabbit
|
5
21
|
module Parser
|
@@ -23,20 +39,20 @@ module Rabbit
|
|
23
39
|
end
|
24
40
|
|
25
41
|
module_function
|
26
|
-
def check_availability(lang
|
42
|
+
def check_availability(lang)
|
27
43
|
if @@enscript_highlight.has_key?(lang)
|
28
44
|
true
|
29
45
|
else
|
30
|
-
logger.warn(_("enscript: unsupported language: %s") % lang)
|
46
|
+
Rabbit.logger.warn(_("enscript: unsupported language: %s") % lang)
|
31
47
|
false
|
32
48
|
end
|
33
49
|
end
|
34
50
|
|
35
|
-
def highlight(lang, text
|
51
|
+
def highlight(lang, text)
|
36
52
|
begin
|
37
53
|
require 'nokogiri'
|
38
54
|
rescue
|
39
|
-
logger.warning("Syntax highlight by enscript requires nokogiri.")
|
55
|
+
Rabbit.logger.warning("Syntax highlight by enscript requires nokogiri.")
|
40
56
|
return nil
|
41
57
|
end
|
42
58
|
|
@@ -53,19 +69,19 @@ module Rabbit
|
|
53
69
|
]
|
54
70
|
if SystemRunner.run("enscript", *args)
|
55
71
|
html_file.open
|
56
|
-
html_to_rabbit(html_file.read
|
72
|
+
html_to_rabbit(html_file.read)
|
57
73
|
else
|
58
74
|
nil
|
59
75
|
end
|
60
76
|
end
|
61
77
|
|
62
|
-
def html_to_rabbit(html
|
78
|
+
def html_to_rabbit(html)
|
63
79
|
node = Nokogiri::HTML(extract_newline_around_pre(html))
|
64
80
|
pre = find_element(node, "pre")
|
65
81
|
address = find_element(node, "address")
|
66
|
-
element = node_to_rabbit(pre
|
82
|
+
element = node_to_rabbit(pre)
|
67
83
|
if element
|
68
|
-
logger.info(address.text) if address
|
84
|
+
Rabbit.logger.info(address.text) if address
|
69
85
|
PreformattedBlock.new(element)
|
70
86
|
else
|
71
87
|
nil
|
@@ -81,21 +97,21 @@ module Rabbit
|
|
81
97
|
node.css(name)[0]
|
82
98
|
end
|
83
99
|
|
84
|
-
def node_to_rabbit(node
|
85
|
-
element = element_to_rabbit(node
|
100
|
+
def node_to_rabbit(node)
|
101
|
+
element = element_to_rabbit(node)
|
86
102
|
return nil if element.nil?
|
87
103
|
node.children.each do |child|
|
88
104
|
if child.text?
|
89
105
|
element << Text.new(Escape.escape_meta_character(child.text))
|
90
106
|
else
|
91
|
-
child_element = node_to_rabbit(child
|
107
|
+
child_element = node_to_rabbit(child)
|
92
108
|
element << child_element unless child_element.nil?
|
93
109
|
end
|
94
110
|
end
|
95
111
|
element
|
96
112
|
end
|
97
113
|
|
98
|
-
def element_to_rabbit(element
|
114
|
+
def element_to_rabbit(element)
|
99
115
|
case element.name
|
100
116
|
when "pre"
|
101
117
|
PreformattedText.new
|
@@ -110,7 +126,7 @@ module Rabbit
|
|
110
126
|
text
|
111
127
|
else
|
112
128
|
format = _("enscript: unsupported element name: %s")
|
113
|
-
logger.warn(format % element.name)
|
129
|
+
Rabbit.logger.warn(format % element.name)
|
114
130
|
nil
|
115
131
|
end
|
116
132
|
end
|
@@ -1,4 +1,20 @@
|
|
1
|
-
|
1
|
+
# Copyright (C) 2004-2025 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_relative "../../element"
|
2
18
|
|
3
19
|
module Rabbit
|
4
20
|
module Parser
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2007-
|
1
|
+
# Copyright (C) 2007-2025 Sutou Kouhei <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
|
@@ -19,8 +19,8 @@ require "cgi"
|
|
19
19
|
require "open-uri"
|
20
20
|
require "fileutils"
|
21
21
|
|
22
|
-
|
23
|
-
|
22
|
+
require_relative "../../element"
|
23
|
+
require_relative "../../filename"
|
24
24
|
|
25
25
|
module Rabbit
|
26
26
|
module Parser
|
@@ -32,7 +32,7 @@ module Rabbit
|
|
32
32
|
begin
|
33
33
|
image = Element::Image.new(path, prop, canvas: canvas)
|
34
34
|
rescue Error
|
35
|
-
|
35
|
+
Rabbit.logger.warn($!.message)
|
36
36
|
nil
|
37
37
|
else
|
38
38
|
if prop["align"] == "right" and body
|
@@ -65,7 +65,7 @@ module Rabbit
|
|
65
65
|
begin
|
66
66
|
image_file, prop = yield(src_file)
|
67
67
|
rescue ImageLoadError
|
68
|
-
|
68
|
+
Rabbit.logger.warn($!.message)
|
69
69
|
end
|
70
70
|
return nil if image_file.nil?
|
71
71
|
image = make_image(canvas,
|
@@ -143,7 +143,7 @@ module Rabbit
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
rescue SocketError, OpenURI::HTTPError
|
146
|
-
|
146
|
+
Rabbit.logger.warn("#{$!.message}: #{uri}")
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
@@ -1,4 +1,20 @@
|
|
1
|
-
|
1
|
+
# Copyright (C) 2007-2025 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_relative "../../element"
|
2
18
|
|
3
19
|
module Rabbit
|
4
20
|
module Parser
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2017 Kouhei
|
1
|
+
# Copyright (C) 2017-2025 Sutou Kouhei <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
|
@@ -16,8 +16,8 @@
|
|
16
16
|
|
17
17
|
require "rouge"
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
require_relative "../../utils"
|
20
|
+
require_relative "escape"
|
21
21
|
|
22
22
|
module Rabbit
|
23
23
|
module Parser
|
@@ -26,10 +26,13 @@ module Rabbit
|
|
26
26
|
include GetText
|
27
27
|
|
28
28
|
module_function
|
29
|
-
def highlight(lang, text,
|
29
|
+
def highlight(lang, text, prop)
|
30
30
|
lexer = ::Rouge::Lexer.find(lang).new
|
31
31
|
formatter = RabbitFormatter.new
|
32
32
|
block = Element::SyntaxHighlightingBlock.new
|
33
|
+
prop.each do |key, value|
|
34
|
+
block.user_property[key] = value
|
35
|
+
end
|
33
36
|
text_container = Element::TextContainer.new
|
34
37
|
formatter.format(lexer.lex(text.strip)) do |element|
|
35
38
|
text_container << element
|
@@ -1,3 +1,19 @@
|
|
1
|
+
# Copyright (C) 2007-2025 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
|
+
|
1
17
|
module Rabbit
|
2
18
|
module Parser
|
3
19
|
module Ext
|
@@ -5,7 +21,7 @@ module Rabbit
|
|
5
21
|
include GetText
|
6
22
|
|
7
23
|
module_function
|
8
|
-
def make_image_by_LaTeX(path, prop
|
24
|
+
def make_image_by_LaTeX(path, prop)
|
9
25
|
image_file = Tempfile.new("rabbit-image")
|
10
26
|
latex_file = Tempfile.new("rabbit-image-latex")
|
11
27
|
dir = File.dirname(latex_file.path)
|
@@ -43,7 +59,7 @@ module Rabbit
|
|
43
59
|
end
|
44
60
|
end
|
45
61
|
|
46
|
-
def make_image_by_mimeTeX(path, prop
|
62
|
+
def make_image_by_mimeTeX(path, prop)
|
47
63
|
image_file = Tempfile.new("rabbit-image-mimetex")
|
48
64
|
args = ["-e", image_file.path, "-f", path]
|
49
65
|
commands = ["mimetex", "mimetex.cgi"]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (C) 2012 Narihiro Nakamura <authornari@gmail.com>
|
2
|
-
# Copyright (C) 2018 Kouhei
|
2
|
+
# Copyright (C) 2018-2025 Sutou Kouhei <kou@cozmixng.org>
|
3
3
|
#
|
4
4
|
# This program is free software; you can redistribute it and/or modify
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
@@ -15,8 +15,8 @@
|
|
15
15
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
16
16
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
require_relative "../../element"
|
19
|
+
require_relative "image"
|
20
20
|
|
21
21
|
module Rabbit
|
22
22
|
module Parser
|
@@ -27,7 +27,7 @@ module Rabbit
|
|
27
27
|
begin
|
28
28
|
Element::Video.new(path, prop)
|
29
29
|
rescue Error
|
30
|
-
|
30
|
+
Rabbit.logger.warn($!.message)
|
31
31
|
nil
|
32
32
|
end
|
33
33
|
end
|
data/lib/rabbit/parser/image.rb
CHANGED
@@ -1,8 +1,24 @@
|
|
1
|
-
|
1
|
+
# Copyright (C) 2007-2025 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.
|
2
16
|
|
3
|
-
|
4
|
-
|
5
|
-
|
17
|
+
require_relative "../utils"
|
18
|
+
|
19
|
+
require_relative "../image"
|
20
|
+
require_relative "../element"
|
21
|
+
require_relative "base"
|
6
22
|
|
7
23
|
module Rabbit
|
8
24
|
module Parser
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2012-
|
1
|
+
# Copyright (C) 2012-2025 Sutou Kouhei <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
|
@@ -16,14 +16,14 @@
|
|
16
16
|
|
17
17
|
require "English"
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
require_relative "../../gettext"
|
20
|
+
require_relative "../pause-support"
|
21
|
+
require_relative "../ext/blockdiag"
|
22
|
+
require_relative "../ext/escape"
|
23
|
+
require_relative "../ext/image"
|
24
|
+
require_relative "../ext/inline"
|
25
|
+
require_relative "../ext/rouge"
|
26
|
+
require_relative "../ext/tex"
|
27
27
|
|
28
28
|
module Rabbit
|
29
29
|
module Parser
|
@@ -332,7 +332,7 @@ module Rabbit
|
|
332
332
|
case language
|
333
333
|
when "blockdiag"
|
334
334
|
make_image_from_file(element, content) do |src_file, prop|
|
335
|
-
Ext::BlockDiag.make_image(src_file.path, prop
|
335
|
+
Ext::BlockDiag.make_image(src_file.path, prop)
|
336
336
|
end
|
337
337
|
when "mermaid"
|
338
338
|
make_image_from_file(element,
|
@@ -341,8 +341,7 @@ module Rabbit
|
|
341
341
|
src_file
|
342
342
|
end
|
343
343
|
else
|
344
|
-
|
345
|
-
Ext::Rouge.highlight(language, content, logger)
|
344
|
+
Ext::Rouge.highlight(language, content, element.attr)
|
346
345
|
end
|
347
346
|
end
|
348
347
|
|
@@ -385,7 +384,7 @@ module Rabbit
|
|
385
384
|
|
386
385
|
def convert_math(element)
|
387
386
|
make_image_from_file(element, element.value) do |src_file, prop|
|
388
|
-
Ext::TeX.make_image_by_LaTeX(src_file.path, prop
|
387
|
+
Ext::TeX.make_image_by_LaTeX(src_file.path, prop)
|
389
388
|
end
|
390
389
|
end
|
391
390
|
|
@@ -1,7 +1,23 @@
|
|
1
|
+
# Copyright (C) 2012-2025 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
|
+
|
1
17
|
require "kramdown"
|
2
18
|
require "kramdown-parser-gfm"
|
3
19
|
|
4
|
-
|
20
|
+
require_relative "base"
|
5
21
|
|
6
22
|
module Kramdown
|
7
23
|
module Parser
|
@@ -102,7 +118,7 @@ module Rabbit
|
|
102
118
|
end
|
103
119
|
end
|
104
120
|
|
105
|
-
|
121
|
+
require_relative "markdown/converter"
|
106
122
|
|
107
123
|
module Rabbit
|
108
124
|
module Parser
|
@@ -18,6 +18,7 @@ module Rabbit
|
|
18
18
|
def burn_out_pause_targets
|
19
19
|
@slides.each do |slide|
|
20
20
|
(pause_targets[slide] || []).each do |target|
|
21
|
+
slide.register_default_wait_target(target)
|
21
22
|
slide.register_default_wait_proc(target.parent) do |*args|
|
22
23
|
target.show do
|
23
24
|
next_proc = args.pop
|
data/lib/rabbit/parser/pdf.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2007-
|
1
|
+
# Copyright (C) 2007-2025 Sutou Kouhei <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
|
@@ -18,8 +18,8 @@ require "tempfile"
|
|
18
18
|
|
19
19
|
require "poppler"
|
20
20
|
|
21
|
-
|
22
|
-
|
21
|
+
require_relative "../element"
|
22
|
+
require_relative "base"
|
23
23
|
|
24
24
|
module Rabbit
|
25
25
|
module Parser
|
@@ -1,7 +1,23 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Copyright (C) 2004-2025 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.
|
3
16
|
|
4
|
-
require
|
17
|
+
require "English"
|
18
|
+
require "erb"
|
19
|
+
|
20
|
+
require_relative "../../../element"
|
5
21
|
|
6
22
|
module Rabbit
|
7
23
|
module Parser
|
@@ -39,7 +55,7 @@ module Rabbit
|
|
39
55
|
begin
|
40
56
|
result = __send__(entry, label, source, content, visitor)
|
41
57
|
rescue NameError
|
42
|
-
|
58
|
+
Rabbit.logger.error($!)
|
43
59
|
raise
|
44
60
|
end
|
45
61
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2004-
|
1
|
+
# Copyright (C) 2004-2025 Sutou Kouhei <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
|
@@ -16,19 +16,19 @@
|
|
16
16
|
|
17
17
|
require "tempfile"
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
19
|
+
require_relative "../../../rabbit"
|
20
|
+
require_relative "../../../utils"
|
21
|
+
require_relative "../../ext/aafigure"
|
22
|
+
require_relative "../../ext/blockdiag"
|
23
|
+
require_relative "../../ext/charty"
|
24
|
+
require_relative "../../ext/coderay"
|
25
|
+
require_relative "../../ext/enscript"
|
26
|
+
require_relative "../../ext/rouge"
|
27
|
+
require_relative "../../ext/tex"
|
28
|
+
require_relative "../rt/rt2rabbit-lib"
|
29
|
+
require_relative "base"
|
30
|
+
require_relative "image"
|
31
|
+
require_relative "video"
|
32
32
|
|
33
33
|
module Rabbit
|
34
34
|
module Parser
|
@@ -70,11 +70,10 @@ module Rabbit
|
|
70
70
|
lang = $1.downcase
|
71
71
|
|
72
72
|
src, prop = parse_source(source)
|
73
|
-
logger = visitor.logger
|
74
73
|
|
75
74
|
result = nil
|
76
|
-
if Parser::Ext::Enscript.check_availability(lang
|
77
|
-
result = Parser::Ext::Enscript.highlight(lang, src
|
75
|
+
if Parser::Ext::Enscript.check_availability(lang)
|
76
|
+
result = Parser::Ext::Enscript.highlight(lang, src)
|
78
77
|
end
|
79
78
|
result || default_ext_block_verbatim(label, src, src, visitor)
|
80
79
|
end
|
@@ -82,29 +81,28 @@ module Rabbit
|
|
82
81
|
def ext_block_verb_LaTeX(label, source, content, visitor)
|
83
82
|
return nil unless /\ALaTeX\z/i =~ label
|
84
83
|
make_image_from_file(source, visitor) do |src_file, prop|
|
85
|
-
Parser::Ext::TeX.make_image_by_LaTeX(src_file.path, prop
|
84
|
+
Parser::Ext::TeX.make_image_by_LaTeX(src_file.path, prop)
|
86
85
|
end
|
87
86
|
end
|
88
87
|
|
89
88
|
def ext_block_verb_mimeTeX(label, source, content, visitor)
|
90
89
|
return nil unless /\AmimeTeX\z/i =~ label
|
91
90
|
make_image_from_file(source, visitor) do |src_file, prop|
|
92
|
-
Parser::Ext::TeX.make_image_by_mimeTeX(src_file.path, prop
|
93
|
-
visitor)
|
91
|
+
Parser::Ext::TeX.make_image_by_mimeTeX(src_file.path, prop)
|
94
92
|
end
|
95
93
|
end
|
96
94
|
|
97
95
|
def ext_block_verb_aafigure(label, source, content, visitor)
|
98
96
|
return nil unless /\Aaafigure\z/i =~ label
|
99
97
|
make_image_from_file(source, visitor) do |src_file, prop|
|
100
|
-
Parser::Ext::AAFigure.make_image(src_file.path, prop
|
98
|
+
Parser::Ext::AAFigure.make_image(src_file.path, prop)
|
101
99
|
end
|
102
100
|
end
|
103
101
|
|
104
102
|
def ext_block_verb_blockdiag(label, source, content, visitor)
|
105
103
|
return nil unless /\Ablockdiag\z/i =~ label
|
106
104
|
make_image_from_file(source, visitor) do |src_file, prop|
|
107
|
-
Parser::Ext::BlockDiag.make_image(src_file.path, prop
|
105
|
+
Parser::Ext::BlockDiag.make_image(src_file.path, prop)
|
108
106
|
end
|
109
107
|
end
|
110
108
|
|
@@ -113,16 +111,15 @@ module Rabbit
|
|
113
111
|
lang = $1.downcase
|
114
112
|
|
115
113
|
src, prop = parse_source(source)
|
116
|
-
logger = visitor.logger
|
117
114
|
|
118
|
-
result = Parser::Ext::CodeRay.highlight(lang, src
|
115
|
+
result = Parser::Ext::CodeRay.highlight(lang, src)
|
119
116
|
result || default_ext_block_verbatim(label, src, src, visitor)
|
120
117
|
end
|
121
118
|
|
122
119
|
def ext_block_verb_rt(label, source, content, visitor)
|
123
120
|
return nil unless /\Art\z/i =~ label
|
124
121
|
unless defined?(RT2RabbitVisitor)
|
125
|
-
|
122
|
+
Rabbit.logger.warn(_("RTtool isn't available"))
|
126
123
|
return nil
|
127
124
|
end
|
128
125
|
rt_visitor = RT2RabbitVisitor.new(visitor)
|
@@ -166,16 +163,15 @@ module Rabbit
|
|
166
163
|
lang = $1.downcase
|
167
164
|
|
168
165
|
src, prop = parse_source(source)
|
169
|
-
logger = visitor.logger
|
170
166
|
|
171
|
-
result = Parser::Ext::Rouge.highlight(lang, src,
|
167
|
+
result = Parser::Ext::Rouge.highlight(lang, src, prop)
|
172
168
|
result || default_ext_block_verbatim(label, src, src, visitor)
|
173
169
|
end
|
174
170
|
|
175
171
|
def ext_block_verb_charty(label, source, content, visitor)
|
176
172
|
return nil unless /\Acharty\z/i =~ label
|
177
173
|
make_image_from_file(source, visitor) do |src_file, prop|
|
178
|
-
Parser::Ext::Charty.make_image(src_file.path, prop
|
174
|
+
Parser::Ext::Charty.make_image(src_file.path, prop)
|
179
175
|
end
|
180
176
|
end
|
181
177
|
|
@@ -1,5 +1,21 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Copyright (C) 2012-2025 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_relative "../../../element"
|
18
|
+
require_relative "../../ext/entity"
|
3
19
|
|
4
20
|
module Rabbit
|
5
21
|
module Parser
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2004-
|
1
|
+
# Copyright (C) 2004-2025 Sutou Kouhei <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
|
@@ -14,8 +14,8 @@
|
|
14
14
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
15
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
require_relative "../../../element"
|
18
|
+
require_relative "../../ext/image"
|
19
19
|
|
20
20
|
module Rabbit
|
21
21
|
module Parser
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2007-
|
1
|
+
# Copyright (C) 2007-2025 Sutou Kouhei <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
|
@@ -14,11 +14,11 @@
|
|
14
14
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
15
15
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
require_relative "../../../utils"
|
18
|
+
require_relative "../../ext/inline"
|
19
|
+
require_relative "base"
|
20
|
+
require_relative "image"
|
21
|
+
require_relative "character-reference"
|
22
22
|
|
23
23
|
module Rabbit
|
24
24
|
module Parser
|