林@守口市です。まつもとさんのお作りになったものに日頃よりお世話になっ
ておりますのに、rubyに関しては、最近まで全く知りませんでした。存在を知っ
てからちょっと夢中になってしまってます。とにかく言語は書いてみるのがい
いのだと思いまして、四苦八苦コーディングしてみましたが、可読性がいいこ
とやシンプルさをより感じました。

いきなりコードを皆さんに見ていただくのも不躾ですがご批判や感想いただけ
ればうれしいです。といっても、これじゃあまりPerlと変りなくOOPを生かし
ていないですね、正規表現の使いかたも変かもしれません。スタイルも教えて
ください。

-------- 以下コード --------
# HTMLマニュアルの、<A HREF> タグから索引を作る
# ソースは、ruby-man-1.0-jp を対象にしています
# usage: ruby this.rb *.html > sakuin.html
# 環境 WIN95 Cygwin32 b18 rbgw1021バイナリー
# hayashi / mxs.meshnet.or.jp Sat Nov 8 1997
$ary = Array.new
while gets()
  $_ = Kconv.tosjis($_)		# うちの環境では、これが必要
  if /(<A HREF=")([^"]*)(".*<\/A>)/i
    $_ = $1 + $3
    mark = $2
    fname = $<.filename
    fname.gsub!(/^.*\//, '')
    gsub(/<\/A>.*$/, '')
    while /<[\/A-Za-z][^>]*>/
      gsub(/<[\/A-Za-z][^>]*>/, '')
    end
    while /&#62;/; gsub('&#62;', '>') end
    while /&#60;/; gsub('&#60;', '<') end
    while /&#38/; gsub('&#38;', '&') end
    $_.strip!
    unless 
      /^目次$/ || /^次$/ || /^前$/ || /^上$/ || /@.*\./ || /^$/
				# 不必要なタグを除く
      if mark =~ /^#/		# 自ファイル内のジャンプなら
        mark = fname + mark	# ファイル名をつける
      end
      $ary << $_ + "\t" + mark
    end
  end
end
$ary.sort!
print "<HTML><HEAD><CENTER>ruby マニュアルの索引</CENTER></HEAD><BODY>\n"
$ary.each{|val|
  val =~ /(.*)\t(.*)/
  printf "<A HREF=\"%s\">%s</A><BR>\n", $2, $1 unless val == $old
  $old = val
}
print "</BODY></HTML>\n"

-- 
|_| /|V /|( |_||[Sagasen]    MAIL: hayashi / mxs.meshnet.or.jp |V|      |
| |/~||/~| )| || http://www2a.meshnet.or.jp/~hayashi/search/ | |ORIGUT|