/[suikacvs]/markup/html/whatpm/Whatpm/HTML.pm.src
Suika

Diff of /markup/html/whatpm/Whatpm/HTML.pm.src

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

revision 1.194 by wakaba, Sat Oct 4 05:53:45 2008 UTC revision 1.195 by wakaba, Sat Oct 4 06:30:34 2008 UTC
# Line 6911  sub _tree_construction_main ($) { Line 6911  sub _tree_construction_main ($) {
6911          !!!next-token;          !!!next-token;
6912          next B;          next B;
6913        } elsif ({        } elsif ({
6914                  address => 1, blockquote => 1, center => 1, dir => 1,                  ## NOTE: Start tags for non-phrasing flow content elements
6915                  div => 1, dl => 1, fieldset => 1,  
6916                  h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1,                  ## NOTE: The normal one
6917                  menu => 1, ol => 1, p => 1, ul => 1,                  address => 1, article => 1, aside => 1, blockquote => 1,
6918                    center => 1, datagrid => 1, details => 1, dialog => 1,
6919                    dir => 1, div => 1, dl => 1, fieldset => 1, figure => 1,
6920                    footer => 1, h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1,
6921                    h6 => 1, header => 1, menu => 1, nav => 1, ol => 1, p => 1,
6922                    section => 1, ul => 1,
6923                    ## NOTE: As normal, but drops leading newline
6924                  pre => 1, listing => 1,                  pre => 1, listing => 1,
6925                    ## NOTE: As normal, but interacts with the form element pointer
6926                  form => 1,                  form => 1,
6927                    
6928                  table => 1,                  table => 1,
6929                  hr => 1,                  hr => 1,
6930                 }->{$token->{tag_name}}) {                 }->{$token->{tag_name}}) {
# Line 6983  sub _tree_construction_main ($) { Line 6991  sub _tree_construction_main ($) {
6991            !!!next-token;            !!!next-token;
6992          }          }
6993          next B;          next B;
6994        } elsif ({li => 1, dt => 1, dd => 1}->{$token->{tag_name}}) {        } elsif ({
6995                    ## NOTE: As normal, but imply </li> when there's another <li>
6996                    li => 1,
6997                    ## NOTE: As normal, but imply </dt> or </dd> when ...
6998                    dt => 1, dd => 1,
6999                   }->{$token->{tag_name}}) {
7000          ## has a p element in scope          ## has a p element in scope
7001          INSCOPE: for (reverse @{$self->{open_elements}}) {          INSCOPE: for (reverse @{$self->{open_elements}}) {
7002            if ($_->[1] & P_EL) {            if ($_->[1] & P_EL) {
# Line 7058  sub _tree_construction_main ($) { Line 7071  sub _tree_construction_main ($) {
7071          !!!next-token;          !!!next-token;
7072          next B;          next B;
7073        } elsif ($token->{tag_name} eq 'plaintext') {        } elsif ($token->{tag_name} eq 'plaintext') {
7074            ## NOTE: As normal, but effectively ends parsing
7075    
7076          ## has a p element in scope          ## has a p element in scope
7077          INSCOPE: for (reverse @{$self->{open_elements}}) {          INSCOPE: for (reverse @{$self->{open_elements}}) {
7078            if ($_->[1] & P_EL) {            if ($_->[1] & P_EL) {
# Line 7494  sub _tree_construction_main ($) { Line 7509  sub _tree_construction_main ($) {
7509            next B;            next B;
7510          }          }
7511        } elsif ({        } elsif ({
7512                  address => 1, blockquote => 1, center => 1, dir => 1,                  ## NOTE: End tags for non-phrasing flow content elements
7513                  div => 1, dl => 1, fieldset => 1, listing => 1,  
7514                  menu => 1, ol => 1, pre => 1, ul => 1,                  ## NOTE: The normal ones
7515                    address => 1, article => 1, aside => 1, blockquote => 1,
7516                    center => 1, datagrid => 1, details => 1, dialog => 1,
7517                    dir => 1, div => 1, dl => 1, fieldset => 1, figure => 1,
7518                    footer => 1, header => 1, listing => 1, menu => 1, nav => 1,
7519                    ol => 1, pre => 1, section => 1, ul => 1,
7520    
7521                    ## NOTE: As normal, but ... optional tags
7522                  dd => 1, dt => 1, li => 1,                  dd => 1, dt => 1, li => 1,
7523    
7524                  applet => 1, button => 1, marquee => 1, object => 1,                  applet => 1, button => 1, marquee => 1, object => 1,
7525                 }->{$token->{tag_name}}) {                 }->{$token->{tag_name}}) {
7526          ## has an element in scope          ## has an element in scope
# Line 7560  sub _tree_construction_main ($) { Line 7583  sub _tree_construction_main ($) {
7583          !!!next-token;          !!!next-token;
7584          next B;          next B;
7585        } elsif ($token->{tag_name} eq 'form') {        } elsif ($token->{tag_name} eq 'form') {
7586            ## NOTE: As normal, but interacts with the form element pointer
7587    
7588          undef $self->{form_element};          undef $self->{form_element};
7589    
7590          ## has an element in scope          ## has an element in scope
# Line 7607  sub _tree_construction_main ($) { Line 7632  sub _tree_construction_main ($) {
7632          !!!next-token;          !!!next-token;
7633          next B;          next B;
7634        } elsif ({        } elsif ({
7635                    ## NOTE: As normal, except acts as a closer for any ...
7636                  h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1,                  h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1,
7637                 }->{$token->{tag_name}}) {                 }->{$token->{tag_name}}) {
7638          ## has an element in scope          ## has an element in scope
# Line 7652  sub _tree_construction_main ($) { Line 7678  sub _tree_construction_main ($) {
7678          !!!next-token;          !!!next-token;
7679          next B;          next B;
7680        } elsif ($token->{tag_name} eq 'p') {        } elsif ($token->{tag_name} eq 'p') {
7681            ## NOTE: As normal, except </p> implies <p> and ...
7682    
7683          ## has an element in scope          ## has an element in scope
7684          my $i;          my $i;
7685          INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {          INSCOPE: for (reverse 0..$#{$self->{open_elements}}) {
# Line 7736  sub _tree_construction_main ($) { Line 7764  sub _tree_construction_main ($) {
7764          ## Ignore the token          ## Ignore the token
7765          !!!next-token;          !!!next-token;
7766          next B;          next B;
           
         ## ISSUE: Issue on HTML5 new elements in spec  
           
7767        } else {        } else {
7768            if ($token->{tag_name} eq 'sarcasm') {
7769              sleep 0.001; # take a deep breath
7770            }
7771    
7772          ## Step 1          ## Step 1
7773          my $node_i = -1;          my $node_i = -1;
7774          my $node = $self->{open_elements}->[$node_i];          my $node = $self->{open_elements}->[$node_i];

Legend:
Removed from v.1.194  
changed lines
  Added in v.1.195

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24