clean-css.git
9 years agoSimplifies assert checks in tests.
Jakub Pawlowicz [Mon, 15 Dec 2014 23:58:31 +0000 (23:58 +0000)]
Simplifies assert checks in tests.

* Also ensures `assert.equal` is always in the right order.

9 years agoFixes #400 - CleanCSS#minify accepts an array of filenames.
Jakub Pawlowicz [Sun, 14 Dec 2014 18:50:39 +0000 (18:50 +0000)]
Fixes #400 - CleanCSS#minify accepts an array of filenames.

* Both relative and absolute paths are supported - see test/module-test.js.

9 years agoFixes broken specs due to code formatting :/
Jakub Pawlowicz [Sun, 14 Dec 2014 10:43:14 +0000 (10:43 +0000)]
Fixes broken specs due to code formatting :/

9 years agoAverages benchmark time over 10 runs.
Jakub Pawlowicz [Sun, 14 Dec 2014 09:46:11 +0000 (09:46 +0000)]
Averages benchmark time over 10 runs.

9 years agoSimplifies arguments handling in binary.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:59:44 +0000 (20:59 +0000)]
Simplifies arguments handling in binary.

9 years agoRewrites url rebasing and rewriting in OO style.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:44:24 +0000 (20:44 +0000)]
Rewrites url rebasing and rewriting in OO style.

9 years agoRemoves unnecessary variable declarations.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:35:05 +0000 (20:35 +0000)]
Removes unnecessary variable declarations.

9 years agoSimplifies input source map tracker.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:27:22 +0000 (20:27 +0000)]
Simplifies input source map tracker.

9 years agoRewrites ImportInliner for full OO.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:21:35 +0000 (20:21 +0000)]
Rewrites ImportInliner for full OO.

* It's also a bit easier to understand now.

9 years agoFixes issue #404 - removes all state sharing in API.
Jakub Pawlowicz [Sat, 13 Dec 2014 11:53:02 +0000 (11:53 +0000)]
Fixes issue #404 - removes all state sharing in API.

9 years agoFixes #304 - background position merging.
Jakub Pawlowicz [Sat, 13 Dec 2014 10:42:56 +0000 (10:42 +0000)]
Fixes #304 - background position merging.

* Background positions with more than 2 components were treated incorrectly.

9 years agoFixes #403 - reworks tracking input files in source maps.
Jakub Pawlowicz [Fri, 12 Dec 2014 22:34:12 +0000 (22:34 +0000)]
Fixes #403 - reworks tracking input files in source maps.

* We don't keep filenames in escaped data anymore.

9 years agoRemoves extra `list-style` and `outline` merging.
Jakub Pawlowicz [Wed, 10 Dec 2014 20:16:21 +0000 (20:16 +0000)]
Removes extra `list-style` and `outline` merging.

9 years agoFixes #373 - background merging is entirely handled by shorthand compactor.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:01:08 +0000 (23:01 +0000)]
Fixes #373 - background merging is entirely handled by shorthand compactor.

9 years agoBumps nock dev dependency to 0.51.
Jakub Pawlowicz [Wed, 10 Dec 2014 07:56:06 +0000 (07:56 +0000)]
Bumps nock dev dependency to 0.51.

9 years agoBumps Browserify dev dependency to 7.x.
Jakub Pawlowicz [Wed, 10 Dec 2014 07:53:02 +0000 (07:53 +0000)]
Bumps Browserify dev dependency to 7.x.

9 years agoFixes #352 - honors `rebase: false` / `--skip-rebase` in imported stylesheets.
Jakub Pawlowicz [Tue, 9 Dec 2014 22:06:27 +0000 (22:06 +0000)]
Fixes #352 - honors `rebase: false` / `--skip-rebase` in imported stylesheets.

9 years agoUpdates source maps documentation.
Jakub Pawlowicz [Tue, 9 Dec 2014 21:05:52 +0000 (21:05 +0000)]
Updates source maps documentation.

9 years agoAdds source map info to release notes.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:31:13 +0000 (21:31 +0000)]
Adds source map info to release notes.

9 years agoUpdates acknowledgements section.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:30:24 +0000 (21:30 +0000)]
Updates acknowledgements section.

9 years agoAdds source map documentation to readme.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:07:33 +0000 (21:07 +0000)]
Adds source map documentation to readme.

9 years agoSimplifies regular expressions in CleanUp module.
Jakub Pawlowicz [Sun, 7 Dec 2014 22:12:01 +0000 (22:12 +0000)]
Simplifies regular expressions in CleanUp module.

9 years agoImproves selector cleanup.
Jakub Pawlowicz [Sun, 7 Dec 2014 21:44:58 +0000 (21:44 +0000)]
Improves selector cleanup.

* Removes unnecessary regexp.
* Does cleanup and removal of non-understandable selectors in one pass.

9 years agoFixes rebasing input source map sources.
Jakub Pawlowicz [Sun, 7 Dec 2014 11:54:08 +0000 (11:54 +0000)]
Fixes rebasing input source map sources.

* It's been broken in case if a target file exists.

9 years agoFixes handling escaped comments in tokenizer.
Jakub Pawlowicz [Sun, 7 Dec 2014 09:52:26 +0000 (09:52 +0000)]
Fixes handling escaped comments in tokenizer.

* That should be much easier with #395 which will get rid of them sooner.

9 years agoFixes tracking nested selectors from source input maps.
Jakub Pawlowicz [Sat, 6 Dec 2014 22:51:43 +0000 (22:51 +0000)]
Fixes tracking nested selectors from source input maps.

* It was broken because input source maps point to the most specific selector.
* We were tracking by least specific before.
* It is a more or less a hack since at 'stringify' stage we already lost info about original declaration.
  However it works well so it's gonna be done in 3.1 (see #396).

9 years agoFixes rouge whitespace handling.
Jakub Pawlowicz [Wed, 3 Dec 2014 18:50:45 +0000 (18:50 +0000)]
Fixes rouge whitespace handling.

9 years agoFixes generating relative paths to mapped source files.
Jakub Pawlowicz [Mon, 1 Dec 2014 21:26:20 +0000 (21:26 +0000)]
Fixes generating relative paths to mapped source files.

9 years agoFixes building source maps for styles with and without an input map.
Jakub Pawlowicz [Mon, 1 Dec 2014 20:40:59 +0000 (20:40 +0000)]
Fixes building source maps for styles with and without an input map.

* Previously stringifier was raisining an issue about a missing input source map.

9 years agoSimplifies resolving paths in source map stringifier.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:54:20 +0000 (23:54 +0000)]
Simplifies resolving paths in source map stringifier.

9 years agoRefactors source map stringifier in OO style.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:47:12 +0000 (23:47 +0000)]
Refactors source map stringifier in OO style.

9 years agoChanges column base in source maps from 1 to 0.
Jakub Pawlowicz [Thu, 27 Nov 2014 23:15:54 +0000 (23:15 +0000)]
Changes column base in source maps from 1 to 0.

* Apparently columns are counted from 0 in source maps. Bizarre but true.

9 years agoRemoves `name` property from output source map.
Jakub Pawlowicz [Wed, 26 Nov 2014 18:33:21 +0000 (18:33 +0000)]
Removes `name` property from output source map.

* Per discussion with Luke Page (see #125) it is used in case of shortened variables
  so probably useless when it comes to CSS.

9 years agoAdds correct rebasing for sources in input source maps.
Jakub Pawlowicz [Wed, 26 Nov 2014 18:26:24 +0000 (18:26 +0000)]
Adds correct rebasing for sources in input source maps.

* Supports absolute paths (when `root` option given).
* Supports relative paths (when `target` option given).
* Supports remote URLs.

9 years agoFixes an issue with incorrect source maps inside property blocks.
Jakub Pawlowicz [Sun, 23 Nov 2014 10:31:28 +0000 (10:31 +0000)]
Fixes an issue with incorrect source maps inside property blocks.

9 years agoEnsures CLI presents a warning when source map is set but target file is not.
Jakub Pawlowicz [Wed, 19 Nov 2014 08:02:14 +0000 (08:02 +0000)]
Ensures CLI presents a warning when source map is set but target file is not.

9 years agoAdds support for remote source maps.
Jakub Pawlowicz [Sun, 16 Nov 2014 12:33:21 +0000 (12:33 +0000)]
Adds support for remote source maps.

* http, https, and same protocol (//) are supported.
* Options from `inliner` hash are used for timeouts / extra request options.
* Errors & timeouts are handled gracefully.
* Apparently nock.restore() should be nock.cleanAll().

9 years agoEnables source map tracking only if sourceMap is not falsy.
Jakub Pawlowicz [Fri, 14 Nov 2014 21:56:20 +0000 (21:56 +0000)]
Enables source map tracking only if sourceMap is not falsy.

9 years agoSpeeds up source maps by restoring escaped content only if needed.
Jakub Pawlowicz [Fri, 14 Nov 2014 19:51:07 +0000 (19:51 +0000)]
Speeds up source maps by restoring escaped content only if needed.

9 years agoAdds tracking input source maps in imported files.
Jakub Pawlowicz [Wed, 12 Nov 2014 23:10:57 +0000 (23:10 +0000)]
Adds tracking input source maps in imported files.

* InputSourceMapTracker tracks source maps on per-file basis.

9 years agoAdds pulling input source maps from source map comment.
Jakub Pawlowicz [Tue, 11 Nov 2014 19:48:28 +0000 (19:48 +0000)]
Adds pulling input source maps from source map comment.

9 years agoAdds basic support for input source maps.
Jakub Pawlowicz [Tue, 11 Nov 2014 18:41:54 +0000 (18:41 +0000)]
Adds basic support for input source maps.

* `sourceMap` option can be given as source map string.
* Particularly useful for preprocessed stylesheets.

9 years agoAdds `--source-map` switch for building input's source map.
Jakub Pawlowicz [Sun, 9 Nov 2014 16:06:40 +0000 (16:06 +0000)]
Adds `--source-map` switch for building input's source map.

* It's enabled in CLI only if output file is given.

9 years agoAdds `--skip-shorthand-compacting`/`shorthandComacting` option for disabling shorthan...
Jakub Pawlowicz [Sat, 8 Nov 2014 12:23:08 +0000 (12:23 +0000)]
Adds `--skip-shorthand-compacting`/`shorthandComacting` option for disabling shorthand compacting.

* Also disables shorthand compacting for source maps as it is not defined well enough, yet.

9 years agoAdds source map stringifier.
Jakub Pawlowicz [Thu, 6 Nov 2014 13:45:48 +0000 (13:45 +0000)]
Adds source map stringifier.

* Stringifying with source maps "on" requires doing it in different order.
* Basically restoring escaped data has to be done on every token rather than at the end.

9 years agoFixes stray whitespace tracking in blocks (@media, etc).
Jakub Pawlowicz [Fri, 7 Nov 2014 18:51:41 +0000 (18:51 +0000)]
Fixes stray whitespace tracking in blocks (@media, etc).

9 years agoFixes line tracking in blocks (@media, @font-face, etc).
Jakub Pawlowicz [Thu, 6 Nov 2014 13:51:57 +0000 (13:51 +0000)]
Fixes line tracking in blocks (@media, @font-face, etc).

9 years agoChanges minify method output to handle multiple outputs.
Jakub Pawlowicz [Mon, 3 Nov 2014 20:59:13 +0000 (20:59 +0000)]
Changes minify method output to handle multiple outputs.

9 years agoExtracts rebuilding tokens into Stringifier class.
Jakub Pawlowicz [Sun, 2 Nov 2014 16:20:53 +0000 (16:20 +0000)]
Extracts rebuilding tokens into Stringifier class.

9 years agoAdds source file tracking to source maps.
Jakub Pawlowicz [Sun, 2 Nov 2014 15:57:17 +0000 (15:57 +0000)]
Adds source file tracking to source maps.

9 years agoAdds line/column tracking in tokenization.
Jakub Pawlowicz [Wed, 29 Oct 2014 20:26:21 +0000 (20:26 +0000)]
Adds line/column tracking in tokenization.

9 years agoMoves cleaning up tokens out of tokenizer.
Jakub Pawlowicz [Mon, 27 Oct 2014 20:46:17 +0000 (20:46 +0000)]
Moves cleaning up tokens out of tokenizer.

* Pulls out extracting logic into an utility class.

9 years agoRefactors advanced optimizer to get rid of functions in loops.
Jakub Pawlowicz [Sun, 26 Oct 2014 11:43:47 +0000 (11:43 +0000)]
Refactors advanced optimizer to get rid of functions in loops.

9 years agoClarifies conditions in advanced processing.
Jakub Pawlowicz [Sun, 26 Oct 2014 11:32:38 +0000 (11:32 +0000)]
Clarifies conditions in advanced processing.

9 years agoRenames variables in advanced optimiser to match others.
Jakub Pawlowicz [Sun, 26 Oct 2014 11:20:49 +0000 (11:20 +0000)]
Renames variables in advanced optimiser to match others.

9 years agoReworks simple & advanced optimisations to use metadata.
Jakub Pawlowicz [Thu, 23 Oct 2014 21:46:21 +0000 (22:46 +0100)]
Reworks simple & advanced optimisations to use metadata.

* We can avoid merging, splitting, and mapping by using token metadata directly.
* Unfortunately it means metadata has to be updated as we go.

9 years agoAdds a more performant version of rebuilder.
Jakub Pawlowicz [Thu, 23 Oct 2014 07:01:22 +0000 (08:01 +0100)]
Adds a more performant version of rebuilder.

9 years agoRewrites property tokenizer to use string traversing.
Jakub Pawlowicz [Wed, 22 Oct 2014 21:24:24 +0000 (22:24 +0100)]
Rewrites property tokenizer to use string traversing.

9 years agoAdds more advanced tokenizing.
Jakub Pawlowicz [Tue, 21 Oct 2014 08:16:06 +0000 (09:16 +0100)]
Adds more advanced tokenizing.

* We'll be able to hold more information about tokens now.

9 years agoAdds an option to store escaped metadata to UrlsProcessor.
Jakub Pawlowicz [Fri, 17 Oct 2014 21:31:37 +0000 (22:31 +0100)]
Adds an option to store escaped metadata to UrlsProcessor.

9 years agoAdds an option to store escaped metadata to FreeTextProcessor.
Jakub Pawlowicz [Fri, 17 Oct 2014 21:26:07 +0000 (22:26 +0100)]
Adds an option to store escaped metadata to FreeTextProcessor.

9 years agoAdds an option to store escaped metadata to ExpressionsProcessor.
Jakub Pawlowicz [Thu, 16 Oct 2014 18:36:35 +0000 (19:36 +0100)]
Adds an option to store escaped metadata to ExpressionsProcessor.

9 years agoAdds an option to store escaped metadata to CommentsProcessor.
Jakub Pawlowicz [Thu, 16 Oct 2014 18:27:36 +0000 (19:27 +0100)]
Adds an option to store escaped metadata to CommentsProcessor.

9 years agoTweaks EscapeStore to restore based on index not metadata.
Jakub Pawlowicz [Thu, 16 Oct 2014 18:26:43 +0000 (19:26 +0100)]
Tweaks EscapeStore to restore based on index not metadata.

9 years agoFixes #395 - unescaped brackets in data URIs.
Jakub Pawlowicz [Fri, 5 Dec 2014 23:10:52 +0000 (23:10 +0000)]
Fixes #395 - unescaped brackets in data URIs.

9 years agoMerge pull request #392 from silverwind/pseudo-class-merge
Jakub Pawlowicz [Tue, 2 Dec 2014 20:58:03 +0000 (20:58 +0000)]
Merge pull request #392 from silverwind/pseudo-class-merge

Exclude all problematic pseudo-classes from rule-merging

9 years agoFixes #390 - Update regexes for :first and :dir()
silverwind [Tue, 2 Dec 2014 19:15:41 +0000 (20:15 +0100)]
Fixes #390 - Update regexes for :first and :dir()

9 years agoFixes #390 - Exclude all problematic pseudo-classes from rule merge
silverwind [Mon, 1 Dec 2014 18:14:24 +0000 (19:14 +0100)]
Fixes #390 - Exclude all problematic pseudo-classes from rule merge

9 years agoFixes #390 - Merging of :fullscreen rules
silverwind [Sun, 30 Nov 2014 23:22:56 +0000 (00:22 +0100)]
Fixes #390 - Merging of :fullscreen rules

9 years agoFixes options coercing in API.
Jakub Pawlowicz [Sat, 29 Nov 2014 00:13:14 +0000 (00:13 +0000)]
Fixes options coercing in API.

* Apparently it was introduced when renaming options in 3.0.

9 years agoAdds support for @conter-style at-rule.
Jakub Pawlowicz [Sun, 23 Nov 2014 11:11:12 +0000 (11:11 +0000)]
Adds support for @conter-style at-rule.

9 years agoFixes #385 - edge cases in processing cut off CSS content.
Jakub Pawlowicz [Thu, 20 Nov 2014 23:14:00 +0000 (23:14 +0000)]
Fixes #385 - edge cases in processing cut off CSS content.

9 years agoFixes #383 - decimal places and rounding.
Jakub Pawlowicz [Mon, 17 Nov 2014 19:58:06 +0000 (19:58 +0000)]
Fixes #383 - decimal places and rounding.

* Introduced by #380. Should fix it for good.

9 years agoMerge pull request #382 from XhmikosR/master
Jakub Pawlowicz [Sun, 16 Nov 2014 10:39:13 +0000 (10:39 +0000)]
Merge pull request #382 from XhmikosR/master

Bump nock to v0.50.x.

9 years agoBump nock to v0.50.x.
XhmikosR [Sat, 15 Nov 2014 08:17:40 +0000 (10:17 +0200)]
Bump nock to v0.50.x.

9 years agoMerge pull request #381 from XhmikosR/master
Jakub Pawlowicz [Wed, 12 Nov 2014 09:32:33 +0000 (09:32 +0000)]
Merge pull request #381 from XhmikosR/master

Update dependencies.

9 years agoUpdate dependencies.
XhmikosR [Tue, 11 Nov 2014 13:22:21 +0000 (15:22 +0200)]
Update dependencies.

9 years agoFixes #380 - rounding fractions to a whole number.
Jakub Pawlowicz [Sun, 9 Nov 2014 16:54:39 +0000 (16:54 +0000)]
Fixes #380 - rounding fractions to a whole number.

9 years agoFixes #363 - `rem` units overriding more understandable ones.
Jakub Pawlowicz [Mon, 20 Oct 2014 19:15:27 +0000 (20:15 +0100)]
Fixes #363 - `rem` units overriding more understandable ones.

9 years agoAllows disabling rounding precision.
Lukas Böcker [Wed, 15 Oct 2014 14:10:46 +0000 (16:10 +0200)]
Allows disabling rounding precision.

* Use `roundingPrecision: -1` or `--rounding-precision \\-1`.

9 years agoFixes #344 - merging background-size into shorthand.
Jakub Pawlowicz [Wed, 15 Oct 2014 21:05:19 +0000 (22:05 +0100)]
Fixes #344 - merging background-size into shorthand.

* Adds properties.backgroundSizeMerging to control the behaviour.

9 years agoAdds more granular control over compatibility settings.
Jakub Pawlowicz [Tue, 14 Oct 2014 07:09:07 +0000 (08:09 +0100)]
Adds more granular control over compatibility settings.

* Manages compatibility options as a hash of options.
* Handles fallback to previous compatibility options.

9 years agoMerge pull request #368 from XhmikosR/master
Jakub Pawlowicz [Sun, 12 Oct 2014 15:33:06 +0000 (16:33 +0100)]
Merge pull request #368 from XhmikosR/master

README.md: use master branch for the Travis CI badge.

9 years agoReplaces remaining references to line breaks with require('os').EOL.
Jakub Pawlowicz [Sun, 12 Oct 2014 15:21:22 +0000 (16:21 +0100)]
Replaces remaining references to line breaks with require('os').EOL.

* Thanks @XhmikosR!

9 years agoFixes comments processor on non-*nix systems.
Jakub Pawlowicz [Sun, 12 Oct 2014 15:14:38 +0000 (16:14 +0100)]
Fixes comments processor on non-*nix systems.

* Windows, I'm looking at you!

9 years agoRemoves support for node.js 0.8.x.
Jakub Pawlowicz [Sun, 12 Oct 2014 09:39:41 +0000 (10:39 +0100)]
Removes support for node.js 0.8.x.

* Although 0.12 is not ready yet, support for 0.8 among libraries is waning.
* Bumps browserify dev dependency to 6.x.
* Bumps nock dev dependency to 0.48.

9 years agoREADME.md: use master branch for the Travis CI badge.
XhmikosR [Sat, 11 Oct 2014 06:21:31 +0000 (09:21 +0300)]
README.md: use master branch for the Travis CI badge.

9 years agoFixes specs under latest 0.11.
Jakub Pawlowicz [Fri, 10 Oct 2014 21:08:37 +0000 (22:08 +0100)]
Fixes specs under latest 0.11.

9 years agoAdds 3.0 release warning to docs.
Jakub Pawlowicz [Fri, 10 Oct 2014 20:48:56 +0000 (21:48 +0100)]
Adds 3.0 release warning to docs.

9 years agoSimplifies `SelectorsOptimizer` instantiation.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:47:20 +0000 (07:47 +0100)]
Simplifies `SelectorsOptimizer` instantiation.

9 years agoRenames `noRebase` option into `rebase`.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:45:56 +0000 (07:45 +0100)]
Renames `noRebase` option into `rebase`.

9 years agoRenames `noAggressiveMerging` option into `aggressiveMerging`.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:35:33 +0000 (07:35 +0100)]
Renames `noAggressiveMerging` option into `aggressiveMerging`.

9 years agoAdds missing entry to Readme about broken module compatibility.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:30:00 +0000 (07:30 +0100)]
Adds missing entry to Readme about broken module compatibility.

* see 3f1e064c91474ff9bd45ea39b11bc7bd564125c6.

9 years agoRenames `noAdvanced` option into `advanced`.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:29:07 +0000 (07:29 +0100)]
Renames `noAdvanced` option into `advanced`.

9 years agoImproves handling & documentation of minification options.
Jakub Pawlowicz [Fri, 10 Oct 2014 06:17:07 +0000 (07:17 +0100)]
Improves handling & documentation of minification options.

9 years agoUpdates changelog after reworked minification.
Jakub Pawlowicz [Thu, 9 Oct 2014 19:48:02 +0000 (20:48 +0100)]
Updates changelog after reworked minification.

9 years agoSpeeds up advanced processing by shortening optimize loop.
Jakub Pawlowicz [Thu, 9 Oct 2014 06:15:07 +0000 (07:15 +0100)]
Speeds up advanced processing by shortening optimize loop.

* As it seems we only need 2 extra passes from #removeDuplicates and #mergeAdjacent.

9 years agoReverses boolean passed to property optimizer.
Jakub Pawlowicz [Mon, 6 Oct 2014 20:28:50 +0000 (21:28 +0100)]
Reverses boolean passed to property optimizer.

9 years agoRemoves unnecessary libraries.
Jakub Pawlowicz [Mon, 6 Oct 2014 17:23:29 +0000 (18:23 +0100)]
Removes unnecessary libraries.

9 years agoSimplifies advanced processing & property optimizer interface.
Jakub Pawlowicz [Mon, 6 Oct 2014 14:45:53 +0000 (15:45 +0100)]
Simplifies advanced processing & property optimizer interface.

* Previously property optimizer accepted a string with selectors & returned a similar list.
* Since advanced optimizer operates on arrays now so does property optimizer.