/[suikacvs]/webroot/gate/2007/html/WebHACC/Language/CSSInline.pm
Suika

Contents of /webroot/gate/2007/html/WebHACC/Language/CSSInline.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Wed Sep 17 03:56:43 2008 UTC (15 years, 8 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 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