rabbit 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +16 -0
- data/README +1 -0
- data/Rakefile +161 -53
- data/TODO +2 -0
- data/bin/rabbit +78 -34
- data/bin/rabbit-command +16 -3
- data/bin/rabbiter +74 -73
- data/bin/rabrick +17 -4
- data/bin/rabwii +77 -0
- data/data/rabbit/image/dark-gradation-images/background-gradation.png +0 -0
- data/data/rabbit/image/dark-gradation-images/dark-gradation-images.rb +2 -0
- data/data/rabbit/image/dark-gradation-images/property.rb +4 -0
- data/doc/_config.yml +2 -0
- data/doc/_layouts/en.html +37 -0
- data/doc/_layouts/ja.html +37 -0
- data/doc/_layouts/skeleton.html +91 -0
- data/doc/_plugins/converters/hiki.rb +27 -0
- data/doc/_plugins/converters/rd.rb +73 -0
- data/doc/_site/css/jquery-ui/themes/ui-lightness.css +573 -0
- data/doc/_site/css/rabbit.css +247 -0
- data/doc/_site/en/development.html +140 -0
- data/doc/_site/en/faq.html +117 -0
- data/doc/_site/en/hiki.html +420 -0
- data/doc/_site/en/how-to-make/hiki.html +113 -0
- data/doc/_site/en/how-to-make/index.html +135 -0
- data/doc/_site/en/how-to-make/pdf.html +111 -0
- data/doc/_site/en/how-to-make/rd.html +151 -0
- data/doc/_site/en/how-to-make/theme.html +249 -0
- data/doc/_site/en/index.html +343 -0
- data/doc/_site/en/install/homebrew.html +279 -0
- data/doc/_site/en/install/index.html +144 -0
- data/doc/_site/en/install/macports.html +158 -0
- data/doc/_site/en/install/windows.html +200 -0
- data/doc/_site/en/news.html +928 -0
- data/doc/_site/en/rd.html +555 -0
- data/doc/_site/en/sample/hiki/rabbit.html +380 -0
- data/doc/_site/en/sample/index.html +117 -0
- data/doc/_site/en/sample/rd/rabbit.html +572 -0
- data/doc/_site/en/slides.html +113 -0
- data/doc/_site/en/usage.html +445 -0
- data/doc/_site/en/users.html +127 -0
- data/doc/_site/favicon.ico +0 -0
- data/doc/_site/favicon.png +0 -0
- data/doc/_site/images/background-sample.svg +290 -0
- data/doc/_site/images/background.png +0 -0
- data/doc/_site/images/background.svg +131 -0
- data/doc/_site/images/hare-and-tortoise.png +0 -0
- data/doc/_site/images/hare-and-tortoise.svg +541 -0
- data/doc/_site/images/jp.png +0 -0
- data/{sample/momo/usako/usako_psd_100.png → doc/_site/images/lavie-icon.png} +0 -0
- data/doc/_site/images/lavie.png +0 -0
- data/doc/_site/images/screenshots/en/blue-circle-raw.png +0 -0
- 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-raw.png +0 -0
- data/doc/_site/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/_site/images/screenshots/en/day-white-raw.png +0 -0
- data/doc/_site/images/screenshots/en/day-white.png +0 -0
- data/doc/_site/images/screenshots/en/debian-raw.png +0 -0
- data/doc/_site/images/screenshots/en/debian.png +0 -0
- data/doc/_site/images/screenshots/en/green-circle-raw.png +0 -0
- data/doc/_site/images/screenshots/en/green-circle.png +0 -0
- data/doc/_site/images/screenshots/en/night-black-raw.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-raw.png +0 -0
- data/doc/_site/images/screenshots/en/red-frame.png +0 -0
- data/doc/_site/images/screenshots/en/ruby-gnome2-raw.png +0 -0
- data/doc/_site/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/_site/images/screenshots/ja/blue-circle-raw.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-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/_site/images/screenshots/ja/day-white-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/day-white.png +0 -0
- data/doc/_site/images/screenshots/ja/debian-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/debian.png +0 -0
- data/doc/_site/images/screenshots/ja/green-circle-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/green-circle.png +0 -0
- data/doc/_site/images/screenshots/ja/night-black-raw.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-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/red-frame.png +0 -0
- data/doc/_site/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
- data/doc/_site/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/_site/images/us.png +0 -0
- data/doc/_site/index.html.en +122 -0
- data/doc/_site/index.html.ja +122 -0
- data/doc/_site/ja/about.html +120 -0
- data/doc/_site/ja/development.html +141 -0
- data/doc/_site/ja/faq.html +232 -0
- data/doc/_site/ja/hiki.html +416 -0
- data/doc/_site/ja/how-to-make/hiki.html +113 -0
- data/doc/_site/ja/how-to-make/index.html +135 -0
- data/doc/_site/ja/how-to-make/pdf.html +112 -0
- data/doc/_site/ja/how-to-make/rd.html +161 -0
- data/doc/_site/ja/how-to-make/theme.html +254 -0
- data/doc/_site/ja/index.html +351 -0
- data/doc/_site/ja/install/homebrew.html +279 -0
- data/doc/_site/ja/install/index.html +146 -0
- data/doc/_site/ja/install/macports.html +177 -0
- data/doc/_site/ja/install/windows.html +200 -0
- data/doc/_site/ja/news.html +926 -0
- data/doc/_site/ja/rd.html +565 -0
- data/doc/_site/ja/sample/hiki/rabbit.html +390 -0
- data/doc/_site/ja/sample/index.html +117 -0
- data/doc/_site/ja/sample/rd/rabbit.html +580 -0
- data/doc/_site/ja/slides.html +142 -0
- data/doc/_site/ja/usage.html +458 -0
- data/doc/_site/ja/users.html +331 -0
- data/doc/_site/javascripts/jquery-ui.js +11544 -0
- data/doc/_site/javascripts/jquery.js +7179 -0
- data/doc/_site/screenshot.en.rab +10 -0
- data/doc/_site/screenshot.ja.rab +10 -0
- data/doc/css/jquery-ui/themes/ui-lightness.css +573 -0
- data/doc/css/rabbit.css +247 -0
- data/doc/en/development.rd +50 -0
- data/doc/en/faq.rd +18 -0
- data/doc/en/hiki.hiki +325 -0
- data/doc/en/how-to-make/hiki.hiki +9 -0
- data/doc/en/how-to-make/index.rd +25 -0
- data/doc/en/how-to-make/pdf.rd +7 -0
- data/doc/en/how-to-make/rd.rd +66 -0
- data/doc/en/how-to-make/theme.rd +135 -0
- data/doc/en/index.rd +276 -0
- data/doc/en/install/homebrew.rd +196 -0
- data/doc/en/install/index.rd +63 -0
- data/doc/en/install/macports.rd +77 -0
- data/doc/en/install/windows.rd +103 -0
- data/{NEWS.en → doc/en/news.rd} +78 -3
- data/doc/en/rd.rd +481 -0
- data/doc/en/sample/hiki/rabbit.hiki +389 -0
- data/doc/en/sample/index.rd +11 -0
- data/doc/en/sample/rd/rabbit.rd +467 -0
- data/doc/en/slides.rd +7 -0
- data/doc/en/usage.rd +365 -0
- data/doc/en/users.rd +29 -0
- data/doc/favicon.ico +0 -0
- data/doc/favicon.png +0 -0
- data/doc/images/background-sample.svg +290 -0
- data/doc/images/background.png +0 -0
- data/doc/images/background.svg +131 -0
- data/doc/images/hare-and-tortoise.png +0 -0
- data/doc/images/hare-and-tortoise.svg +541 -0
- data/doc/images/jp.png +0 -0
- data/doc/images/lavie-icon.png +0 -0
- data/doc/images/lavie.png +0 -0
- data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
- 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-raw.png +0 -0
- data/doc/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/images/screenshots/en/day-white-raw.png +0 -0
- data/doc/images/screenshots/en/day-white.png +0 -0
- data/doc/images/screenshots/en/debian-raw.png +0 -0
- data/doc/images/screenshots/en/debian.png +0 -0
- data/doc/images/screenshots/en/green-circle-raw.png +0 -0
- data/doc/images/screenshots/en/green-circle.png +0 -0
- data/doc/images/screenshots/en/night-black-raw.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-raw.png +0 -0
- data/doc/images/screenshots/en/red-frame.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/ja/blue-circle-raw.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-raw.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/images/screenshots/ja/day-white-raw.png +0 -0
- data/doc/images/screenshots/ja/day-white.png +0 -0
- data/doc/images/screenshots/ja/debian-raw.png +0 -0
- data/doc/images/screenshots/ja/debian.png +0 -0
- data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
- data/doc/images/screenshots/ja/green-circle.png +0 -0
- data/doc/images/screenshots/ja/night-black-raw.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-raw.png +0 -0
- data/doc/images/screenshots/ja/red-frame.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/images/us.png +0 -0
- data/doc/index.html.en +48 -0
- data/doc/index.html.ja +48 -0
- data/doc/ja/about.rd +21 -0
- data/doc/ja/development.rd +49 -0
- data/doc/ja/faq.rd +177 -0
- data/doc/ja/hiki.hiki +319 -0
- data/doc/ja/how-to-make/hiki.hiki +9 -0
- data/doc/ja/how-to-make/index.rd +25 -0
- data/doc/ja/how-to-make/pdf.rd +8 -0
- data/doc/ja/how-to-make/rd.rd +83 -0
- data/doc/ja/how-to-make/theme.rd +142 -0
- data/doc/ja/index.rd +283 -0
- data/doc/ja/install/homebrew.rd +196 -0
- data/doc/ja/install/index.rd +65 -0
- data/doc/ja/install/macports.rd +105 -0
- data/doc/ja/install/windows.rd +100 -0
- data/{NEWS.ja → doc/ja/news.rd} +84 -3
- data/doc/ja/rd.rd +489 -0
- data/doc/ja/sample/hiki/rabbit.hiki +405 -0
- data/doc/ja/sample/index.rd +11 -0
- data/doc/ja/sample/rd/rabbit.rd +475 -0
- data/doc/ja/slides.rd +29 -0
- data/doc/ja/usage.rd +380 -0
- data/doc/ja/users.rd +173 -0
- data/doc/javascripts/jquery-ui.js +11544 -0
- data/doc/javascripts/jquery.js +7179 -0
- data/doc/screenshot.en.rab +10 -0
- data/doc/screenshot.ja.rab +10 -0
- data/lib/rabbit/action/toggle.rb +0 -14
- data/lib/rabbit/canvas.rb +42 -46
- data/lib/rabbit/console.rb +9 -1
- data/lib/rabbit/front.rb +1 -1
- data/lib/rabbit/keys.rb +0 -8
- data/lib/rabbit/logger/gui.rb +3 -5
- data/lib/rabbit/parser/pdf.rb +1 -1
- data/lib/rabbit/parser/wiki/output.rb +17 -1
- data/lib/rabbit/rabbit.rb +12 -1
- data/lib/rabbit/renderer/base.rb +0 -25
- data/lib/rabbit/renderer/display/clutter-embed.rb +5 -69
- data/lib/rabbit/renderer/display/drawing-area.rb +0 -2
- data/lib/rabbit/renderer/display/key-handler.rb +0 -8
- data/lib/rabbit/source/base.rb +4 -0
- data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +4 -8
- data/lib/rabbit/theme/clutter-comment/clutter-comment.rb +76 -0
- data/lib/rabbit/theme/clutter-comment/property.rb +3 -0
- data/lib/rabbit/theme/color-circle/color-circle.rb +3 -0
- data/lib/rabbit/theme/dark-gradation/dark-gradation.rb +187 -0
- data/lib/rabbit/theme/dark-gradation/property.rb +3 -0
- data/lib/rabbit/theme/debian/debian.rb +125 -145
- data/lib/rabbit/theme/default/default.rb +6 -0
- data/lib/rabbit/theme/footer-comment/footer-comment.rb +46 -0
- data/lib/rabbit/theme/footer-comment/property.rb +3 -0
- data/lib/rabbit/theme/image/image.rb +3 -2
- data/lib/rabbit/theme/per-slide-background-color/property.rb +1 -1
- data/lib/rabbit/theme/slide-number/slide-number.rb +9 -3
- data/lib/rabbit/theme/stream-comment/property.rb +3 -0
- data/lib/rabbit/theme/stream-comment/stream-comment.rb +66 -0
- data/lib/rabbit/theme/tag/property.rb +1 -1
- data/lib/rabbit/theme/title-background-image/title-background-image.rb +6 -5
- data/lib/rabbit/theme/twitter-comment/property.rb +4 -0
- data/lib/rabbit/theme/twitter-comment/twitter-comment.rb +15 -0
- data/lib/rabbit/twitter.rb +216 -0
- data/lib/rabbit/utils.rb +26 -0
- data/misc/emacs/README.ja +1 -1
- data/misc/emacs/rabbit-mode.el +1 -1
- data/po/en/rabbit.po +429 -267
- data/po/fr/rabbit.po +440 -268
- data/po/ja/rabbit.po +455 -270
- data/po/rabbit.pot +2567 -0
- data/sample/rabbit-en.hiki +384 -0
- data/sample/rabbit-en.rd +1 -1
- data/sample/rabbit-implementation.rd +1 -1
- data/sample/rabbit.hiki +85 -13
- data/sample/rabbit.rd +1 -1
- data/sample/theme-bench-en.hiki +100 -0
- data/sample/theme-bench.hiki +101 -0
- metadata +413 -118
- data/README.en +0 -850
- data/README.ja +0 -885
- data/bin/rabbit.bat +0 -8
- 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/lib/rabbit/comment-canvas.rb +0 -21
- data/lib/rabbit/comment/log.rb +0 -74
- data/lib/rabbit/renderer/display/comment-drawing-area.rb +0 -175
- data/lib/rabbit/renderer/display/comment.rb +0 -194
- data/lib/rabbit/theme/comment/comment.rb +0 -5
- data/lib/rabbit/theme/comment/property.rb +0 -3
- data/lib/rt/rt2html-lib.rb +0 -157
- data/lib/rt/rtparser.rb +0 -226
- data/lib/rt/rtvisitor.rb +0 -68
- data/lib/rwiki/soap/common.rb +0 -5
- data/lib/rwiki/soap/driver.rb +0 -43
- data/lib/rwiki/soap/servant.rb +0 -78
- data/sample/asahina/alice.png +0 -0
- data/sample/asahina/yukiusa.png +0 -0
- data/sample/momo/banner/bn1.png +0 -0
- data/sample/momo/banner/bn2.png +0 -0
- data/sample/momo/banner/bn_psd.psd +0 -0
- data/sample/momo/banner/bn_psd2.psd +0 -0
- data/sample/momo/tailavi/tailavi-ruby.png +0 -0
- data/sample/momo/tailavi/tailavi-ruby.psd +0 -0
- data/sample/momo/tailavi/tailavi-taiyaki.png +0 -0
- data/sample/momo/tailavi/tailavi-taiyaki.psd +0 -0
- data/sample/momo/tailavi/tailavi-yokubari.png +0 -0
- data/sample/momo/tailavi/tailavi-yokubari.psd +0 -0
- data/sample/momo/tailavi/taiyaki.png +0 -0
- data/sample/momo/tailavi/taiyaki.psd +0 -0
- data/sample/momo/usako/blue_dot.png +0 -0
- data/sample/momo/usako/green_dot.png +0 -0
- data/sample/momo/usako/rabbit.png +0 -0
- data/sample/momo/usako/rabbit_mimi.png +0 -0
- data/sample/momo/usako/rabbit_mimi2.png +0 -0
- data/sample/momo/usako/red_dot.png +0 -0
- data/sample/momo/usako/ruby.png +0 -0
- data/sample/momo/usako/ruby_new.png +0 -0
- data/sample/momo/usako/usa1.png +0 -0
- data/sample/momo/usako/usa2.png +0 -0
- data/sample/momo/usako/usa3.png +0 -0
- data/sample/momo/usako/usako_psd.psd +0 -0
- data/sample/momo/usako/usako_psd_200.png +0 -0
- data/sample/rabbit-balloon.eps +0 -233
- data/sample/sode/kame-color.riff +0 -0
- data/sample/sode/kame.riff +0 -0
- data/sample/usatti/kame-taro.png +0 -0
- data/sample/usatti/rabbit-pink-logo.png +0 -0
- data/sample/usatti/rabbit-pink-logo2.png +0 -0
- data/sample/usatti/ruby-pink-circle-logo.png +0 -0
- data/sample/usatti/ruby-pink-circle.png +0 -0
- data/sample/usatti/ruby-pink-polygon-logo.png +0 -0
- data/sample/usatti/ruby-pink-polygon.png +0 -0
- data/sample/usatti/tanu-kitaro.png +0 -0
- data/sample/usatti/usa-taro.png +0 -0
- data/sample/usatti/yukidaru-taro.png +0 -0
data/lib/rt/rt2html-lib.rb
DELETED
@@ -1,157 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
rt2html-lib.rb
|
3
|
-
$Id: rt2html-lib.rb 433 2006-11-07 00:45:14Z znz $
|
4
|
-
=end
|
5
|
-
require 'rt/rtvisitor'
|
6
|
-
|
7
|
-
module RT
|
8
|
-
class RT2HTMLVisitor < RTVisitor
|
9
|
-
OUTPUT_SUFFIX = "html"
|
10
|
-
INCLUDE_SUFFIX = ["html"]
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
def block(name)
|
17
|
-
%Q[<!-- #{name} -->\n] +
|
18
|
-
yield +
|
19
|
-
%Q[<!-- #{name} end -->\n\n]
|
20
|
-
end
|
21
|
-
private :block
|
22
|
-
|
23
|
-
def setup
|
24
|
-
block('setup') do
|
25
|
-
s = %Q[<table border="1">\n]
|
26
|
-
s << %Q[<caption>#{caption}</caption>\n] if caption
|
27
|
-
s
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def teardown
|
32
|
-
block('teardown') do
|
33
|
-
%Q[</table>\n]
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def cell_element(cell, name)
|
38
|
-
rs, cs = cell.rowspan, cell.colspan
|
39
|
-
if rs == 1 and cs == 1
|
40
|
-
ret = "<#{name}>"
|
41
|
-
elsif rs == 1
|
42
|
-
ret = %Q[<#{name} colspan="#{cs}">]
|
43
|
-
elsif cs == 1
|
44
|
-
ret = %Q[<#{name} rowspan="#{rs}">]
|
45
|
-
else
|
46
|
-
ret = %Q[<#{name} colspan="#{cs}" rowspan="#{rs}">]
|
47
|
-
end
|
48
|
-
ret
|
49
|
-
end
|
50
|
-
private :cell_element
|
51
|
-
|
52
|
-
def visit_Header(ary = @header)
|
53
|
-
block('Header') do
|
54
|
-
if ary.empty?
|
55
|
-
""
|
56
|
-
else
|
57
|
-
ret = "<thead>\n"
|
58
|
-
ary.each do |line|
|
59
|
-
ret << '<tr>'
|
60
|
-
each_cell(line) do |cell|
|
61
|
-
ret << cell_element(cell, 'th')
|
62
|
-
ret << cell.value
|
63
|
-
ret << '</th>'
|
64
|
-
end
|
65
|
-
ret << "</tr>\n"
|
66
|
-
end
|
67
|
-
ret << "</thead>\n"
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
def visit_Body(ary = @body)
|
73
|
-
block('Body') do
|
74
|
-
ret = "<tbody>\n"
|
75
|
-
ary.each do |line|
|
76
|
-
ret << '<tr>'
|
77
|
-
each_cell(line) do |cell|
|
78
|
-
ret << cell_element(cell, %Q[td align="#{cell.align.id2name}"])
|
79
|
-
ret << cell.value
|
80
|
-
ret << '</td>'
|
81
|
-
end
|
82
|
-
ret << "</tr>\n"
|
83
|
-
end
|
84
|
-
ret << "</tbody>\n"
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
end # RT2HTMLVisitor
|
89
|
-
end
|
90
|
-
$Visitor_Class = RT::RT2HTMLVisitor
|
91
|
-
if __FILE__ == $0
|
92
|
-
require 'runit-init'
|
93
|
-
|
94
|
-
include RT
|
95
|
-
class RT2HTMLVisitorTest < RUNIT::TestCase
|
96
|
-
def setup
|
97
|
-
@x = RT2HTMLVisitor::new
|
98
|
-
@x.visit(RTParser::parse(<<-END))
|
99
|
-
caption = ɽ�ƥ���
|
100
|
-
|
101
|
-
, �ʹ�, == , �� , ==
|
102
|
-
|| , �� , �� ,����,�
|
103
|
-
|
104
|
-
x , 1.0 , 2.0, 1.1, 1.2
|
105
|
-
y , 0.4 , 0.5, 0.3, 0.1
|
106
|
-
END
|
107
|
-
end
|
108
|
-
|
109
|
-
def uncomment(str)
|
110
|
-
rep = "\001"
|
111
|
-
#if str =~ /\A<!--\s+.+?\s+-->\n(.+)<!--\s+.+?\s+-->\n\n\Z/p# POSIX
|
112
|
-
if str.gsub(/\n/, rep) =~ /\A<!--\s+.+?\s+-->#{rep}(.+)<!--\s+.+?\s+-->#{rep}#{rep}\Z/
|
113
|
-
#$1
|
114
|
-
$1.gsub(/#{rep}/, "\n")
|
115
|
-
else
|
116
|
-
assert_fail("not RTBlock format")
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_setup
|
121
|
-
lines =
|
122
|
-
%Q[<table border="1">\n] +
|
123
|
-
%Q[<caption>ɽ�ƥ���</caption>\n]
|
124
|
-
assert_equal(lines, uncomment(@x.setup))
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_teardown
|
128
|
-
assert_equal(%Q[</table>\n], uncomment(@x.teardown))
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_visit_Header
|
132
|
-
lines =
|
133
|
-
%Q[<thead>\n] +
|
134
|
-
%Q[<tr><th rowspan="2"></th><th colspan="2">�ʹ�</th><th colspan="2">��</th></tr>\n] +
|
135
|
-
%Q[<tr><th>��</th><th>��</th><th>����</th><th>�</th></tr>\n] +
|
136
|
-
%Q[</thead>\n]
|
137
|
-
assert_equal(lines, uncomment(@x.visit_Header))
|
138
|
-
end
|
139
|
-
|
140
|
-
def test_visit_Body
|
141
|
-
lines =
|
142
|
-
%Q[<tbody>\n] +
|
143
|
-
%Q[<tr><td align="left">x</td><td align="right">1.0</td><td align="right">2.0</td><td align="right">1.1</td><td align="right">1.2</td></tr>\n] +
|
144
|
-
%Q[<tr><td align="left">y</td><td align="right">0.4</td><td align="right">0.5</td><td align="right">0.3</td><td align="right">0.1</td></tr>\n] +
|
145
|
-
%Q[</tbody>\n]
|
146
|
-
assert_equal(lines, uncomment(@x.visit_Body))
|
147
|
-
end
|
148
|
-
|
149
|
-
def test0
|
150
|
-
assert_equal(RT::RTCell, RT::RTCell::new("a").type)
|
151
|
-
end
|
152
|
-
|
153
|
-
end
|
154
|
-
testrunner RT2HTMLVisitorTest
|
155
|
-
end
|
156
|
-
|
157
|
-
|
data/lib/rt/rtparser.rb
DELETED
@@ -1,226 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
=begin
|
3
|
-
rtparser.rb
|
4
|
-
$Id: rtparser.rb 433 2006-11-07 00:45:14Z znz $
|
5
|
-
=end
|
6
|
-
module RT
|
7
|
-
class RTCell
|
8
|
-
def initialize(value, align = nil)
|
9
|
-
@rowspan = @colspan = 1
|
10
|
-
@value = value
|
11
|
-
@align = case align # {:left, :center :right}
|
12
|
-
when :left, :center, :right
|
13
|
-
align
|
14
|
-
when nil
|
15
|
-
if /^[+\-]?[0-9]+\.?[0-9]*/ === value
|
16
|
-
:right
|
17
|
-
else
|
18
|
-
:left
|
19
|
-
end
|
20
|
-
else
|
21
|
-
raise "[BUG]Illegal align type"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
def == (x)
|
25
|
-
case x
|
26
|
-
when self.class
|
27
|
-
self.value == "" && x.value == "" || self.value == x.value && self.align == x.align
|
28
|
-
else
|
29
|
-
false
|
30
|
-
end
|
31
|
-
end
|
32
|
-
def inspect
|
33
|
-
if value==""
|
34
|
-
"()"
|
35
|
-
else
|
36
|
-
a = case align
|
37
|
-
when :left
|
38
|
-
"l"
|
39
|
-
when :center
|
40
|
-
"c"
|
41
|
-
when :right
|
42
|
-
"r"
|
43
|
-
else
|
44
|
-
raise "[BUG]Illegal align type"
|
45
|
-
end
|
46
|
-
"#{a}(#{value})"
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
attr_reader :value, :align
|
51
|
-
attr_accessor :rowspan, :colspan
|
52
|
-
end
|
53
|
-
|
54
|
-
class RTParser
|
55
|
-
DefaultConfig = {
|
56
|
-
'delimiter' => "[,\t]",
|
57
|
-
'rowspan' => "||",
|
58
|
-
'colspan' => "==",
|
59
|
-
'escape' => nil,
|
60
|
-
'caption' => nil,
|
61
|
-
}
|
62
|
-
|
63
|
-
def initialize(str="")
|
64
|
-
@str = str.dup
|
65
|
-
normalize_linefeed! @str
|
66
|
-
@config_line = []
|
67
|
-
@header_line = []
|
68
|
-
@body_line = []
|
69
|
-
@config = DefaultConfig.dup
|
70
|
-
@header = []
|
71
|
-
@body = []
|
72
|
-
end
|
73
|
-
attr_reader :str, :config, :header, :body
|
74
|
-
|
75
|
-
def normalize_linefeed!(str)
|
76
|
-
str.gsub!("\r\n", "\n")
|
77
|
-
str.gsub!("\r", "\n")
|
78
|
-
end
|
79
|
-
|
80
|
-
def self::parse(str)
|
81
|
-
obj = self::new str
|
82
|
-
obj.make_blocks
|
83
|
-
obj.parse_config
|
84
|
-
obj.parse_header
|
85
|
-
obj.parse_body
|
86
|
-
obj.calc_span(obj.header)
|
87
|
-
obj.calc_span(obj.body)
|
88
|
-
obj
|
89
|
-
end
|
90
|
-
|
91
|
-
def blocks
|
92
|
-
[@config_line, @header_line, @body_line]
|
93
|
-
end
|
94
|
-
|
95
|
-
def make_blocks(str = @str)
|
96
|
-
part = str.split(/\n\n/).collect{|x| x.split(/\n/)}
|
97
|
-
case part.length
|
98
|
-
when 0
|
99
|
-
when 1
|
100
|
-
@body_line, = part
|
101
|
-
when 2
|
102
|
-
@config_line, @body_line = part
|
103
|
-
when 3
|
104
|
-
@config_line, @header_line, @body_line = part
|
105
|
-
else
|
106
|
-
raise "RT: blocks are too many."
|
107
|
-
end
|
108
|
-
self
|
109
|
-
end
|
110
|
-
|
111
|
-
def parse_config(lines = @config_line)
|
112
|
-
lines.each do |line|
|
113
|
-
case line
|
114
|
-
when /^#/ # comment
|
115
|
-
when /^\s*(\S+)\s*=\s*(.+)$/
|
116
|
-
@config[$1] = $2
|
117
|
-
else
|
118
|
-
raise "RT: syntax error in config block"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
self
|
122
|
-
end
|
123
|
-
|
124
|
-
def split2(str,re)
|
125
|
-
ret = str.split(re, -1)
|
126
|
-
end
|
127
|
-
private :split2
|
128
|
-
|
129
|
-
ESCAPE_TMP = "\001\002"
|
130
|
-
def _escape!(str)
|
131
|
-
esc = config['escape']
|
132
|
-
str.gsub!(/#{Regexp.quote(esc)}#{config['delimiter']}/, ESCAPE_TMP) if esc
|
133
|
-
end
|
134
|
-
private :_escape!
|
135
|
-
|
136
|
-
def _unescape!(str)
|
137
|
-
str.gsub!(/#{ESCAPE_TMP}/, config['delimiter'])
|
138
|
-
end
|
139
|
-
private :_unescape!
|
140
|
-
|
141
|
-
def parse_table_data(lines) # iterator
|
142
|
-
ret = []
|
143
|
-
lines.each do |line|
|
144
|
-
case line
|
145
|
-
when /^#/ # comment
|
146
|
-
else
|
147
|
-
_escape! line
|
148
|
-
ret << split2(line, /\s*#{config['delimiter']}\s*/).collect {|x|
|
149
|
-
_unescape! x
|
150
|
-
yield(x.strip)
|
151
|
-
}
|
152
|
-
end
|
153
|
-
end
|
154
|
-
unless ret.find_all{|x| x.length == ret[0].length} == ret
|
155
|
-
raise "RT: different column size"
|
156
|
-
end
|
157
|
-
ret
|
158
|
-
end
|
159
|
-
private :parse_table_data
|
160
|
-
|
161
|
-
def _make_cell(x, align)
|
162
|
-
case x
|
163
|
-
when config['rowspan'], config['colspan']
|
164
|
-
x
|
165
|
-
else
|
166
|
-
RTCell::new(x, align)
|
167
|
-
end
|
168
|
-
end
|
169
|
-
private :_make_cell
|
170
|
-
|
171
|
-
def parse_header(lines = @header_line)
|
172
|
-
@header = parse_table_data(lines) {|x|
|
173
|
-
_make_cell x, :center
|
174
|
-
}
|
175
|
-
self
|
176
|
-
end
|
177
|
-
|
178
|
-
def parse_body(lines = @body_line)
|
179
|
-
@body = parse_table_data(lines) {|x|
|
180
|
-
_make_cell x, nil
|
181
|
-
}
|
182
|
-
self
|
183
|
-
end
|
184
|
-
|
185
|
-
def calc_span(tbl)
|
186
|
-
return if tbl.empty?
|
187
|
-
cols = tbl[0].length
|
188
|
-
tbl.each do |row|
|
189
|
-
row.each_with_index do |elm, j|
|
190
|
-
case elm
|
191
|
-
when String
|
192
|
-
when RTCell
|
193
|
-
nspan = 1
|
194
|
-
1.upto(cols-j-1) do |k|
|
195
|
-
break unless row[j+k] == config['colspan']
|
196
|
-
nspan += 1
|
197
|
-
end
|
198
|
-
row[j].colspan = nspan
|
199
|
-
else
|
200
|
-
raise "[BUG] invalid cell"
|
201
|
-
end
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
rows = tbl.length
|
206
|
-
0.upto(cols-1) do |j|
|
207
|
-
0.upto(rows-1) do |i|
|
208
|
-
case tbl[i][j]
|
209
|
-
when String
|
210
|
-
when RTCell
|
211
|
-
nspan = 1
|
212
|
-
1.upto(rows-i-1) do |k|
|
213
|
-
break unless tbl[i+k][j] == config['rowspan']
|
214
|
-
nspan += 1
|
215
|
-
end
|
216
|
-
tbl[i][j].rowspan = nspan
|
217
|
-
else
|
218
|
-
raise "[BUG] invalid cell"
|
219
|
-
end
|
220
|
-
end
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end # class RTCell, RTParser
|
224
|
-
end # module RT
|
225
|
-
|
226
|
-
|
data/lib/rt/rtvisitor.rb
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
=begin
|
3
|
-
rtvisitor.rb
|
4
|
-
$Id: rtvisitor.rb 433 2006-11-07 00:45:14Z znz $
|
5
|
-
=end
|
6
|
-
require 'rt/rtparser'
|
7
|
-
|
8
|
-
module RT
|
9
|
-
class RTVisitor
|
10
|
-
def each_cell(ary)
|
11
|
-
ary.each do |x|
|
12
|
-
if x.class == RT::RTCell
|
13
|
-
yield x
|
14
|
-
else
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
private :each_cell
|
19
|
-
|
20
|
-
def initialize
|
21
|
-
end
|
22
|
-
attr_reader :rt, :header, :body, :caption
|
23
|
-
attr_accessor :filename, :charcode
|
24
|
-
|
25
|
-
def self.visit(parsed)
|
26
|
-
self::new.visit(parsed)
|
27
|
-
end
|
28
|
-
|
29
|
-
def visit(parsed)
|
30
|
-
@filename = @charset = nil
|
31
|
-
@rt = parsed
|
32
|
-
@header = @rt.header
|
33
|
-
@body = @rt.body
|
34
|
-
@caption = @rt.config['caption']
|
35
|
-
|
36
|
-
setup +
|
37
|
-
visit_Caption +
|
38
|
-
visit_Header +
|
39
|
-
visit_Body +
|
40
|
-
teardown
|
41
|
-
end
|
42
|
-
|
43
|
-
def setup
|
44
|
-
""
|
45
|
-
end
|
46
|
-
|
47
|
-
def teardown
|
48
|
-
""
|
49
|
-
end
|
50
|
-
|
51
|
-
def visit_Caption
|
52
|
-
""
|
53
|
-
end
|
54
|
-
|
55
|
-
def visit_Header
|
56
|
-
""
|
57
|
-
end
|
58
|
-
|
59
|
-
def visit_Body
|
60
|
-
""
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|