--- no_pager/index.cgi 2006/08/16 01:02:00 10 +++ no_pager/index.cgi 2006/08/16 17:57:28 14 @@ -72,6 +72,20 @@ return $out; } + sub attr_regex { + my ($rdoc,$attr) = @_; + my $text = $rdoc->attr( $attr ); + return unless defined($text); + + if (my $r = $config->{estraier}->{attr_regex}->{$attr} ) { + my $do = '$text =~ ' . $r . ';'; + eval $do; + if ($@) { + warn "eval $do failed: $@\n"; + } + } + return $text; + } # for each document in results for my $i ( 0 ... $nres->doc_num - 1 ) { @@ -81,11 +95,12 @@ print "
  • "; print "

    ", $rdoc->attr('@title'),"

    \n"; - print "

    ", $rdoc->attr('source'),"

    \n"; - print "

    ", $rdoc->attr('@mdate'),"

    \n"; + print "

    ", attr_regex( $rdoc, 'source' ),"

    \n"; print "

    ", html_snippet( $rdoc->snippet ),"

    \n"; - print "[", $skip + $i, "] "; - print "", $rdoc->attr('@uri'),""; + my $uri = attr_regex( $rdoc, '@uri' ); + print qq{$uri }, + attr_regex( $rdoc, '@mdate' ); + print " [", $skip + $i + 1, "]"; print "
  • "; } } else { @@ -116,7 +131,6 @@ $f .= '.html'; open(my $s, $f) || die "$f: $!"; while(<$s>) { - no strict 'vars'; s/<%(.+?)%>/eval "$1"/ge; print; }