Skip to content

Releases: tdewolff/minify

v2.2.0

19 Oct 22:34
Compare
Choose a tag to compare

This is an incremental update over v2.1.0.

Changelog:

  • CSS: properly handle bad declarations
  • CSS: parse custom properties
  • HTML: option to keep conditional comments
  • Remove Content-Length in middleware
  • HTML: attribute spellcheck is not a boolean
  • JS: improved parsing of edge cases

CLI:

  • Limit maximum concurrency for opening files to 50 (default)

SVG

21 Jan 12:30
Compare
Choose a tag to compare
SVG

This v2.1 release added a much improved SVG minifier. Equinox has been added to distribute binaries and make installation easier, see Equinox (which says version 2.1.5). The CLI tool has matured and various bugfixes and feature requests are in this release.

Change log:

  • HTML: do not keep IE conditional comments
  • HTML: do not remove CDATA tags, as CDATA is invalid HTML anyways
  • HTML: option to keep document tags (html, head and body)
  • CSS/SVG: decimal precision can be set in the options
  • SVG: more advanced minification
  • export MinifierFunc
  • new Match function that returns the minifier function that gets matched to a mediatype
  • parsers return an error when they stop before the EOF
  • ResponseWriter and Middleware functionality added

Bugfixes:

  • HTML: whitespace around img and similar inline tags preserved
  • HTML: whitespace within pre tag properly preserved
  • HTML: the math and svg tags themselves are now parsed by their respective parsers
  • CSS/SVG: valid rounding and truncating of decimals
  • CSS: do not lowercase all identifiers, as they may be <custom-ident>
  • CSS: rgba and hsla now work properly
  • CSS: keep certain required number dimensions
  • SVG: path data for arc; sweep and large-arg flags are now treated as booleans
  • JS: keep newline or semicolon before !function(){}
  • JS: keep newline before lines that start with a string in certain instances, the original JSMin does not handle this
  • JS: keep newline between } and string or ident

CLI:

  • Add concatenation support
  • Add more support for file and directory watching
  • Only overwrite files when explicitly set output equal to input, previously an empty output would imply overwriting, now it means writing to stdout as intended

Options

21 Apr 20:22
Compare
Choose a tag to compare

This v2 releases introduces passing options to minifiers. This is a feature that resulted in an API change, additionally I did some API clean up as well. This works with parse-v2.0.0.

Furthermore, performance of several components has been improved. Tests have been added and improved.

Change log:

  • options have been added
  • Reader and Writer functions are added
  • whitespace trimming doesn't convert newline to space if it can't remove it
  • bang-comments are preserved
  • improved CDATA processing
  • HTML URL minification

Bugfixes:

  • HTML: mediatype attribute in foreign/style/script wasn't copied
  • HTML/XML: don't panic on early ending end tags
  • SVG: allow single quotes attributes
  • SVG: keep M command character

CLI changes:

  • complete refactor allowing for a variety of inputs (streams, files, directories)
  • more parameters such as watching directory changes, recursive minification and options for the minifiers
  • processes files in parallel

Zero-copy

02 Nov 23:21
Compare
Choose a tag to compare

This uses a more efficient underlying buffer which removes any need to copy byte slices. All minifiers have higher performance, bugfixes and test refactoring.

v1

12 Sep 08:33
Compare
Choose a tag to compare
v1

This denotes a stable release point which is guaranteed to work in the future. Bugfixes and development is done on this version, while promising a stable API. Meanwhile work is put into v2.0.0 which will support options passing.