# NAME

HTML::Packer - Another HTML code cleaner

<div>

    <a href='https://travis-ci.org/leejo/html-packer-perl?branch=master'><img src='https://travis-ci.org/leejo/html-packer-perl.svg?branch=master' alt='Build Status' /></a>
    <a href='https://coveralls.io/r/leejo/html-packer-perl'><img src='https://coveralls.io/repos/leejo/html-packer-perl/badge.png?branch=master' alt='Coverage Status' /></a>
</div>

# VERSION

Version 2.10

# DESCRIPTION

A HTML Compressor.

# SYNOPSIS

    use HTML::Packer;

    my $packer = HTML::Packer->init();

    $packer->minify( $scalarref, $opts );

To return a scalar without changing the input simply use (e.g. example 2):

    my $ret = $packer->minify( $scalarref, $opts );

For backward compatibility it is still possible to call 'minify' as a function:

    HTML::Packer::minify( $scalarref, $opts );

First argument must be a scalarref of HTML-Code.
Second argument must be a hashref of options. Possible options are

- remove\_comments

    HTML-Comments will be removed if 'remove\_comments' has a true value.  Comments starting with `<!--#`,
    `<!--[` or `<!-- google_ad_section_` will be preserved unless 'remove\_comments\_aggressive' has a true value. 

- remove\_comments\_aggressive

    See 'remove\_comments'.

- remove\_newlines

    ALL newlines will be removed if 'remove\_newlines' has a true value.

- do\_javascript

    Defines compression level for javascript. Possible values are 'clean', 'obfuscate', 'shrink' and 'best'.
    Default is no compression for javascript.
    This option only takes effect if [JavaScript::Packer](https://metacpan.org/pod/JavaScript::Packer) is installed.

- do\_stylesheet

    Defines compression level for CSS. Possible values are 'minify' and 'pretty'.
    Default is no compression for CSS.
    This option only takes effect if [CSS::Packer](https://metacpan.org/pod/CSS::Packer) is installed.

- do\_csp

    Defines hash algorithm for `Content-Security-Policy`, or CSP, hashes of
    embedded `<script>` and `<style>` tags.

    Allowed values are `'sha256'`, `'sha384'`, `'sha512'`.

    It may be left blank or set to a Perl false value to indicate that hashes
    should not be calculated, if performance is a concern.

- no\_compress\_comment

    If not set to a true value it is allowed to set a HTML comment that prevents the input being packed.

        <!-- HTML::Packer _no_compress_ -->

    Is not set by default.

- html5

    If set to a true value closing slashes will be removed from void elements.

- csp

    If `do_csp` is set to `'sha256'`, returns a hash that looks like this:

        (
            'script-src' => [qw( sha256-...= sha256-...= )],
            'style-src'  => [qw( sha256-...= sha256-...= )],
        )

    with each element of the `ARRAY`refs containing a CSP-friendly hash for a
    `<script>` or `<style>` tag.

# AUTHOR

Merten Falk, `<nevesenin at cpan.org>`. Now maintained by Lee
Johnson (LEEJO) with contributions from:

        Alexander Krizhanovsky <ak@natsys-lab.com>
        Bas Bloemsaat <bas@bloemsaat.com>
        girst <girst@users.noreply.github.com>
        Ankit Pati (ANKITPATI) <contact@ankitpati.in>

# BUGS

Please report any bugs or feature requests through
the web interface at [https://github.com/leejo/html-packer-perl/issues](https://github.com/leejo/html-packer-perl/issues). I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.

# SUPPORT

You can find documentation for this module with the perldoc command.

perldoc HTML::Packer

# COPYRIGHT & LICENSE

Copyright 2009 - 2011 Merten Falk, all rights reserved.

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

# SEE ALSO

[HTML::Clean](https://metacpan.org/pod/HTML::Clean)
