rabbit 0.9.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +9 -2
- data/Rakefile +11 -4
- data/TODO +0 -2
- data/bin/rabbirack +95 -0
- data/bin/rabbit +23 -2
- data/bin/rabbiter +9 -0
- data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
- data/data/locale/fr/LC_MESSAGES/rabbit.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_layouts/en.html +1 -1
- data/doc/_layouts/ja.html +1 -1
- data/doc/_layouts/skeleton.html +1 -1
- data/doc/_site/css/rabbit.css +41 -1
- data/doc/_site/en/development.html +2 -2
- data/doc/_site/en/faq.html +2 -2
- data/doc/_site/en/hiki.html +2 -2
- data/doc/_site/en/how-to-make/hiki.html +2 -2
- data/doc/_site/en/how-to-make/index.html +2 -2
- data/doc/_site/en/how-to-make/pdf.html +2 -2
- data/doc/_site/en/how-to-make/rd.html +2 -2
- data/doc/_site/en/how-to-make/theme.html +2 -2
- data/doc/_site/en/index.html +20 -20
- data/doc/_site/en/install/homebrew.html +6 -12
- data/doc/_site/en/install/index.html +5 -3
- data/doc/_site/en/install/macports.html +2 -2
- data/doc/_site/en/install/windows.html +2 -2
- data/doc/_site/en/news.html +172 -61
- data/doc/_site/en/rd.html +2 -2
- data/doc/_site/en/sample/hiki/rabbit.html +3 -3
- data/doc/_site/en/sample/index.html +2 -2
- data/doc/_site/en/sample/rd/rabbit.html +3 -3
- data/doc/_site/en/slides.html +2 -2
- data/doc/_site/en/usage.html +60 -60
- data/doc/_site/en/users.html +2 -2
- data/doc/_site/images/screenshots/en/blue-circle.png +0 -0
- data/doc/_site/images/screenshots/en/clear-blue-raw.png +0 -0
- data/doc/_site/images/screenshots/en/clear-blue.png +0 -0
- data/doc/_site/images/screenshots/en/cozmixng-raw.png +0 -0
- data/doc/_site/images/screenshots/en/cozmixng.png +0 -0
- data/doc/_site/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/_site/images/screenshots/en/day-white.png +0 -0
- data/doc/_site/images/screenshots/en/debian.png +0 -0
- data/doc/_site/images/screenshots/en/green-circle.png +0 -0
- data/doc/_site/images/screenshots/en/night-black.png +0 -0
- data/doc/_site/images/screenshots/en/rabbit-raw.png +0 -0
- data/doc/_site/images/screenshots/en/rabbit.png +0 -0
- data/doc/_site/images/screenshots/en/ranguba-raw.png +0 -0
- data/doc/_site/images/screenshots/en/ranguba.png +0 -0
- data/doc/_site/images/screenshots/en/red-frame.png +0 -0
- data/doc/_site/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/_site/images/screenshots/ja/blue-circle.png +0 -0
- data/doc/_site/images/screenshots/ja/clear-blue-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/clear-blue.png +0 -0
- data/doc/_site/images/screenshots/ja/cozmixng-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/cozmixng.png +0 -0
- data/doc/_site/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/_site/images/screenshots/ja/day-white.png +0 -0
- data/doc/_site/images/screenshots/ja/debian.png +0 -0
- data/doc/_site/images/screenshots/ja/green-circle.png +0 -0
- data/doc/_site/images/screenshots/ja/night-black.png +0 -0
- data/doc/_site/images/screenshots/ja/rabbit-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/rabbit.png +0 -0
- data/doc/_site/images/screenshots/ja/ranguba-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/ranguba.png +0 -0
- data/doc/_site/images/screenshots/ja/red-frame.png +0 -0
- data/doc/_site/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/_site/index.html.en +8 -2
- data/doc/_site/index.html.ja +8 -2
- data/doc/_site/ja/about.html +2 -2
- data/doc/_site/ja/development.html +2 -2
- data/doc/_site/ja/faq.html +25 -14
- data/doc/_site/ja/hiki.html +2 -2
- data/doc/_site/ja/how-to-make/hiki.html +2 -2
- data/doc/_site/ja/how-to-make/index.html +2 -2
- data/doc/_site/ja/how-to-make/pdf.html +2 -2
- data/doc/_site/ja/how-to-make/rd.html +2 -2
- data/doc/_site/ja/how-to-make/theme.html +2 -2
- data/doc/_site/ja/index.html +2 -2
- data/doc/_site/ja/install/homebrew.html +6 -12
- data/doc/_site/ja/install/index.html +5 -3
- data/doc/_site/ja/install/macports.html +3 -6
- data/doc/_site/ja/install/windows.html +2 -2
- data/doc/_site/ja/news.html +165 -61
- data/doc/_site/ja/rd.html +2 -2
- data/doc/_site/ja/sample/hiki/rabbit.html +3 -3
- data/doc/_site/ja/sample/index.html +2 -2
- data/doc/_site/ja/sample/rd/rabbit.html +3 -3
- data/doc/_site/ja/slides.html +2 -2
- data/doc/_site/ja/usage.html +60 -69
- data/doc/_site/ja/users.html +2 -2
- data/doc/css/rabbit.css +41 -1
- data/doc/en/index.rd +1 -1
- data/doc/en/install/homebrew.rd +2 -11
- data/doc/en/install/index.rd +2 -0
- data/doc/en/news.rd +117 -3
- data/doc/en/sample/hiki/rabbit.hiki +1 -1
- data/doc/en/sample/rd/rabbit.rd +1 -1
- data/doc/en/usage.rd +12 -17
- data/doc/images/screenshots/en/blue-circle.png +0 -0
- data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/en/clear-blue.png +0 -0
- data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/en/cozmixng.png +0 -0
- data/doc/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/images/screenshots/en/day-white.png +0 -0
- data/doc/images/screenshots/en/debian.png +0 -0
- data/doc/images/screenshots/en/green-circle.png +0 -0
- data/doc/images/screenshots/en/night-black.png +0 -0
- data/doc/images/screenshots/en/rabbit-raw.png +0 -0
- data/doc/images/screenshots/en/rabbit.png +0 -0
- data/doc/images/screenshots/en/ranguba-raw.png +0 -0
- data/doc/images/screenshots/en/ranguba.png +0 -0
- data/doc/images/screenshots/en/red-frame.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/ja/blue-circle.png +0 -0
- data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/ja/clear-blue.png +0 -0
- data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/ja/cozmixng.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/images/screenshots/ja/day-white.png +0 -0
- data/doc/images/screenshots/ja/debian.png +0 -0
- data/doc/images/screenshots/ja/green-circle.png +0 -0
- data/doc/images/screenshots/ja/night-black.png +0 -0
- data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
- data/doc/images/screenshots/ja/rabbit.png +0 -0
- data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
- data/doc/images/screenshots/ja/ranguba.png +0 -0
- data/doc/images/screenshots/ja/red-frame.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/index.html.en +6 -0
- data/doc/index.html.ja +6 -0
- data/doc/ja/faq.rd +21 -3
- data/doc/ja/install/homebrew.rd +2 -11
- data/doc/ja/install/index.rd +2 -0
- data/doc/ja/install/macports.rd +1 -6
- data/doc/ja/news.rd +109 -3
- data/doc/ja/sample/hiki/rabbit.hiki +1 -1
- data/doc/ja/sample/rd/rabbit.rd +1 -1
- data/doc/ja/usage.rd +11 -29
- data/lib/rabbit/canvas.rb +7 -4
- data/lib/rabbit/console.rb +1 -1
- data/lib/rabbit/div/main-i.erb +1 -1
- data/lib/rabbit/div/main.erb +1 -1
- data/lib/rabbit/element/base.rb +17 -1
- data/lib/rabbit/element/image.rb +1 -0
- data/lib/rabbit/element/preformatted.rb +8 -3
- data/lib/rabbit/element/syntax-highlighting.rb +15 -0
- data/lib/rabbit/element/text-renderer.rb +3 -3
- data/lib/rabbit/element/text.rb +0 -12
- data/lib/rabbit/element/title-slide.rb +1 -25
- data/lib/rabbit/formatter.rb +26 -6
- data/lib/rabbit/front.rb +10 -6
- data/lib/rabbit/html/template.erb +1 -1
- data/lib/rabbit/image.rb +1 -1
- data/lib/rabbit/keys.rb +70 -70
- data/lib/rabbit/middleware/config.ru +42 -0
- data/lib/rabbit/middleware/controller.rb +66 -0
- data/lib/rabbit/middleware/public/stylesheets/rabbirack.css +12 -0
- data/lib/rabbit/middleware/views/index.haml +13 -0
- data/lib/rabbit/middleware/views/layout.haml +8 -0
- data/lib/rabbit/parser/ext/aafigure.rb +1 -1
- data/lib/rabbit/parser/ext/blockdiag.rb +46 -0
- data/lib/rabbit/parser/ext/coderay.rb +66 -0
- data/lib/rabbit/parser/ext/emacs.rb +116 -0
- data/lib/rabbit/parser/ext/enscript.rb +15 -22
- data/lib/rabbit/parser/rd.rb +8 -2
- data/lib/rabbit/parser/rd/ext/block-verbatim.rb +53 -16
- data/lib/rabbit/parser/wiki.rb +3 -1
- data/lib/rabbit/parser/wiki/output.rb +28 -16
- data/lib/rabbit/rabbit.rb +7 -1
- data/lib/rabbit/renderer/display.rb +14 -2
- data/lib/rabbit/renderer/display/clutter-embed.rb +1 -1
- data/lib/rabbit/renderer/display/key-handler.rb +12 -12
- data/lib/rabbit/soap/base.rb +1 -1
- data/lib/rabbit/theme-browser.rb +2 -2
- data/lib/rabbit/theme/base/base.rb +7 -0
- data/lib/rabbit/theme/default-comment/default-comment.rb +9 -0
- data/lib/rabbit/theme/default-comment/property.rb +4 -0
- data/lib/rabbit/theme/default-item-mark-setup/default-item-mark-setup.rb +1 -1
- data/lib/rabbit/theme/default-slide/default-slide.rb +2 -2
- data/lib/rabbit/theme/default-text/default-text.rb +5 -0
- data/lib/rabbit/theme/default/default.rb +6 -7
- data/lib/rabbit/theme/footer-comment/footer-comment.rb +35 -8
- data/lib/rabbit/theme/pdf/pdf.rb +18 -0
- data/lib/rabbit/theme/rabbit-powered-by/rabbit-powered-by.rb +1 -1
- data/lib/rabbit/theme/syntax-highlighting/property.rb +4 -0
- data/lib/rabbit/theme/syntax-highlighting/syntax-highlighting.rb +139 -0
- data/lib/rabbit/theme/title-shadow/title-shadow.rb +1 -1
- data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +1 -1
- data/lib/rabbit/twitter.rb +28 -4
- data/lib/rabbit/utils.rb +40 -12
- data/po/en/rabbit.po +175 -145
- data/po/fr/rabbit.po +180 -149
- data/po/ja/rabbit.po +176 -148
- data/po/rabbit.pot +175 -145
- data/sample/can_rabbit.rd +0 -21
- data/sample/rabbit-en.hiki +21 -2
- data/sample/rabbit-en.rd +42 -2
- data/sample/rabbit-implementation.rd +0 -5
- data/sample/rabbit.hiki +19 -16
- data/sample/rabbit.rd +42 -11
- data/sample/test.hiki +31 -0
- data/sample/test.rab +30 -0
- metadata +84 -58
- data/lib/rabbit/parser/ext/anthy.rb +0 -43
- data/lib/rabbit/parser/rd/ext/aafigure.rb +0 -18
- data/lib/rabbit/parser/rd/ext/anthy.rb +0 -29
- data/lib/rabbit/parser/rd/ext/enscript.rb +0 -24
- data/lib/rabbit/parser/rd/ext/tex.rb +0 -24
- data/lib/rabbit/source/rwiki.rb +0 -54
- data/lib/rabbit/theme/pdf-tortoise-and-hare/pdf-tortoise-and-hare.rb +0 -18
- data/lib/rabbit/theme/pdf-tortoise-and-hare/property.rb +0 -3
data/lib/rabbit/parser/rd.rb
CHANGED
@@ -5,7 +5,15 @@ require "rabbit/parser/base"
|
|
5
5
|
module Rabbit
|
6
6
|
module Parser
|
7
7
|
class RD < Base
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require "rabbit/parser/rd/rd2rabbit-lib"
|
8
13
|
|
14
|
+
module Rabbit
|
15
|
+
module Parser
|
16
|
+
class RD
|
9
17
|
push_loader(self)
|
10
18
|
class << self
|
11
19
|
def match?(source)
|
@@ -53,5 +61,3 @@ module Rabbit
|
|
53
61
|
end
|
54
62
|
end
|
55
63
|
end
|
56
|
-
|
57
|
-
require "rabbit/parser/rd/rd2rabbit-lib"
|
@@ -8,10 +8,12 @@ rescue LoadError
|
|
8
8
|
end
|
9
9
|
require 'rabbit/parser/rd/ext/base'
|
10
10
|
require 'rabbit/parser/rd/ext/image'
|
11
|
-
require 'rabbit/parser/
|
12
|
-
require 'rabbit/parser/
|
13
|
-
require 'rabbit/parser/
|
14
|
-
require 'rabbit/parser/
|
11
|
+
require 'rabbit/parser/ext/enscript'
|
12
|
+
require 'rabbit/parser/ext/tex'
|
13
|
+
require 'rabbit/parser/ext/aafigure'
|
14
|
+
require 'rabbit/parser/ext/blockdiag'
|
15
|
+
require 'rabbit/parser/ext/coderay'
|
16
|
+
require 'rabbit/parser/ext/emacs'
|
15
17
|
|
16
18
|
module Rabbit
|
17
19
|
module Parser
|
@@ -19,10 +21,6 @@ module Rabbit
|
|
19
21
|
module Ext
|
20
22
|
class BlockVerbatim < Base
|
21
23
|
include Image
|
22
|
-
include Enscript
|
23
|
-
include TeX
|
24
|
-
include AAFigure
|
25
|
-
include Anthy
|
26
24
|
include GetText
|
27
25
|
|
28
26
|
def default_ext_block_verbatim(label, source, content, visitor)
|
@@ -65,27 +63,66 @@ module Rabbit
|
|
65
63
|
def ext_block_verb_enscript(label, source, content, visitor)
|
66
64
|
return nil unless /^enscript (\w+)$/i =~ label
|
67
65
|
lang = $1.downcase.untaint
|
68
|
-
enscript_block(label, lang, source, content, visitor)
|
69
|
-
end
|
70
66
|
|
71
|
-
|
72
|
-
|
73
|
-
|
67
|
+
src, prop = parse_source(source)
|
68
|
+
logger = visitor.logger
|
69
|
+
|
70
|
+
result = nil
|
71
|
+
if Parser::Ext::Enscript.check_availability(lang, logger)
|
72
|
+
result = Parser::Ext::Enscript.highlight(lang, src, logger)
|
73
|
+
end
|
74
|
+
result || default_ext_block_verbatim(label, src, src, visitor)
|
74
75
|
end
|
75
76
|
|
76
77
|
def ext_block_verb_LaTeX(label, source, content, visitor)
|
77
78
|
return nil unless /^LaTeX$/i =~ label
|
78
|
-
|
79
|
+
make_image_from_file(source, visitor) do |src_file_path, prop|
|
80
|
+
Parser::Ext::TeX.make_image_by_LaTeX(src_file_path, prop, visitor)
|
81
|
+
end
|
79
82
|
end
|
80
83
|
|
81
84
|
def ext_block_verb_mimeTeX(label, source, content, visitor)
|
82
85
|
return nil unless /^mimeTeX$/i =~ label
|
83
|
-
|
86
|
+
make_image_from_file(source, visitor) do |src_file_path, prop|
|
87
|
+
Parser::Ext::TeX.make_image_by_mimeTeX(src_file_path, prop,
|
88
|
+
visitor)
|
89
|
+
end
|
84
90
|
end
|
85
91
|
|
86
92
|
def ext_block_verb_aafigure(label, source, content, visitor)
|
87
93
|
return nil unless /^aafigure$/i =~ label
|
88
|
-
|
94
|
+
make_image_from_file(source, visitor) do |src_file_path, prop|
|
95
|
+
Parser::Ext::AAFigure.make_image(src_file_path, prop, visitor)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def ext_block_verb_blockdiag(label, source, content, visitor)
|
100
|
+
return nil unless /^blockdiag$/i =~ label
|
101
|
+
make_image_from_file(source, visitor) do |src_file_path, prop|
|
102
|
+
Parser::Ext::BlockDiag.make_image(src_file_path, prop, visitor)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def ext_block_verb_coderay(label, source, content, visitor)
|
107
|
+
return nil unless /^coderay (\w+)$/i =~ label
|
108
|
+
lang = $1.downcase.untaint
|
109
|
+
|
110
|
+
src, prop = parse_source(source)
|
111
|
+
logger = visitor.logger
|
112
|
+
|
113
|
+
result = Parser::Ext::CodeRay.highlight(lang, src, logger)
|
114
|
+
result || default_ext_block_verbatim(label, src, src, visitor)
|
115
|
+
end
|
116
|
+
|
117
|
+
def ext_block_verb_emacs(label, source, content, visitor)
|
118
|
+
return nil unless /^emacs(?:\s+(.+))?$/i =~ label
|
119
|
+
mode_line = $1.untaint
|
120
|
+
|
121
|
+
src, prop = parse_source(source)
|
122
|
+
logger = visitor.logger
|
123
|
+
|
124
|
+
result = Parser::Ext::Emacs.highlight(src, logger, mode_line)
|
125
|
+
result || default_ext_block_verbatim(label, src, src, visitor)
|
89
126
|
end
|
90
127
|
|
91
128
|
def ext_block_verb_rt(label, source, content, visitor)
|
data/lib/rabbit/parser/wiki.rb
CHANGED
@@ -6,7 +6,9 @@ require 'rabbit/parser/ext/image'
|
|
6
6
|
require 'rabbit/parser/ext/enscript'
|
7
7
|
require 'rabbit/parser/ext/tex'
|
8
8
|
require 'rabbit/parser/ext/aafigure'
|
9
|
-
require 'rabbit/parser/ext/
|
9
|
+
require 'rabbit/parser/ext/blockdiag'
|
10
|
+
require 'rabbit/parser/ext/coderay'
|
11
|
+
require 'rabbit/parser/ext/emacs'
|
10
12
|
require 'rabbit/parser/ext/entity'
|
11
13
|
|
12
14
|
module Rabbit
|
@@ -262,8 +264,8 @@ module Rabbit
|
|
262
264
|
lang = info ? info.downcase : nil
|
263
265
|
result = nil
|
264
266
|
|
265
|
-
if lang
|
266
|
-
result = Ext::
|
267
|
+
if lang
|
268
|
+
result = Ext::CodeRay.highlight(lang, contents, @canvas.logger)
|
267
269
|
end
|
268
270
|
|
269
271
|
if result
|
@@ -453,21 +455,10 @@ module Rabbit
|
|
453
455
|
end
|
454
456
|
end
|
455
457
|
|
456
|
-
def anthy(source)
|
457
|
-
unless Ext::Anthy.available?
|
458
|
-
@output.canvas.logger.warn(_("Anthy isn't available"))
|
459
|
-
return nil
|
460
|
-
end
|
461
|
-
|
462
|
-
converted_source = Ext::Anthy.hiragana_to_kanji(source)
|
463
|
-
converted_source =
|
464
|
-
Ext::Escape.escape_meta_character(converted_source)
|
465
|
-
Paragraph.new(Text.new(converted_source))
|
466
|
-
end
|
467
|
-
|
468
458
|
def LaTeX(source, props={})
|
469
459
|
args = [@output.canvas, source]
|
470
460
|
Ext::Image.make_image_from_file(*args) do |src_file_path|
|
461
|
+
props = Utils.stringify_hash_key(props)
|
471
462
|
args = [src_file_path, props, @output.canvas]
|
472
463
|
[Ext::TeX.make_image_by_LaTeX(*args), props]
|
473
464
|
end
|
@@ -477,6 +468,7 @@ module Rabbit
|
|
477
468
|
def mimeTeX(source, props={})
|
478
469
|
args = [@output.canvas, source]
|
479
470
|
Ext::Image.make_image_from_file(*args) do |src_file_path|
|
471
|
+
props = Utils.stringify_hash_key(props)
|
480
472
|
args = [src_file_path, props, @output.canvas]
|
481
473
|
[Ext::TeX.make_image_by_mimeTeX(*args), props]
|
482
474
|
end
|
@@ -486,11 +478,31 @@ module Rabbit
|
|
486
478
|
def aafigure(source, props={})
|
487
479
|
args = [@output.canvas, source]
|
488
480
|
Ext::Image.make_image_from_file(*args) do |src_file_path|
|
481
|
+
props = Utils.stringify_hash_key(props)
|
482
|
+
args = [src_file_path, props, @output.canvas]
|
483
|
+
[Ext::AAFigure.make_image(*args), props]
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
487
|
+
def blockdiag(source, props={})
|
488
|
+
args = [@output.canvas, source]
|
489
|
+
Ext::Image.make_image_from_file(*args) do |src_file_path|
|
490
|
+
props = Utils.stringify_hash_key(props)
|
489
491
|
args = [src_file_path, props, @output.canvas]
|
490
|
-
[Ext::
|
492
|
+
[Ext::BlockDiag.make_image(*args), props]
|
491
493
|
end
|
492
494
|
end
|
493
495
|
|
496
|
+
def coderay(lang, source)
|
497
|
+
logger = @output.canvas.logger
|
498
|
+
Ext::CodeRay.highlight(lang, source, logger)
|
499
|
+
end
|
500
|
+
|
501
|
+
def emacs(source, mode_line=nil)
|
502
|
+
logger = @output.canvas.logger
|
503
|
+
Ext::Emacs.highlight(source, logger, mode_line)
|
504
|
+
end
|
505
|
+
|
494
506
|
def tag(name, value=nil)
|
495
507
|
if value
|
496
508
|
CustomTag.new(name, @output.text(value))
|
data/lib/rabbit/rabbit.rb
CHANGED
@@ -8,7 +8,7 @@ require "rabbit/gettext"
|
|
8
8
|
|
9
9
|
module Rabbit
|
10
10
|
|
11
|
-
VERSION = "0.
|
11
|
+
VERSION = "1.0.0"
|
12
12
|
|
13
13
|
TMP_DIR_NAME = ".tmp"
|
14
14
|
|
@@ -101,6 +101,12 @@ module Rabbit
|
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
+
class BlockDiagCanNotHandleError < ImageLoadWithExternalCommandError
|
105
|
+
def initialize(command, additional_info=nil)
|
106
|
+
super("blockdiag", command, additional_info)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
104
110
|
class UnknownPropertyError < Error
|
105
111
|
attr_reader :name
|
106
112
|
def initialize(name)
|
@@ -7,7 +7,11 @@ module Rabbit
|
|
7
7
|
|
8
8
|
class << self
|
9
9
|
@initialized = false
|
10
|
-
|
10
|
+
@preferred_class_name = nil
|
11
|
+
def init(options={})
|
12
|
+
if options.has_key?(:preferred_class_name)
|
13
|
+
@preferred_class_name = options[:preferred_class_name]
|
14
|
+
end
|
11
15
|
unless @initialized
|
12
16
|
@initialized = true
|
13
17
|
dir = ::File.join("rabbit", "renderer", "display")
|
@@ -17,7 +21,15 @@ module Rabbit
|
|
17
21
|
|
18
22
|
def new(*args, &block)
|
19
23
|
init
|
20
|
-
|
24
|
+
target_class = nil
|
25
|
+
if @preferred_class_name
|
26
|
+
if const_defined?(@preferred_class_name)
|
27
|
+
target_class = const_get(@preferred_class_name)
|
28
|
+
target_class = nil unless target_class.is_a?(Class)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
target_class ||= corresponding_class_under_module(self)
|
32
|
+
target_class.new(*args, &block)
|
21
33
|
end
|
22
34
|
end
|
23
35
|
end
|
@@ -76,14 +76,14 @@ module Rabbit
|
|
76
76
|
mod = mod.inject(no_mod) do |result, item|
|
77
77
|
result | item
|
78
78
|
end
|
79
|
-
keys = (0..9).collect{|i| Gdk::Keyval.const_get("
|
79
|
+
keys = (0..9).collect{|i| Gdk::Keyval.const_get("GDK_KEY_#{i}")}
|
80
80
|
set_keys(keys, mod) do |group, obj, val, modifier|
|
81
|
-
index = calc_slide_number(val - Gdk::Keyval::
|
81
|
+
index = calc_slide_number(val - Gdk::Keyval::GDK_KEY_0, modifier)
|
82
82
|
@canvas.activate("JumpTo") {index}
|
83
83
|
end
|
84
|
-
keys = (0..9).collect{|i| Gdk::Keyval.const_get("
|
84
|
+
keys = (0..9).collect{|i| Gdk::Keyval.const_get("GDK_KEY_KP_#{i}")}
|
85
85
|
set_keys(keys, mod) do |group, obj, val, modifier|
|
86
|
-
index = calc_slide_number(val - Gdk::Keyval::
|
86
|
+
index = calc_slide_number(val - Gdk::Keyval::GDK_KEY_KP_0, modifier)
|
87
87
|
@canvas.activate("JumpTo") {index}
|
88
88
|
end
|
89
89
|
end
|
@@ -254,16 +254,16 @@ module Rabbit
|
|
254
254
|
|
255
255
|
def set_key_press_event(widget)
|
256
256
|
prev_keys = [
|
257
|
-
Gdk::Keyval::
|
258
|
-
Gdk::Keyval::
|
259
|
-
Gdk::Keyval::
|
260
|
-
Gdk::Keyval::
|
257
|
+
Gdk::Keyval::GDK_KEY_Up,
|
258
|
+
Gdk::Keyval::GDK_KEY_Left,
|
259
|
+
Gdk::Keyval::GDK_KEY_KP_Up,
|
260
|
+
Gdk::Keyval::GDK_KEY_KP_Left,
|
261
261
|
]
|
262
262
|
next_keys = [
|
263
|
-
Gdk::Keyval::
|
264
|
-
Gdk::Keyval::
|
265
|
-
Gdk::Keyval::
|
266
|
-
Gdk::Keyval::
|
263
|
+
Gdk::Keyval::GDK_KEY_Right,
|
264
|
+
Gdk::Keyval::GDK_KEY_Down,
|
265
|
+
Gdk::Keyval::GDK_KEY_KP_Right,
|
266
|
+
Gdk::Keyval::GDK_KEY_KP_Down,
|
267
267
|
]
|
268
268
|
widget.signal_connect("key_press_event") do |_widget, event|
|
269
269
|
handled = true
|
data/lib/rabbit/soap/base.rb
CHANGED
data/lib/rabbit/theme-browser.rb
CHANGED
@@ -70,9 +70,9 @@ module Rabbit
|
|
70
70
|
@window.signal_connect("key_press_event") do |widget, event|
|
71
71
|
if event.state.control_mask?
|
72
72
|
case event.keyval
|
73
|
-
when Gdk::Keyval::
|
73
|
+
when Gdk::Keyval::GDK_KEY_q
|
74
74
|
@window.destroy
|
75
|
-
when Gdk::Keyval::
|
75
|
+
when Gdk::Keyval::GDK_KEY_r
|
76
76
|
page.reload
|
77
77
|
end
|
78
78
|
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
@foreground = "black"
|
2
|
+
@background = "white"
|
3
|
+
@shadow_color = "#fff9"
|
4
|
+
|
5
|
+
set_foreground(@foreground)
|
6
|
+
set_background(@background)
|
7
|
+
|
1
8
|
@xx_large_font_size = screen_size(15 * Pango::SCALE)
|
2
9
|
@x_large_font_size = screen_size(11 * Pango::SCALE)
|
3
10
|
@large_font_size = screen_size(7 * Pango::SCALE)
|
@@ -17,7 +17,7 @@ def setup_default_item_mark_type(type, item, canvas, x, y, w, h, color)
|
|
17
17
|
canvas.draw_circle(true, x, y, w, h, color)
|
18
18
|
when "check", "dash"
|
19
19
|
props = {
|
20
|
-
"
|
20
|
+
"font-family" => @font_family,
|
21
21
|
"weight" => "bold",
|
22
22
|
"foreground" => canvas.make_color(color).to_gdk_format,
|
23
23
|
}.merge(item.first.text_props)
|
@@ -44,9 +44,9 @@ match(Slide, HeadLine) do |headlines|
|
|
44
44
|
slide = headline.slide
|
45
45
|
headline.hide if slide.hide_title?
|
46
46
|
color = slide["headline-color"]
|
47
|
-
headline.
|
47
|
+
headline.font("color", color) if color
|
48
48
|
shadow_color = slide["headline-shadow-color"]
|
49
|
-
headline
|
49
|
+
headline.font("shadow-color" => shadow_color) if shadow_color
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -77,6 +77,11 @@ match("**", PreformattedText) do |texts|
|
|
77
77
|
set_font_family(texts, @monospace_font_family)
|
78
78
|
end
|
79
79
|
|
80
|
+
match("**", SyntaxHighlightingText) do |texts|
|
81
|
+
texts.prop_set("size", @normal_font_size)
|
82
|
+
set_font_family(texts, @monospace_font_family)
|
83
|
+
end
|
84
|
+
|
80
85
|
match("**", Keyword) do |texts|
|
81
86
|
texts.prop_set("weight", "bold")
|
82
87
|
end
|
@@ -1,5 +1,6 @@
|
|
1
|
-
@default_foreground ||=
|
2
|
-
@default_background ||=
|
1
|
+
@default_foreground ||= @foreground
|
2
|
+
@default_background ||= @background
|
3
|
+
@default_shadow_color ||= @shadow_color
|
3
4
|
|
4
5
|
set_foreground(@default_foreground)
|
5
6
|
set_background(@default_background)
|
@@ -29,8 +30,6 @@ include_theme("body-background-image")
|
|
29
30
|
|
30
31
|
include_theme("tag")
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
include_theme("footer-comment")
|
36
|
-
end
|
33
|
+
include_theme("syntax-highlighting")
|
34
|
+
|
35
|
+
include_theme("default-comment")
|
@@ -2,12 +2,21 @@ theme_exit unless display?
|
|
2
2
|
|
3
3
|
proc_name = "footer-comment"
|
4
4
|
|
5
|
+
@footer_comment_color ||= @foreground
|
6
|
+
@footer_comment_shadow_color ||= @shadow_color
|
5
7
|
@footer_comment_props ||= {
|
6
|
-
"size" => (@
|
8
|
+
"size" => (@x_small_font_size * 0.5).ceil,
|
7
9
|
"font_family" => @font_family,
|
10
|
+
"color" => @footer_comment_color,
|
11
|
+
"shadow-color" => @footer_comment_shadow_color,
|
12
|
+
}
|
13
|
+
@footer_comment_padding ||= {
|
14
|
+
:left => 3 * @space,
|
15
|
+
:right => 3 * @space,
|
16
|
+
:bottom => (@space * 0.5).ceil,
|
8
17
|
}
|
9
|
-
@footer_comment_color ||= @default_foreground
|
10
18
|
@footer_comment_min_display_time ||= 1
|
19
|
+
@footer_comment_keep_last_comment ||= false
|
11
20
|
|
12
21
|
match(SlideElement) do |slides|
|
13
22
|
slides.delete_post_draw_proc_by_name(proc_name)
|
@@ -17,8 +26,13 @@ match(SlideElement) do |slides|
|
|
17
26
|
|
18
27
|
comments = []
|
19
28
|
canvas.on_comment(proc_name) do |comment|
|
29
|
+
if comments.empty?
|
30
|
+
GLib::Timeout.add_seconds(@footer_comment_min_display_time) do
|
31
|
+
canvas.activate("Redraw")
|
32
|
+
not comments.empty?
|
33
|
+
end
|
34
|
+
end
|
20
35
|
comments << comment
|
21
|
-
canvas.activate("Redraw")
|
22
36
|
end
|
23
37
|
|
24
38
|
redraw_time = Time.now
|
@@ -29,16 +43,29 @@ match(SlideElement) do |slides|
|
|
29
43
|
text = Text.new(ERB::Util.h(content.strip.gsub("\n", " ")))
|
30
44
|
if Time.now - redraw_time > @footer_comment_min_display_time
|
31
45
|
redraw_time = Time.now
|
32
|
-
|
46
|
+
if @footer_comment_keep_last_comment
|
47
|
+
comments.shift if comments.size > 1
|
48
|
+
else
|
49
|
+
comments.shift
|
50
|
+
end
|
33
51
|
end
|
34
|
-
text.font @footer_comment_props
|
35
52
|
set_font_family(text)
|
53
|
+
text.font @footer_comment_props
|
54
|
+
text.padding_with @footer_comment_padding
|
36
55
|
text.compile(canvas, x, y, w, h)
|
37
|
-
|
56
|
+
|
57
|
+
# set horizontal
|
38
58
|
text_x = x
|
59
|
+
text_w = w - text.padding_left - text.padding_right
|
60
|
+
text.compile(canvas, text_x, y, text_w, h)
|
61
|
+
|
62
|
+
# set vertical
|
39
63
|
text_y = canvas.height - slide.margin_bottom - slide.padding_bottom
|
40
|
-
text_y -= text.
|
41
|
-
|
64
|
+
text_y -= text.height
|
65
|
+
text_h = h - text.height
|
66
|
+
text.compile(canvas, text_x, text_y, text_w, text_h)
|
67
|
+
|
68
|
+
text.draw
|
42
69
|
end
|
43
70
|
end
|
44
71
|
[x, y, w, h]
|