HTML-HTML5-Parser

 view release on metacpan or  search on metacpan

lib/HTML/HTML5/Parser/TagSoupParser.pm  view on Meta::CPAN

      $doctype_name = '' unless defined $doctype_name;

      if ($doctype_name ne 'html') {
        
        $self->{parse_error}->(level => $self->{level}->{must}, type => 'not HTML5', token => $token);
      } elsif (defined $token->{pubid}) {
        ## Obsolete permitted DOCTYPEs (case-sensitive)
        my $xsysid = {
          '-//W3C//DTD HTML 4.0//EN' => 'http://www.w3.org/TR/REC-html40/strict.dtd',
          '-//W3C//DTD HTML 4.01//EN' => 'http://www.w3.org/TR/html4/strict.dtd',
          '-//W3C//DTD XHTML 1.0 Strict//EN' => 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd',
          '-//W3C//DTD XHTML 1.1//EN' => 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd',
        }->{$token->{pubid}};
        if (defined $xsysid and
            (not defined $token->{sysid} or $token->{sysid} eq $xsysid)) {
          
          $self->{parse_error}->(level => $self->{level}->{must}, type => 'obs DOCTYPE', token => $token,
                          level => $self->{level}->{obsconforming});
        } else {
          
          $self->{parse_error}->(level => $self->{level}->{must}, type => 'not HTML5', token => $token);
        }

lib/HTML/HTML5/Parser/TagSoupParser.pm  view on Meta::CPAN

          $self->_data($self->{document})->{'manakai_compat_mode'} = 'quirks';
        } elsif ($pubid =~ m[^-//W3C//DTD HTML 4.01 FRAMESET//] or
                 $pubid =~ m[^-//W3C//DTD HTML 4.01 TRANSITIONAL//]) {
          if (defined $token->{sysid}) {
            
            $self->_data($self->{document})->{'manakai_compat_mode'} = 'quirks';
          } else {
            
            $self->_data($self->{document})->{'manakai_compat_mode'} = 'limited quirks';
          }
        } elsif ($pubid =~ m[^-//W3C//DTD XHTML 1.0 FRAMESET//] or
                 $pubid =~ m[^-//W3C//DTD XHTML 1.0 TRANSITIONAL//]) {
          
          $self->_data($self->{document})->{'manakai_compat_mode'} ='limited quirks';
        } else {
          
        }
      } else {
        
      }
      if (defined $token->{sysid}) {
        my $sysid = $token->{sysid};

t/html5lib-pass/doctype01.dat  view on Meta::CPAN

<!DOCTYPE ...>Hello
#errors
#document
| <!DOCTYPE ...>
| <html>
|   <head>
|   <body>
|     "Hello"

#data
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
#errors
#document
| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
| <html>
|   <head>
|   <body>

#data
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
#errors
#document
| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
| <html>
|   <head>
|   <body>

#data
<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ 
<!-- internal declarations -->
]>
#errors
#document
| <!DOCTYPE root-element>
| <html>
|   <head>
|   <body>
|     "]>"

#data
<!DOCTYPE html PUBLIC
  "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
    "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
#errors
#document
| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
| <html>
|   <head>
|   <body>

#data
<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body>
#errors
#document
| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd">
| <html>



( run in 1.497 second using v1.01-cache-2.11-cpan-49f99fa48dc )