namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mknmz's command line options
- From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
- Date: Sat, 29 May 1999 18:01:14 +0900
Getopt::Long モジュールを使って mknmz のコマンドラインオプショ
ンの解析部を書き換え、長い名前のオプションを使えるようにしま
した。 (次は getopt.c で namazu コマンドの方をいじります)
この作業をしていて気づいたのですが、 mknmz には、ほとんど意
味のないオプションがたくさんあります。たくさんのオプションが
あると、バグの元になるので不要なものは廃止したいと思います。
現在、有効なコマンドラインオプションは次の通りです。
対象ファイル:
-a, --all: すべてのファイルを対象とする
-e, --robots-txt: ロボットよけされているファイルを除外する
-A, --htaccess .htaccess で制限されたファイルを除外する
-F, --target-list=file: インデックス対象のファイルのリストを読み込む
-t, --target-regex=regex: 対象ファイルの正規表現を指定する
形態素解析:
-c, --use-chasen: 日本語の単語のわかち書きに ChaSen を用いる
-k, --use-kakasi: 日本語の単語のわかち書きに KAKASI を用いる
-m, --use-chasen-morph: 名詞のみを抽出する
フィルタ制御:
-r, --man: man のファイルを処理する
-u, --uuencode: uuencode と BinHex の部分を無視する
-h, --rfc822: Mail/News のヘッダ部分をそれなりに処理する
-M, --no-mhonarc: MHonArc で作成された HTML の処理を行わない
文字列処理:
-E, --no-edge-symbol: 単語の両端の記号は削除する
-G, --no-okurigana: 送り仮名を削除する
-H, --no-hiragana: 平仮名のみの単語は登録しない
-K, --no-symbol: 記号をすべて削除する
-L, --no-line-adjust: 行頭・行末の調整処理を行わない
要約:
-U, --no-encode-url: URLのencodeを行わない
-D, --no-insert-headers: Date:, From: といったヘッダを要約につけない
-x, --no-heading-summary: HTML のヘディングによる要約作成を行わない
インデックス作成:
-P, --no-heading-summary: フレーズ検索用のインデックスを作成しない
-R, --no-regex-index: 正規表現検索用のインデックスを作成しない
-W, --no-date-index: 日付によるソート用のインデックス作らない
-X, --no-field-index: フィールド検索用のインデックスを作らない
-Y, --no-delete: 削除された文書の検出を行わない
-Z, --no-update: 文書の更新/削除を反映しない
その他:
-s, --checkpoint: チェックポイント機構を作動させる
-q, --quiet: インデックス処理の最中にメッセージを表示しない
-I, --include=file: カスタマイズ用ファイルを読み込む
-O, --output-dir=dir: インデックスファイルの出力先を指定する
-T, --template-dir=dir: NMZ.{head,foot,body}.* のディレクトリを指定する
-l, --lang=lang: 言語を設定する ('en' or 'ja')
-v, --version: ヴァージョンを表示する
-0, --help: このヘルプを表示する
私の改善案。
! -e, --robots-txt: ロボットよけされているファイルを除外する
! -A, --htaccess .htaccess で制限されたファイルを除外する
この 2つは統合する。
-t, --allow-regex=regex: 対象ファイルの正規表現を指定する
+ -d, --deny-regex=regex: 対象外にしたいファイルの正規表現を指定する
--deny-regex=regex を追加
- -r, --man: man のファイルを処理する
man ファイルの自動認識をするコードを追加し、このオプションは
廃止する。(自動認識は /^\.TH / で OK でしょう)
- -h, --rfc822: Mail/News のヘッダ部分をそれなりに処理する
これも自動認識にする。自動認識のコードは次のようなものでよい
でしょう。
$field = 0;
while (空行が現れるまで) {
$field++ if /^(To|From|Subject|Message-ID|Date|Received|Newsgroups): /;
}
if ($field >= 3) {
これは Mail/News だろう
}
- -M, --no-mhonarc: MHonArc で作成された HTML の処理を行わない
これは廃止。
- -L, --no-line-adjust: 行頭・行末の調整処理を行わない
これは廃止。
! 要約:
! -U, --no-encode-url: URLのencodeを行わない
! -D, --no-insert-headers: Date:, From: といったヘッダを要約につけない
! -x, --no-heading-summary: HTML のヘディングによる要約作成を行わない
要約作成はカスタマイズ可能にする。詳細は未定。 (NMZ.f と
NMZ.field.* を統合する)
- インデックス作成:
- -P, --no-heading-summary: フレーズ検索用のインデックスを作成しない
- -R, --no-regex-index: 正規表現検索用のインデックスを作成しない
- -W, --no-date-index: 日付によるソート用のインデックス作らない
- -X, --no-field-index: フィールド検索用のインデックスを作らない
この辺はすべて廃止したい。(バグの元)
-Y, --no-delete: 削除された文書の検出を行わない
- -Z, --no-update: 文書の更新/削除を反映しない
--no-delete を残して --no-update を廃止。
! -0, --help: このヘルプを表示する
-0 は変すぎる。が、 -h はすでに使われているし、 -? はなぜか
Getopt::Long が解釈してくれません。 namazu コマンドとの整合
性も考慮して、コマンドラインオプションの識別子を見直す必要が
あります。 (互換性は無視してよいでしょう)
ご意見をくださいませ。
-- Satoru Takabayashi