ruby-man-1.1b8 で、name タグがついているものを拾い集めて
みました。

ruby をはじめたばかりで、他の方が書いたスクリプトを読む
のに、「マニュアルを引く」というのがなかなか思うように探
し当てられなくて、一度読んだけれど「あれはどこだっけ?」
ということもあったので、作ってしまいました。

これを作っている途中で「MethodIndex.html」の存在を知って...

# index.html からは参照していませんよね?

不要だったかな? とも思いつつ、あればあったで便利だし、こ
の ruby-list のなかにも私のようなはじめたばかりのユーザ
もいると思うので、そういう方には役立ちそうなので。

残念ながら「name」タグのないものは引っかかりません。

# でも、あれだけたくさんタグをつけていてくれたまつもとさ
# んに感謝! マニュアル書きは大変ですから...

■ 使い方

$ ./mkidx.rb 「マニュアルのディレクトリ」/*.html >ruby-idx.html
$ mv ruby-idx.html 「マニュアルのディレクトリ」

HTML のファイルができます。あとは Web ブラウザで参照くだ
さい。とても単純な HTML の形式ですが、目的の項目を探すと
いうのには使えると思います。

■ ソースコード

ちょっと強引な部分もありますが、「name」タグがある場合は、
できるだけ拾い集めるようにしたかったためです。

------------------------------
#! /usr/local/bin/ruby
# /home/tetsu/src/ruby/mkidx.rb
# Created: March 03,1998 Tuesday 21:30:27
# Author: tetsu(WATANABE Tetsuya)
# $Id$
# usage:

print <<E
<html>
<head>
<title>Ruby: manual index</title>
</head>
<body>
<dl>
E

$/ = nil

title = nil

while gets
  next if /(MethodIndex|index)\.html/ =~ File.basename(ARGF.filename)

  if /<title>(.+?)<\/title>/i
    if title
      print <<E
</ul>
E
    end

    title = $1
    print <<E
<dt> #{title}
<dd>
<ul>
E
  end

  $_.scan(/<a name=\"(.+?)\">((\n|.)*?)<\/a>/i) {
    name = $1
    item = $2
    if item.length == 0 or item == "\n"
      pos = $'.index("\n", 1)
      item = $'[0, pos]
    end

    item.gsub!(/(^\s+|<d[td]>|\n)/i, '')
    url = File.basename(ARGF.filename) + '#' + name
    print '<li> ', item, "\n"
  }

end

print <<E
</ul>
</dl>
</body>
</html>
E

exit
------------------------------

// Local Variables:
// mode: outline-minor
// outline-regexp: "^■+"
// End: