/[suikacvs]/test/html-webhacc/WebHACC/Language/CSSInline.pm
Suika

Contents of /test/html-webhacc/WebHACC/Language/CSSInline.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Wed Sep 17 03:56:43 2008 UTC (16 years, 9 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
++ ChangeLog	17 Sep 2008 03:55:55 -0000
2008-09-17  Wakaba  <wakaba@suika.fam.cx>

	* cc.cgi: Support for |text/x-css-inline| type is added.

2008-09-17  Wakaba  <wakaba@suika.fam.cx>

	* standards.en.html: Updated.

++ html/WebHACC/Language/ChangeLog	17 Sep 2008 03:56:41 -0000
2008-09-17  Wakaba  <wakaba@suika.fam.cx>

	* CSSInline.pm: New module.

++ html/WebHACC/ChangeLog	17 Sep 2008 03:56:25 -0000
2008-09-17  Wakaba  <wakaba@suika.fam.cx>

	* Output.pm: Support for the |text/x-css-inline| type is added.

1 wakaba 1.1 package WebHACC::Language::CSSInline;
2     use strict;
3     require WebHACC::Language::CSS;
4     push our @ISA, 'WebHACC::Language::CSS';
5    
6     sub generate_syntax_error_section ($) {
7     my $self = shift;
8    
9     my $out = $self->output;
10    
11     $self->result->layer_uncertain ('charset');
12    
13     $out->start_section (role => 'parse-errors');
14     $out->start_error_list (role => 'parse-errors');
15     $self->result->layer_applicable ('syntax');
16    
17     my $input = $self->input;
18     my $result = $self->result;
19    
20     my $p = $self->get_css_parser ();
21     $p->init;
22     $p->{onerror} = sub {
23     my (%opt) = @_;
24     if (not defined $opt{value} and defined $opt{token}) {
25     $opt{value} = Whatpm::CSS::Tokenizer->serialize_token ($opt{token});
26     }
27     $result->add_error (%opt, layer => 'syntax');
28     };
29     $p->{href} = $input->url;
30     $p->{base_uri} = $input->{base_uri};
31    
32     # if ($parse_mode eq 'q') {
33     # $p->{unitless_px} = 1;
34     # $p->{hashless_color} = 1;
35     # }
36    
37     ## TODO: Make $input->{s} a ref.
38    
39     my $s = \$input->{s};
40     unless ($input->{is_char_string}) {
41     my $charset;
42     $self->result->layer_uncertain ('encode');
43     require Encode;
44     if (defined $input->{charset}) {## TODO: IANA->Perl
45     $charset = $input->{charset};
46     $s = \(Encode::decode ($input->{charset}, $$s));
47     } else {
48     ## TODO: charset detection
49     $s = \(Encode::decode ($charset = 'utf-8', $$s));
50     }
51     $self->{source_charset} = $charset;
52     }
53    
54     $self->{structure} = $p->parse_char_string_as_inline ($$s);
55    
56     $out->end_error_list (role => 'parse-errors');
57     $out->end_section;
58     } # generate_syntax_error_section
59    
60     sub source_charset ($) {
61     return shift->{source_charset};
62     } # source_charset
63    
64     1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24