rdtoolで楽々ドキュメント生活(rdtoolインストール編)

えーと、これは結構相手の限られた話題です。
私は良く、誰かに読んでもらう事を目的としてhtmlファイルでドキュメントを作成します。あ、俺も私もそういう事する!という方は、この続きをお読みください。そうでない人で、でもrubyを触る人はそれなりに読んであげてください。
ドキュメント作成フォーマットとしてはテキスト、html、ワード、tex等色々有りますが、個人的にはhtmlが一番好きです。理由は、テキストや画像のレイアウトを自動で行ってくれる点と、画像の取り扱いが結構楽な点です。また、リンクが作成できるのも大きいですね。
そんなわけで今までドキュメントはまじめにhtmlを手打ちでやってきたのですが、タグの開始や終了を一々脳内で把握するのが面倒で、特にネストの段数の深くなったdivタグなどはかなりつらくなります。章立てでhtmlを書いているときに章のインデックス番号を手で振らなくてはならないのも死にそうなところです。
で、はてなみたいに簡単な変換ルールでテキストからhtmlに変換してくれるツールってないかなーと探していたところ、rdtoolというrubyで動くツールを発見しました。
実際使ってみたところ、ドキュメントを書く手間が体感で1/3くらいには減りました。もはやこれ*1無しにはドキュメントなんて書いてられませんというくらい重宝してます。
今日は、そのツールを紹介しようと思います。ちなみに私の環境ではrubycygwin上で動かしてます。

インストール方法

まず、インストール方法ですが、
http://raa.ruby-lang.org/list.rhtml?name=RDtool
からファイルをダウンロードしてインストールします。
次に、フォルダを適当に解凍して、フォルダの適切な場所で*2

ruby setup.rb

を実行するだけです。

使用方法

使用方法は、適切なフォーマットのrdファイルを作成して、

rd2 rdfile.rd > outputfile

と入力するだけです。すると、rdファイルを元にそれらしいhtmlファイルを生成してくれます。

文法

私はごく簡単な文法しか使っていませんが、それでも現在のドキュメントを書く用事にはかなり役に立ちました。以下に、私の使っている文法をリストアップします。

章を作成する

文頭に"="記号を配置することで、その行は章として認識されます。はてなの"*"と同じです。はてなと同じで、"="記号を連続することで、章の深さを決められます

(例)
= 1章だよ
== 1.1章だよ
=== 1.1.1章だよ
リストを作成する

文頭に"*"をつけると、それはリスト要素(ulとli)になります。はてなの"-"にあたります。

(例)
 *信じる
 *許す
 *待つ
数字付きリストを作成する

文頭に"(1)"みたいにカッコ付き番号を書くと、それはリスト要素(olとli)になります。はてなの"+"にあたります。カッコ付き番号の中身はなんであってもかってに1から順番に番号をつけてくれるそうです。この適当さが素敵。

(例)
(1)数字付きリスト1番目
(2)数字付きリスト2番目
(3)数字付きリスト3番目
定義リストを作成する

文頭に":"記号を配置し、続けて何か書きます(A)。次に改行して、空白をいくつかいれて、何か書きます(B)。
すると、(A)がhtmlでいうdt要素になり、(B)がdd要素になります。

(例)
:りんご
  赤くて丸い
:みかん
  きいろくて丸い

私は主にこれと、あとラベル機能*3しか使っていませんが、これでたいがいの用は間に合います。

画像を入れたり機能を追加したい!!

デフォルトのrd2には、私の欲しい機能がいくつかぬけていました。

ヘッダに手を加えられない
スタイルシートの指定ができません
画像を入れられない
これは非常に困りました
htmlタグを入れられない
これも困りました

で、webを漁っていたところ、とある便利な拡張ライブラリを発見したのでした。(続く)

*1:もしくは同類の機能を有するツールがあればなんでもいいわけですが。

*2:解凍すれば分かります

*3:これも相当旨いのですが説明しにくいので書きません