[Japanese] [English]


Index


Title: RTtool

1 更新履歴

1.1 [2009/01/25] 1.0.3 released

1.2 [2006/09/20] 1.0.2 released

1.3 [2005/10/28] 1.0.1 released

1.4 [2005/10/26] 1.0.0 released

1.5 [2001/11/15] 0.1.7 released

1.6 [2001/08/07] 0.1.6 released

1.7 [2001/07/17] 0.1.5 released

1.8 [2001/07/09] 0.1.4 released

1.9 [2001/06/03] 0.1.3 released

2 概要

RTtoolはシンプルな作表ツール。 RDの売りである可読性さまざまなフォーマットに変換可能を継承し、 RDtoolの実験的機能ではあるがfilter機能によりRDと融合させることが可能である。 いってみれば兄弟みたいなものである。

今のところ、RTはHTMLとPlain text(要w3m)へ変換できる。 w3mのWindows版はCygwinしかないので、Windowsの人はCygwinを使う必要がある。 HTMLへの変換のみ必要ならばw3mは不要である。

設計の方もRDtoolと似せている。 parserとvisitorに分け、rt2html-lib.rbを作成。

3 インストール

以下のコマンドを実行。

ruby -ropen-uri -e 'URI("http://www.rubyist.net/~rubikitch/archive/rttool-1.0.3.tar.gz").read.display' > rttool-1.0.3.tar.gz
tar xzvf rttool-1.0.3.tar.gz

失敗する場合は次のリンクからダウンロード。

それから次のコマンドでインストール。

cd rttool-1.0.3
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
  1. パッケージにある rt ディレクトリを $LOAD_PATH の通ったディレクトリにコピーする。

  2. rt/rt2 コマンドを PATH の通ったディレクトリに移動する。
  3. rt/dot.rt.rd2rc

4 RTの文法

5 属性一覧

ConfigBlockでは次の属性が設定できる。

caption

表のタイトルを設定する。

delimiter

データの区切を指定する。

rowspan

左の列を伸ばす指定。(デフォルトは==

colspan

上の行を伸ばす設定。(デフォルトは||

escape

delimiterをデータに含める必要があるときにこの属性で指定された文字を前置する。 デフォルトでは無効となっている。

6

6.1 一番簡単なRT

値をカンマで区切るのが一番簡単なRT。

$ cat examples/easiest.rt
1, 2, 3
4, 5, 6
7, 8, 9

$ rt2 examples/easiest.rt
┌─┬─┬─┐
│ 1│ 2│ 3│
├─┼─┼─┤
│ 4│ 5│ 6│
├─┼─┼─┤
│ 7│ 8│ 9│
└─┴─┴─┘

$ rt2 -r rt/rt2html-lib examples/easiest.rt
<!-- setup -->
<table border="1">
<!-- setup end -->

<!-- Header -->
<!-- Header end -->

<!-- Body -->
<tbody>
<tr><td align="right">1</td><td align="right">2</td><td align="right">3</td></tr>
<tr><td align="right">4</td><td align="right">5</td><td align="right">6</td></tr>
<tr><td align="right">7</td><td align="right">8</td><td align="right">9</td></tr>
</tbody>
<!-- Body end -->

<!-- teardown -->
</table>
<!-- teardown end -->

6.2 エスケープ

RTはdelimiterを自由に指定できるが、delimiterを地の文に含める必要があるとき、

エスケープは、delimiter文字の前に置くことで、delimiterではなくて地の文とみなされる。

$ cat examples/escape.rt
delimiter = ;
escape = \

\z   ; \;1 ; 2

$ rt2 examples/escape.rt
┌─┬─┬─┐
│\z│;1│ 2│
└─┴─┴─┘

$ rt2 -r rt/rt2html-lib examples/escape.rt
<!-- setup -->
<table border="1">
<!-- setup end -->

<!-- Header -->
<!-- Header end -->

<!-- Body -->
<tbody>
<tr><td align="left">\z</td><td align="left">;1</td><td align="right">2</td></tr>
</tbody>
<!-- Body end -->

<!-- teardown -->
</table>
<!-- teardown end -->

6.3 ちょっと複雑なRT

$ cat examples/test1.rt
caption = Test Table

     , Human, == , Dog , ==
||  , M  , F ,M,F

  x  , 1.0 , 2.0, 1.1, 1.2
  y  , 0.4 , 0.5, 0.3, 0.1

$ rt2 examples/test1.rt
          Test Table
┌─┬─────┬─────┐
│  │  Human   │   Dog    │
│  ├──┬──┼──┬──┤
│  │ M  │ F  │ M  │ F  │
├─┼──┼──┼──┼──┤
│x │ 1.0│ 2.0│ 1.1│ 1.2│
├─┼──┼──┼──┼──┤
│y │ 0.4│ 0.5│ 0.3│ 0.1│
└─┴──┴──┴──┴──┘

$ rt2 -r rt/rt2html-lib examples/test1.rt
<!-- setup -->
<table border="1">
<caption>Test Table</caption>
<!-- setup end -->

<!-- Header -->
<thead>
<tr><th rowspan="2"></th><th colspan="2">Human</th><th colspan="2">Dog</th></tr>
<tr><th>M</th><th>F</th><th>M</th><th>F</th></tr>
</thead>
<!-- Header end -->

<!-- Body -->
<tbody>
<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>
<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>
</tbody>
<!-- Body end -->

<!-- teardown -->
</table>
<!-- teardown end -->

6.4 RDに埋め込む

さらに、RDに埋め込むこともできるのだ。 RTはRDではないのでRDのfilter機能を使うことになる。 これで表つきのテキストを生成できる。 beginとendが煩雑なのはRDtoolの仕様なのでしょうがない。 コマンドラインが長くなるのでrdrt2というコマンドを用意。

$ cat examples/rttest.rd
=begin
= Sample RD/RT

This RD contains a table.
It is so-called RD/RT.

=end
=begin RT
caption = Test Table

     , Human, == , Dog , ==
||  , M  , F ,M,F

  x  , 1.0 , 2.0, 1.1, 1.2
  y  , 0.4 , 0.5, 0.3, 0.1

=end
=begin
It is simple.
=end

$ rdrt2 examples/rttest.rd | w3m -dump -T text/html
= Sample RD/RT

This RD contains a table. It is so-called RD/RT.

          Test Table
┌─┬─────┬─────┐
│  │  Human   │   Dog    │
│  ├──┬──┼──┬──┤
│  │ M  │ F  │ M  │ F  │
├─┼──┼──┼──┼──┤
│x │ 1.0│ 2.0│ 1.1│ 1.2│
├─┼──┼──┼──┼──┤
│y │ 0.4│ 0.5│ 0.3│ 0.1│
└─┴──┴──┴──┴──┘

It is simple.

7 なぜにRT

8 TODO

約9年、いろいろなことを考えていたが現在のシンプルな仕様のままがいいと判断した。

9 ライセンス

Ruby'sとします。


Back to Top

Valid XHTML 1.0!
rubikitch(rubikitch __nos_pam__ At __nos_pam__ ruby-lang DoT org)

Mail Form
Name Mail
URL