/[suikacvs]/test/html-whatpm/parser-manakai.cgi
Suika

Diff of /test/html-whatpm/parser-manakai.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by wakaba, Sun Jul 15 07:53:00 2007 UTC revision 1.8 by wakaba, Fri Jul 18 14:44:17 2008 UTC
# Line 2  Line 2 
2  use strict;  use strict;
3    
4  use lib qw[/home/httpd/html/www/markup/html/whatpm  use lib qw[/home/httpd/html/www/markup/html/whatpm
5             /home/wakaba/work/manakai/lib             /home/wakaba/work/manakai2/lib];
            /home/wakaba/public_html/-temp/wiki/lib];  
6  use CGI::Carp qw[fatalsToBrowser];  use CGI::Carp qw[fatalsToBrowser];
7  use Time::HiRes qw/time/;  use Time::HiRes qw/time/;
8    
9  use SuikaWiki::Input::HTTP; ## TODO: Use some better CGI module  use Message::CGI::HTTP;
10    my $http = Message::CGI::HTTP->new;
 my $http = SuikaWiki::Input::HTTP->new;  
11    
12  ## TODO: _charset_  ## TODO: _charset_
13    
14  my @mode = split m#/#, scalar $http->meta_variable ('PATH_INFO'), -1;  my @mode = split m#/#, scalar $http->get_meta_variable ('PATH_INFO'), -1;
15  shift @mode if @mode and $mode[0] == '';  shift @mode if @mode and $mode[0] == '';
16  ## TODO: decode unreserved characters  ## TODO: decode unreserved characters
17    
18    my $s = $http->parameter ('s');    my $s = $http->get_parameter ('s');
19    if (length $s > 1000_000) {    if (length $s > 1000_000) {
20      print STDOUT "Status: 400 Document Too Long\nContent-Type: text/plain; charset=us-ascii\n\nToo long";      print STDOUT "Status: 400 Document Too Long\nContent-Type: text/plain; charset=us-ascii\n\nToo long";
21      exit;      exit;
# Line 33  shift @mode if @mode and $mode[0] == ''; Line 31  shift @mode if @mode and $mode[0] == '';
31    my $doc;    my $doc;
32    my $el;    my $el;
33    
34    
35  if (@mode == 3 and $mode[0] eq 'html' and  if (@mode == 3 and $mode[0] eq 'html' and
36      ($mode[2] eq 'html' or $mode[2] eq 'test')) {      ($mode[2] eq 'html' or $mode[2] eq 'test' or $mode[2] eq 'xml')) {
37    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";
38    
39    require Encode;    require Encode;
# Line 50  if (@mode == 3 and $mode[0] eq 'html' an Line 49  if (@mode == 3 and $mode[0] eq 'html' an
49    
50    my $onerror = sub {    my $onerror = sub {
51      my (%opt) = @_;      my (%opt) = @_;
52      print STDOUT "$opt{line},$opt{column},$opt{type}\n";      print STDOUT "$opt{line},$opt{column},$opt{type};$opt{level};$opt{value}\n";
53    };    };
54    
55    $doc = $dom->create_document;    $doc = $dom->create_document;
# Line 74  if (@mode == 3 and $mode[0] eq 'html' an Line 73  if (@mode == 3 and $mode[0] eq 'html' an
73      $out = \( ($el or $doc)->inner_html );      $out = \( ($el or $doc)->inner_html );
74      $time2 = time;      $time2 = time;
75      $time{serialize_html} = $time2 - $time1;      $time{serialize_html} = $time2 - $time1;
76      } elsif ($mode[2] eq 'xml') {
77        $doc->manakai_is_html (0);
78        $time1 = time;
79        $out = \( ($el or $doc)->inner_html );
80        $time2 = time;
81        $time{serialize_xml} = $time2 - $time1;
82        $doc->manakai_is_html (1);
83    } else { # test    } else { # test
84      $time1 = time;      $time1 = time;
85      $out = test_serialize ($el || $doc);      $out = test_serialize ($el || $doc);
# Line 83  if (@mode == 3 and $mode[0] eq 'html' an Line 89  if (@mode == 3 and $mode[0] eq 'html' an
89    print STDOUT Encode::encode ('utf-8', $$out);    print STDOUT Encode::encode ('utf-8', $$out);
90    print STDOUT "\n";    print STDOUT "\n";
91  } elsif (@mode == 3 and $mode[0] eq 'xhtml' and  } elsif (@mode == 3 and $mode[0] eq 'xhtml' and
92           ($mode[2] eq 'html' or $mode[2] eq 'test')) {           ($mode[2] eq 'html' or $mode[2] eq 'test' or $mode[2] eq 'xml')) {
93    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";
94    
95    require Message::DOM::XMLParserTemp;    require Message::DOM::XMLParserTemp;
# Line 108  if (@mode == 3 and $mode[0] eq 'html' an Line 114  if (@mode == 3 and $mode[0] eq 'html' an
114    
115    my $out;    my $out;
116    if ($mode[2] eq 'html') {    if ($mode[2] eq 'html') {
117        $doc->manakai_is_html (0);
118        $time1 = time;
119        $out = \( $doc->inner_html ); ## TODO: $el case
120        $time2 = time;
121        $time{serialize_html} = $time2 - $time1;
122        $doc->manakai_is_html (1);
123      } elsif ($mode[2] eq 'xml') {
124      $time1 = time;      $time1 = time;
125      $out = \( $doc->inner_html ); ## TODO: $el case      $out = \( $doc->inner_html ); ## TODO: $el case
126      $time2 = time;      $time2 = time;
# Line 121  if (@mode == 3 and $mode[0] eq 'html' an Line 134  if (@mode == 3 and $mode[0] eq 'html' an
134    print STDOUT Encode::encode ('utf-8', $$out);    print STDOUT Encode::encode ('utf-8', $$out);
135    print STDOUT "\n";    print STDOUT "\n";
136  } elsif (@mode == 3 and $mode[0] eq 'h2h' and $mode[1] eq '' and  } elsif (@mode == 3 and $mode[0] eq 'h2h' and $mode[1] eq '' and
137           ($mode[2] eq 'html' or $mode[2] eq 'test')) {           ($mode[2] eq 'html' or $mode[2] eq 'test' or $mode[2] eq 'xml')) {
138    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";    print STDOUT "Content-Type: text/plain; charset=utf-8\n\n";
139    
140    require Encode;    require Encode;
# Line 138  if (@mode == 3 and $mode[0] eq 'html' an Line 151  if (@mode == 3 and $mode[0] eq 'html' an
151    
152    my $out;    my $out;
153    if ($mode[2] eq 'html') {    if ($mode[2] eq 'html') {
154        $doc->manakai_is_html (0);
155        $time1 = time;
156        $out = \( $doc->inner_html );
157        $time2 = time;
158        $time{serialize_html} = $time2 - $time1;
159        $doc->manakai_is_html (1);
160      } elsif ($mode[2] eq 'xml') {
161      $time1 = time;      $time1 = time;
162      $out = \( $doc->inner_html );      $out = \( $doc->inner_html );
163      $time2 = time;      $time2 = time;
# Line 155  if (@mode == 3 and $mode[0] eq 'html' an Line 175  if (@mode == 3 and $mode[0] eq 'html' an
175    exit;    exit;
176  }  }
177    
178    if ($http->parameter ('dom5')) {    if ($http->get_parameter ('dom5')) {
179      require Whatpm::ContentChecker;      require Whatpm::ContentChecker;
180      my $onerror = sub {      my $onerror = sub {
181        my %opt = @_;        my %opt = @_;

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24