From: WATANABE Tetsuya Date: 1998-03-04T09:27:26+09:00 Subject: [ruby-list:6918] manual 1.18b index 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 < Ruby: manual index
E $/ = nil title = nil while gets next if /(MethodIndex|index)\.html/ =~ File.basename(ARGF.filename) if /(.+?)<\/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> <a href="', url, '">', item, "</a>\n" } end print <<E </ul> </dl> </body> </html> E exit ------------------------------ // Local Variables: // mode: outline-minor // outline-regexp: "^■+" // End: