Namazu-devel-ja(旧)


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

HTML-embedded language file support



ASP,JSP,PHP,VBScript,JScript,JavaScript などといった HTML 埋め込み
型のサーバ/クライアントサイド言語のプログラムロジック記述部分を、
検索対象や要約作成対象から外すために、filter/html.pl に以下のよう
な変更を加えるといいのではないかとおもうのですがいかがでしょうか。


--- html.pl.orig	Thu Aug 16 16:04:27 2001
+++ html.pl	Sun Oct 14 18:04:04 2001
@@ -27,6 +27,8 @@
 use strict;
 require 'gfilter.pl';
 
+my $EMBEDDED_FILE = '\.(asp|jsp|php[3s]?|phtml)(?:\.gz)?';
+
 sub mediatype() {
     return ('text/html');
 }
@@ -63,6 +65,10 @@
 	return $err if $err;
     }
 
+    if ($cfile =~ /($EMBEDDED_FILE)$/o) {
+	embedded_filter($cont);
+    }
+
     html_filter($cont, $weighted_str, $fields, $headings);
     
     gfilter::line_adjust_filter($cont);
@@ -110,6 +116,17 @@
     }
 }
 
+# Get rid of HTML-embedded codes
+sub embedded_filter ($) {
+    my ($contref) = @_;
+
+    # handle with ASP,JSP,PHP,VBScript,JScript and JavaScript.
+    $$contref =~ s/<%.*?%>//gs;
+    $$contref =~ s/<\?.*?\?>//gs;
+    $$contref =~ s/<asp:.*?\/>//gs;
+    $$contref =~ s/<jsp:.*?\/>//gs;
+    $$contref =~ s/<script.*>.*<\/script>//igs;
+}
+
 # Convert independent < > s into entity references for escaping.
 # Substitute twice for safe.
 sub escape_lt_gt ($) {


良く知らない言語も混ざっているので、ヘンなことをしてるかもしれませ
ん。なお、言うまでもなく、このような対応だと動的に変化する部分に対
して無力なわけですが、まあやらないよりはいいのかな、と。
<script>...</script> は、html 拡張子でも現れることがあるから、外に
追い出す方がいいかもしれませんが、おおむねこれでいいなら、asp,
jsp, php なども $ALLOW_FILE に入れて良いとおもいます。すでに phtml 
は入ってますな。


ただ、拡張子がaspだったら、メディアタイプは text/html; x-type=asp 
のように(できれば)したいですが、

sub mediatype() {
    return ('text/html', 'text/html; x-type=asp', 'text/html; x-type=jsp',
        'text/html; x-type=php');
}

sub add_magic ($) {
    my ($magic) = @_;

    $magic->addFileExts('\\.asp$', 'text/html; x-type=asp');
    $magic->addFileExts('\\.jsp$', 'text/html; x-type=jsp');
    $magic->addFileExts('\\.php[3s]?$', 'text/html; x-type=php');
    return;
}

というようにしてもうまくいかないのはなぜ? おおむね text/html に
自動判定されてしまいます。embedded_filter() は通ってるんですが。
--
馬場  肇 ( Hajime BABA )                  E-mail: hajime.baba@xxxxxxxxx
国立天文台 天文学データ解析計算センター
--