NAME
    HTML::Zoom::Parser::HH5P - use HTML::HTML5::Parser with HTML::Zoom

SYNOPSIS
       use HTML::Zoom;
       use HTML::Zoom::Parser::HH5P;
   
       my $template = <<HTML;
       <!DOCTYPE HTML
          PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
       <html></html>
       HTML
   
       my $output = HTML::Zoom
          -> new({ zconfig => { parser => 'HTML::Zoom::Parser::HH5P' } })
          -> from_html($template)
          -> to_html;

DESCRIPTION
    "HTML::Zoom::Parser::HH5P" is glue between HTML::Zoom and
    HTML::HTML5::Parser. It is likely to be slower than HTML::Zoom's built
    in parser and HTML::Zoom::Parser::HTML::Parser, but because
    HTML::HTML5::Parser uses the HTML5 parsing algorithm, should handle
    malformed HTML in a manner more consistent with popular desktop web
    browsers.

  Constructor
    "new(%attributes)"
        Moose/Moo-style constructor function.

  Attributes
    "zconfig"
        Holds an HTML::Zoom::ZConfig object. Read-only attribute, but a
        separate "with_zconfig" method id provided to set the zconfig
        attribute.

    "parse_as_fragment"
        Tri-state variable. If set to false, then all HTML parsed with this
        object will be be treated as full HTML documents. Missing optional
        tags such as "<head>" and "<body>" will be inferred and added to the
        stream as required by the HTML5 specification. If set to true, then
        all HTML parsed with the object will be treated as document
        fragments. If undefined (the default), then this module will attempt
        to guess the correct behaviour.

        The current guessing heuristic is a case-insensitive search for
        "<html", "<!doctype" or "<?xml" in the first 512 characters of the
        string being parsed.

    "ignore_implied_elements"
        Boolean. If set to true (the default) then regardless of the
        "parse_as_fragment" setting, elements which have been inferred will
        not be included in the output stream.

  Methods
    "html_to_events($string)"
        Returns an arrayref of hashrefs, where each hashref represents an
        "event" parsing the HTML. Events correspond to elements, text nodes,
        DTDs and so on in the HTML document. (Attributes are not events, but
        are included in the element hashref.)

    "html_to_stream($string)"
        As per "html_to_events" but returns an HTML::Zoom stream.

    "html_escape($string)"
        Utility method to escape characters within the string as HTML
        entities.

    "html_unescape($string)"
        Utility method to unescape HTML entities.

    "with_zconfig($zconfig)"
        Writer for "zconfig" attribute.

BUGS
    Please report any bugs to
    <http://rt.cpan.org/Dist/Display.html?Queue=HTML-Zoom-Parser-HH5P>.

SEE ALSO
    HTML::Zoom, HTML::HTML5::Parser.

AUTHOR
    Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE
    This software is copyright (c) 2012 by Toby Inkster.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

DISCLAIMER OF WARRANTIES
    THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
    WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
    MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

