新井です。

>>> From: Toshiro Kuwabara <toshirok / yb3.so-net.ne.jp>
>>> Date: 20 Nov 1999 02:37:49 +0900
>>> Subject: [ruby-list:18766] Re: RD with Method Index (Re: I want rd2info (or rd2texi).)

> Toshです。

> あらいさんが要求していたのは"@findex"のようなものだと思っていたの
> ですが、そうでなくて"@defmethod"相当が欲しいってことですよね?

@findexなものよりは、@defmethodなものの方が好みなのはそうだ
と思います。単に慣れの問題かもしれませんけど。

ただ、元々の、西本さんの要求がそうであったように、
ruby-info.el 相当のことができる仕組み/情報を提供しさえすれ
ば、形式にこだわりはありません。

> 確かにTexinfoのようなものを見ると"@defmethod"相当はあったほうがいい
> のかも、と思えてきます。それが自然かも、と。

Texinfoは、リファレンスマニュアルを書くためにあると言っても
過言ではないように思います。逆に、RDはリファレンスマニュアル
のことを考慮しなさすぎだったかと。書けないわけじゃないけどそ
れを支援するもの、書きやすくするものがないんではないかな?

もちろん、HTMLによるrubyリファレンスマニュアルのようにRD で
作ることはできるとは思いますけど、それでは満足できないわけで
す。

> それで、ぱっと思い付く限りではやりかたは2通り。
>  (1) リファレンスみたいなものは、きっとRubyのリファレンスマニュアルと
>      だいたい同じ形式で書かれるだろうと仮定します。つまり、あるクラス
...
>      こんな感じになるであろうと仮定して、この形式に沿った文章構造の
>      ドキュメントならば、メソッド索引などの付加情報も抽出できるという
>      方法。

>  (2) メソッド宣言用の専用Headlineの文法を新しく定義する。
> 
> 1番目のやり方は間接的で、ドキュメントの書き方に制約をつけます。もっとも、
> この形式で書かなくてはいけないと言う訳ではありません。恩恵は得られなくなり
> ますが。

> さて、どうしたらいいでしょうか?

(1) は、rubyのgetopts.html のようなクラスを持たないライブラ
リで苦しいですね。(Texinfo版でもインデックスに現れてない) こ
の形式のフォーマットも決めた方がよいでしょうね。

XMLのような簡易DTDがあるとよいかも。

今、個人的にRuby/Tkのリファレンスが必要になりそうなのですが、
(1)の方法でrubytk.rdを書いて見ました。書いてる途中なのでまだ
まだ記述は足りませんけど、叩き台にはなるかと思います。

templateを最後に付けます。特にRuby/Tkでは、extend を多用する
ので「extendしているモジュール」を追加しました。

# rubytk.rd.gz をin.comingに置きました。しばらくin.comingに
# 置かせてください。>まつもとさん

これを書く上で、思ったのは。

=== method1
=== method2

のようなことをしても(見出しと見出しの間が離れるので)綺麗にエ
イリアスを表せないってのが気になりました。やっぱ、「見出し」
とは役割が違うよなぁっと。あと、引数とかも同じフォントになる
のが綺麗じゃない点で「見出し」の流用は苦しいかな。

このフォーマット専用のrd2xxx-lib.rdを作るなら、この辺りを考
慮するとより良いですね。

ところで、やっぱりRDって書きやすいですね。

=begin
= hoge
((<hoge>>)
=end
とかで、
/usr/local/lib/ruby/1.5/site_ruby/parser.rb:131:in `on_error':  (ParseError)
このエラーに苦しみましたけどね(さて、間違いはどこでしょう?^^;)


=begin = CLASS/MODULE NAME == スーパークラス: ((<>)) == インクルードしているモジュール: ((<>)) == extendしているモジュール ((<>)) == クラスメソッド: === == メソッド: === == モジュール関数: === == 定数: === =end