Namazu-win32-users-ja(旧)


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

Re: mknmzrcの$META_TAGS設定に関して



寺西です。

Tadamasa Teranishi wrote:
> 
> ・NMZ.filed.author を生成するバグを取り除く
> ・$META_TAGS, --meta を指定しなくても、
>   META タグの author はデフォルトで NMZ.field.from に入れるものとする。
>   この場合、META タグの author を LINK や ADDRESS より優先する。
> ・$META_TAGS で authro が指定されても無視する。
> という対応を行うのが良いかと思います。

という対策と、

> > 2. $META_TAGSにdc.titleのようにピリオドを含む記述をすると、
> > 『mknmz: フィールド検索用のインデックスが開けませんでした』となる

の対策を施した stable-2-0 の差分を示します。
(Namazu 2.0.12 との差分でなくて申し訳ない。)

Index: filter/html.pl
===================================================================
RCS file: /storage/cvsroot/namazu/filter/html.pl,v
retrieving revision 1.32.4.8
diff -r1.32.4.8 html.pl
146a147
>     # <META NAME="AUTHOR" CONTENT="author">
149c150,152
<     if ($$contref =~ m!<LINK\s[^>]*?HREF=([\"\'])mailto:(.*?)\1\s*>!i)
{ #"
---
>     if ($$contref =~ m!<META\s[^>]*?NAME=([\"\']?)AUTHOR\1\s[^>]*?CONTENT=([\"\']?)(.*?)\2\s*>!is) {
>         $fields->{'author'} = $3;
>     } elsif ($$contref =~ m!<LINK\s[^>]*?HREF=([\"\']?)mailto:(.*?)\1\s*>!i) {
201,207c204,213
< 	    while ($$contref =~ /<meta\s+name\s*=\s*([\'\"]?)$key #"
< 	       \1\s+[^>]*content\s*=\s*([\'\"]?)([^>]*?)\2[^>]*>/gix) 
< 	    {
< 		$fields->{$key} .= $3 . " ";
< 	    }
< 	    util::dprint("meta: $key: $fields->{$key}\n") 
< 		if defined $fields->{$key};
---
>             if ($key !~ m/^author$/i) {
>                 my $quotekey = quotemeta($key);
>                 while ($$contref =~ /<meta\s+name\s*=\s*([\'\"]?)$quotekey #"
>                     \1\s+[^>]*content\s*=\s*([\'\"]?)([^>]*?)\2[^>]*>/gix)
>                 {
>                     $fields->{$key} .= $3 . " ";
>                 }
>                 util::dprint("meta: $key: $fields->{$key}\n")
>                     if defined $fields->{$key};
>             }
Index: scripts/mknmz.in
===================================================================
RCS file: /storage/cvsroot/namazu/scripts/mknmz.in,v
retrieving revision 1.85.4.41
diff -r1.85.4.41 mknmz.in
674c674,680
< 	push @keys, (split '\|', $conf::META_TAGS);
---
>         my @meta = split '\|', $conf::META_TAGS;
>         while (my $meta = shift(@meta)) {
>             $meta = $conf::FIELD_ALIASES{$meta}
>                 if (defined $conf::FIELD_ALIASES{$meta});
> 
>             push @keys, $meta;
>         }
1807c1813
< 	if ($tmp =~ m!((^.*/NMZ\.field\.[^\.]+(?:\.i)?)\.tmp)!) {
---
>         if ($tmp =~ m!((^.*/NMZ\.field\..+?(?:\.i)?)\.tmp$)!) {
Index: nmz/field.h
===================================================================
RCS file: /storage/cvsroot/namazu/nmz/field.h,v
retrieving revision 1.9.8.1
diff -r1.9.8.1 field.h
4c4
< #define FIELD_SAFE_CHARS
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
---
> #define FIELD_SAFE_CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_."

-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E