namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: namazu -C (Re: .namazurc, nmz/alias.c nmz/replaces.c src/rcfile.c)



藤原  誠 Makoto Fujiwara <makoto@xxxxx> wrote:

>さて、その中の
>http://www.ki.nu/software/namazu/#NAMAZURC
>の部分を用意していて、気になったことですが、
>-C で表示するものが、いまは、(多分)次のようになっていると思います。
(snip)
>これですと、.namazurc に何という変数で設定するのかが分りません。
>で、例えば、次のように表示するのがいいと思うのですが、( gettext と

対応しました。次のように出力します。

  % namazu -C
  設定ファイル:  /home/satoru/.namazurc
  インデックス (Index): /home/satoru/NMZ
  <BASE>タグ (Base):    unsupported
  ログの記録 (Logging): on
  使用する言語 (Lang):  ja_JP.ujis
  スコア計算 (Scoring): tfidf


>更には、
>BLANK
>COMMENT

この 2つに効力はありません。namazurc を処理するルーチンで内
部的に利用している仮想的な directive名です。


>DEBUG

これはデバッグ用につけた directiveです。namazurc ファイルの
評価はコマンドラインオプションが処理されるよりも前に行われる
ため、 --debug のオプションを指定しても namazurc を評価する
際のデバッグ情報は表示できません。

そこで namazurc の先頭で Debug on と指定すると、namazurcを評
価する際のデバッグ情報を表示できます。例:

  % cat .namazurc
  Index /foo/bar
  Replace "foo" "bar"
  Alias "foo"

  % namazu --debug
  namazu: .namazurc:4: syntax error: too few arguments.

  % cat .namazurc
  DEBUG on
  Index /foo/bar
  Replace "foo" "bar"
  Alias "foo"

  % namazu      
     1: Directive:  [DEBUG]
	Argument 1: [on]
     2: Directive:  [Index]
	Argument 1: [/foo/bar]
     3: Directive:  [Replace]
	Argument 1: [foo]
	Argument 2: [bar]
  namazu: rcfile.c:568 (load_rcfile): .namazurc:4: syntax error: too few arguments.

デバッグモードが有効のときは、エラーメッセージに

  namazu: rcfile.c:568 (load_rcfile):

のように、ファイル名 + 行数 + 関数名 (システム依存) が表示さ
れるところがみそです。[namazu-dev 1177]


>ALIAS

これはインデックスの別名を設定する項目です。たとえば

  Alias foo /usr/local/var/namazu/index/foo

と設定しておけば

  % namazu query foo

で検索できます。将来的には

  Alias all /usr/local/var/namazu/index/foo\
	    /usr/local/var/namazu/index/bar\
	    /usr/local/var/namazu/index/baz\
	    /usr/local/var/namazu/index/quux

のように一対多の Alias に対応するつもりです。(ソースコードを
整理しないと実現できない)


>REPLACE

これは検索結果の中のURIを動的に置換する設定項目です。置換さ
れる側は正規表現で指定します。perl の s/PAT/REP/ に似ていま
す。replace PAT with REP という意味です。

例:

           置換される側             置換する側
  Replace  /home/foo/public_html/   http://www.foobar.jp/foo/
  Replace  /home/(.*)/public_html/  http://www.foobar.jp/\1/

後者は \1 で後方参照しているところがみそです。


>の書き方が分っていないので、まだ書けていません。(調査中です:-)

藤原さんが tutorial を用意してくださる、ということでいつもよ
り丁寧に返事を書いてみました。:-)

-- Satoru Takabayashi