Provided by: libcss-minifier-xs-perl_0.13-1build6_amd64 bug

NAME

       CSS::Minifier::XS - XS based CSS minifier

SYNOPSIS

         use CSS::Minifier::XS qw(minify);
         my $css      = '...';
         my $minified = minify($css);

DESCRIPTION

       "CSS::Minifier::XS" is a CSS "minifier"; its designed to remove unnecessary whitespace and comments from
       CSS files, while also not breaking the CSS.

       "CSS::Minifier::XS" is similar in function to "CSS::Minifier", but is substantially faster as its written
       in XS and not just pure Perl.

METHODS

       minify($css)
           Minifies the given $css, returning the minified CSS back to the caller.

HOW IT WORKS

       "CSS::Minifier::XS"  minifies  the  CSS  by  removing unnecessary whitespace from CSS documents.  Comment
       blocks are also removed, except when (a) they contain the word "copyright" in them, or (b) they're needed
       to implement the "Mac/IE Comment Hack".

       Internally, the minification is done by taking multiple passes through the CSS document:

   Pass 1: Tokenize
       First, we go through and parse the CSS document into a  series  of  tokens  internally.   The  tokenizing
       process  does  not check to make sure that you've got syntactically valid CSS, it just breaks up the text
       into a stream of tokens suitable for processing by the subsequent stages.

   Pass 2: Collapse
       We then march through the token list  and  collapse  certain  tokens  down  to  their  smallest  possible
       representation.   If  they're  still  included in the final results we only want to include them at their
       shortest.

       Whitespace
           Runs of multiple whitespace characters are reduced down to a single  whitespace  character.   If  the
           whitespace  contains  any  "end  of  line"  (EOL)  characters,  then  the end result is the first EOL
           character encountered.  Otherwise, the result is the first whitespace character in the run.

       Comments
           Comments implementing the "Mac/IE Comment Hack" are collapsed down to the smallest  possible  comment
           that would still implement the hack ("/*\*/" to start the hack, and "/**/" to end it).

       Zero Units
           Zero  Units  (e.g.  "0px")  are reduced down to just "0", as the CSS specification indicates that the
           unit is not required when its a zero value.

   Pass 3: Pruning
       We then go back through the token list and prune and remove unnecessary tokens.

       Whitespace
           Wherever possible, whitespace is removed;  before+after  comment  blocks,  and  before+after  various
           symbols/sigils.

       Comments
           Comments  that  either (a) are needed to implement the "Mac/IE Comment Hack", or that (b) contain the
           word "copyright" in them are preserved.  All other comments are removed.

       Symbols/Sigils
           Semi-colons that are immediately followed by a closing brace (e.g. ";}") are removed; semi-colons are
           needed to separate multiple declarations, but aren't required at the end of a group.

       Everything else
           We keep everything else; identifiers, quoted literal strings, symbols/sigils, etc.

   Pass 4: Re-assembly
       Lastly, we go back through the token list and re-assemble it all back into a single CSS string, which  is
       then returned back to the caller.

AUTHOR

       Graham TerMarsch (cpan@howlingfrog.com)

COPYRIGHT

       Copyright (C) 2007-, Graham TerMarsch.  All Rights Reserved.

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

SEE ALSO

       "CSS::Minifier".

perl v5.38.2                                       2024-04-10                             CSS::Minifier::XS(3pm)