--- trunk/vhost/webpac2.cgi 2009/04/21 23:17:21 1135 +++ trunk/vhost/webpac2.cgi 2009/04/21 23:17:23 1137 @@ -16,7 +16,7 @@ print qq|
# $name\n|, YAML::Dump( @_ ), qq|
|; } -my $path = $ENV{PATH_INFO}; +my $path = $ENV{PATH_INFO} || 'ecas'; my $dir = $0; $dir =~ s{/[^/]+.cgi}{}; @@ -25,6 +25,15 @@ my $database = (keys %{ $config->{databases} })[0]; die "$database not in $path" unless $path =~ m{\Q$database\E}; +my $html_markup = "$dir/$path/html.pm"; +my $html_markup_skip; +if ( -e $html_markup ) { + require $html_markup; + $html_markup = $database . '::html'; +} else { + undef $html_markup; +} + my $estraier = YAML::LoadFile( "$dir/../var/estraier/$database.yaml" ); my $db = $config->{databases}->{$database}; @@ -75,8 +84,18 @@ foreach my $i ( 1 .. $nres->doc_num ) { my $rdoc = $nres->get_doc( $i - 1 ); print qq|
  • |; - print qq|
    |, $rdoc->attr( $_ ), qq|
    | - foreach @attr; + foreach my $attr ( @attr ) { + my $v = $rdoc->attr( $attr ); + if ( defined $v && $html_markup && ! $html_markup_skip->{$attr} ) { + eval "\$v = $html_markup->$attr( \$v );"; + if ( $@ ) { + warn "disable html markup for $attr: $@"; + $html_markup_skip->{$attr} = $@; + } + } + next unless defined $v; + print qq|
    $v
    \n|; + } print qq|
  • \n|; } print qq||; @@ -86,5 +105,6 @@ dump_yaml( 'estraier', $estraier ); dump_yaml( 'db', $db ); +dump_yaml( 'html_markup_skip', $html_markup_skip ); print end_html;