2007年 10月 06日

RDoc テンプレート Resh

RDoc のデフォルトテンプレとか、出回ってるテンプレみたかぎりとか、なんていうか、色が濃すぎて、みんな嫌いなので RDoc のソースよみながら書いてみた。
http://safeeval.rubyforge.org/ こんなかんじになります。safeeval はちいさすぎていまいちだけど、ローカル gem の rdoc とかにつかうといいと思う。

配色とかは search.cpan.org っぽい感じにした。Ruby カラーの赤ってなんかドキュメントにいれるとイライラしてしまうので、というかドキュメント見てるときってだいたいイライラしてるので心を落ちつかせる青系がいいと思う。

svn co http://svn.coderepos.org/share/lang/ruby/rdoc/generators/template/html/resh/ resh

local gem の rdoc をアップデートするには

$ cat ~/.gemrc
rdoc: --template ~/coderepos/lang/ruby/rdoc/generators/template/html/resh/resh.rb --inline-source
$ sudo gem rdoc --all --no-ri --config-file ~/.gemrc 

もし gem つくったときにデフォルトのテンプレートにしたいなら、Rake::RDocTask にオプション設定

        rdoc.template = "#{ENV["HOME"]}/coderepos/lang/ruby/rdoc/generators/template/html/resh/resh.rb" 

最初に表示されるページは指定されたオプションをガン無視して、README (あれば) と、クラス・メソッド・ファイルのインデックスをあわせたみたいなのにした。わりとうまくいく。
あと --inline-source オプションも常に無視して、常に inline-source 表示するようにしてる。でも邪魔は邪魔なので、JS で見えたり消えたりするようにしてる。ボックスが目立たないから最初はとまどうかもしれないけど、目立つべきじゃないのでこうしてる。慣れる。


実装は hate rdoc/template って感じでわざわざ ERB つかうように RDoc のメソッドをオーバーライドしてる。だから html_generator の実装が変わるとバグるかもしれない。generator ごと新しく作ろうと思ったけど、名前に困ったのでやめた。どっちにしろほとんどコピペになるし……互換性なくなったらそうしよう。