--- test/html-whatpm/parser-manakai.cgi 2007/07/15 06:14:30 1.4
+++ test/html-whatpm/parser-manakai.cgi 2007/08/11 13:54:55 1.6
@@ -2,22 +2,20 @@
use strict;
use lib qw[/home/httpd/html/www/markup/html/whatpm
- /home/wakaba/work/manakai/lib
- /home/wakaba/public_html/-temp/wiki/lib];
+ /home/wakaba/work/manakai2/lib];
use CGI::Carp qw[fatalsToBrowser];
use Time::HiRes qw/time/;
-use SuikaWiki::Input::HTTP; ## TODO: Use some better CGI module
-
-my $http = SuikaWiki::Input::HTTP->new;
+use Message::CGI::HTTP;
+my $http = Message::CGI::HTTP->new;
## TODO: _charset_
-my @mode = split m#/#, scalar $http->meta_variable ('PATH_INFO'), -1;
+my @mode = split m#/#, scalar $http->get_meta_variable ('PATH_INFO'), -1;
shift @mode if @mode and $mode[0] == '';
## TODO: decode unreserved characters
- my $s = $http->parameter ('s');
+ my $s = $http->get_parameter ('s');
if (length $s > 1000_000) {
print STDOUT "Status: 400 Document Too Long\nContent-Type: text/plain; charset=us-ascii\n\nToo long";
exit;
@@ -120,12 +118,42 @@
}
print STDOUT Encode::encode ('utf-8', $$out);
print STDOUT "\n";
+} elsif (@mode == 3 and $mode[0] eq 'h2h' and $mode[1] eq '' and
+ ($mode[2] eq 'html' or $mode[2] eq 'test')) {
+ print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";
+
+ require Encode;
+ $time1 = time;
+ $s = Encode::decode ('utf-8', $s);
+ $time2 = time;
+ $time{decode} = $time2 - $time1;
+
+ require Whatpm::H2H;
+ $doc = $dom->create_document;
+ Whatpm::H2H->parse_string ($s => $doc);
+
+ print "#document\n";
+
+ my $out;
+ if ($mode[2] eq 'html') {
+ $time1 = time;
+ $out = \( $doc->inner_html );
+ $time2 = time;
+ $time{serialize_xml} = $time2 - $time1;
+ } else { # test
+ $time1 = time;
+ $out = test_serialize ($doc);
+ $time2 = time;
+ $time{serialize_test} = $time2 - $time1;
+ }
+ print STDOUT Encode::encode ('utf-8', $$out);
+ print STDOUT "\n";
} else {
print STDOUT "Status: 404 Not Found\nContent-Type: text/plain; charset=us-ascii\n\n404";
exit;
}
- if ($http->parameter ('dom5')) {
+ if ($http->get_parameter ('dom5')) {
require Whatpm::ContentChecker;
my $onerror = sub {
my %opt = @_;
@@ -239,4 +267,4 @@
=cut
-## $Date: 2007/07/15 06:14:30 $
+## $Date: 2007/08/11 13:54:55 $