via. http://d.hatena.ne.jp/nskj77/20060401
コマンドラインから使えるリファレンス。Refe の Haskell 版。バージョンは 0.3.1。
http://i.loveruby.net/w/href.html
インストールは README.jp に書いてあるとおりにすれば簡単……とはいかない。Windows だから。
仕方がないので Makefile をながめて次のように書き換えた。換えたところだけ示す。
bindir = c:\usr\local\bin EXEEXT = .exe # mkdir -p $(bindir)
1行目はコマンドのインストール先,c:\usr\local\bin にインストールすることにした。
2行目は実行ファイルの拡張子。3行目は今回はすでにフォルダがあるので全体をコメントアウトした。もしないなら -p オプションだけ削除する。
これで良し。make はないので nmake を使う。
>nmake Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. ghc -cpp --make -package network href.hs -o href.exe Chasing modules from: href.hs (以下略) >nmake install Microsoft (R) Program Maintenance Utility Version 1.50 Copyright (c) Microsoft Corp 1988-94. All rights reserved. ghc -cpp --make -package network href.hs -o href.exe Chasing modules from: href.hs (以下略)
次,データベースの準備。
c:\usr\share\href にインストールするので c:\usr\share を先に作っておく。href はなくてもいい。
>set HREF_DATADIR=c:\usr\share\href >mkhref ref/*.*
これでOK。あとはコントロールパネルで環境変数 HREF_DATADIR を設定しておけば普通に使える。
>href filter Data.List.filter filter :: (a -> Bool) -> [a] -> [a] PRELUDE filter f xs ・・ケ・ネ xs 、ホ、ヲ、チ f 、ャ True 、ヒ、ハ、・ラチヌ、タ、ア、・ スク、皃ソ・・ケ・ネ、ヨ、ケ。」
って,文字化けしてる!……EUCかぁ。
追記:
ref 以下のファイルを ShiftJIS に変換してからインストールしたら直った。
変換に使った Ruby のスクリプト。
require 'find' require 'fileutils' require 'nkf' src = ARGV.shift dest = ARGV.shift Find.find(src) do |f| case File.ftype(f) when "directory" FileUtils.mkdir_p(f.sub(src, dest)) when "file" File.open(f, "r") do |infile| File.open(f.sub(src,dest), "w") do |outfile| outfile.write NKF.nkf("-E -s", infile.read) end end end end
さらに追記:
むぅ,こうすればコマンド2つですんだ。
>mkdir ref.sjis >for %X in (ref/*) do nkf -E -s ref/%X > ref.sjis/%X