[Namazu-users-ja 60] Re: filter のカスタマイズについて

Yukio USUDA m6694ha392t @ asahi-net.or.jp
2004年 9月 11日 (土) 01:02:38 JST


臼田です

"西浦 竜一" wrote:

> この様な理解で間違いないでしょうか?
> 
おおむね正しいと思います。

> 
> また、テキストファイル(040909.txt)のインデックスを作成した場合、
> /home/public/040909.txt [text/html]
> とインデックス結果が表示されます。
> 
> また、テキストファイル内に、<title>タイトル</title>とタイトルを記載したら、
> 検索結果のタイトルとして採用されており、このテキストファイルはhtmlファイルと 
> 認識されたようです。
> 
> このような場合でも、ファイルヘッダ部分に「paper」とヘッダを記載し、
> 「$magic->addMagicEntry('0 string 
> paper text/html')」に記載しておくことで、対応可能なのでしょうか?

新しいフォーマットであるならば既存の mimetype を設定せずに
sub mediatype() {
    return ('text/foo');
}
のように全く違うものを設定し、
add_magic() で
それに対応する名称で記載しておくのがよいでしょう。
  $magic->addMagicEntry('0 string paper text/foo');


> 一つのタイプに限定することから、マッチした最初のフィルタを使用すると思うので 
> すが、
> 優先順位はどうなのでしょうか?

2.0.13 の仕様では、同じメディアタイプに対応する複数のフィルタがある場合は
フィルタのファイル名の文字コード順で後ろのほうのものが使用されます。


> (Webで見た情報から書式を勝手に推測しています。
> addMagicEntry('何バイト目? string キーワード タイプ')
> あっているでしょうか?

あっています。

> あと、html部分が、フィルタファイルの最初にあるpackageのクラス宣言に対応して 
> いれば良いと予想したのですが?)
> 
ファイル名を元にpackage内のサブルーチンを呼び出していることから、フィルタ
にはフィルタのファイル名と同じ綴りの package 名をつける必要があります。


フィルタを作成したら、他のフィルタと同じディレクトリに入れて
$ mknmz -C 
としてみて、追加した mimetype 'text/foo' が表示されれば登録ができたことに
なります。

臼田幸生




Namazu-users-ja メーリングリストの案内