Changelog picked from https://github.com/tdewolff/minify/releases
v2.7.3
external minifiers can now use input/output files instead of only stdin/stdout using the $in and $out keywords
SVG: don't minify inside foreignObject, fixes#291
v2.7.2
SVG: bugfix for C, S, Q, and T commands where if the control points would not overlap with the start or end points of the curve, it would still be converted to a line.
v2.7.1
DataURI: if the original data URI is shorter than the URL-encoded/base64-encoded URI, use the original instead, fixes#282
Bugfix: decimal (i.e. without exponentials) incorrectly minified 139.9 to 230 instead of 140
v2.7.0
Use custom URL encode/decode functions to fix#180 and #243
Decimal and Number now take precision to mean the number of significant digits, and not the number of digits behind the dot (decimals); includes a few subtle bugfixes. Decimals option renamed to Precision
Move Hash definitions and EntitiesMap from tdewolff/parse to this repository to prevent releasing new versions of tdewolff/parse everytime
cmd: add --sync functionality
cmd: make --watch work for newly created directories
cmd: various fixes and improved messages
CSS: keep quotes around IE font families, fixes#251
CSS: major refactor to allow nested functions to be minified
CSS: improved HSL/RGB minification
CSS: minify more properties: color, background-color, border-color, border-*-color, caret-color, outline-color, fill, stroke, column-rule, text-shadow, text-decoration, text-emphasis, flex, flex-*, order, fixes#217
CSS: minify background better if it has multiple layers
CSS: improve box-shadow minification
CSS: accept CSS functions where numbers/lengths are required, such as calc, min, max, clamp, attr, var
SVG: print new path command after bad command, fixes#275
SVG: print A command correctly with boolean largeArc and sweep
SVG: avoid precision errors for alternative (absolute or relative commands) path
v2.6.3
Add install.sh and Makefile to ./cmd/minify.
No changes to binaries (use v2.6.2).
v2.6.2
HTML: ignore CSS minification for amp-boilerplate
HTML: add KeepQuotes option for attributes
XML: bugfix for recent changes to XML parser
v2.6.1
Upgrade to tdewolff/parse@2.3.14:
Re-parse input immediately when encountering parse error. Previously this was only done if the error was actually read which would save us from re-parsing the file (i.e. better performance). However, an error is (a) rare and (b) happens only once per file. Re-parsing on errors does not impact the performance of well formatted files, and a reliable error message is valued more.
Bugfix: prevent infinite loop on error on input file that contains unicode code points (i.e. any character bigger than 0xC0 usually followed by more bytes).
Improve error messages for parsers to include parser name and print offending byte(s)
v2.6.0
CSS: remove space after function in property value; margin:calc(10px) calc(20px) => margin:calc(10px)calc(20px)
SVG: parse A path command correctly when the booleans largeArc and sweep are not separated by a space, such as in A10 10 0 0120 0 which is equivalent to A10 10 0 0 1 20 0
SVG bugfix: make sure we are processing a valid path command
SVG bugfix: prevent panic when having insufficient path arguments
cmd: surpress error when minifying empty directory
HTML: only minify attributes for known HTML5 tags, fixes#270
HTML, XML, SVG: minify entities with parse@2.3.13 such as: " => ", " => ", " => ", ’ => ’, ✏ => ✏.
v2.5.2
Bugfixes:
SVG: don't convert polyline/rect/polygon/line to path, which can break CSS, fixes#260
SVG: relative SVG Bézier commands not properly minified
CSS: don't remove whitespace in nested unknown at-rules, fixes#262
CSS: fix panic for background when it contains functions other than calc for background-position, fixes#263
CSS: fix panic for background-position with three numbers
CSS: fix panic for url() with only whitespace or only one quote
v2.5.1
Remove import comments
SVG: do not convert line/rect to path if coordinates are relative percentages
CSS: fix bug with inline CSS encountering }
v2.5.0
CSS: fix position information in error context
CSS: fix background-position panic with offsets that are zero
HTML: trim and collapse whitespace in certain attribute values
SVG: shorten cubic and quadratic Beziér path data to their shorter format or to line segments
v2.4.0
When minifying floating points, remove trailing zeros and not other numbers
Make M concurrent-safe
HTML: keep double quotes around XML-flavour RDFa attributes
CSS: revert the use of the #RRGGBBAA format as proposed in Color Module Level 4 as it is not yet an official W3C recommendation
CSS: background-position (also within background) now works with 3 and 4 values as well
SVG: skipping metadata or rect tags properly even if they are closed by a void tag (like <rect/>)
SVG pathdata: when cursor doesn't move, don't emit any commands
Minify is a minifier package written in Go. It provides HTML5,
CSS3, JS, JSON, SVG and XML minifiers and an interface to implement
any other minifier. Minification is the process of removing bytes
from a file (such as whitespace) without changing its output and
therefore shrinking its size and speeding up transmission over the
internet and possibly parsing. The implemented minifiers are designed
for high performance.
The core functionality associates mimetypes with minification
functions, allowing embedded resources (like CSS or JS within HTML
files) to be minified as well. Users can add new implementations
that are triggered based on a mimetype (or pattern), or redirect
to an external command (like ClosureCompiler, UglifyCSS, ...).