Jakub Pawlowicz [Tue, 17 Feb 2015 19:50:24 +0000 (19:50 +0000)]
Updates History.md with #463 info.
Siguršur Gušbrandsson [Mon, 16 Feb 2015 21:35:19 +0000 (21:35 +0000)]
Fixes #463 - relative remote @import URLs.
Testcase:
cleancss -d --root http://jeffwalker.com/wp-content/themes/salient-child/ http://jeffwalker.com/wp-content/themes/salient-child/style.css?ver=4.1.1
Jakub Pawlowicz [Mon, 16 Feb 2015 09:13:26 +0000 (09:13 +0000)]
Merge pull request #461 from XhmikosR/ci
Update CI configs
XhmikosR [Mon, 16 Feb 2015 07:10:31 +0000 (09:10 +0200)]
AppVeyor: clear cache when package.json changes.
XhmikosR [Mon, 16 Feb 2015 07:10:18 +0000 (09:10 +0200)]
Travis CI: Add io.js and fast finish.
Jakub Pawlowicz [Sun, 15 Feb 2015 21:26:31 +0000 (21:26 +0000)]
Tweaks source maps tests to allow Windows tests to pass.
Jakub Pawlowicz [Sun, 15 Feb 2015 21:04:42 +0000 (21:04 +0000)]
Merge pull request #458 from XhmikosR/appveyor
Add AppVeyor for Windows tests.
XhmikosR [Sat, 7 Feb 2015 13:04:47 +0000 (15:04 +0200)]
Add AppVeyor for Windows tests.
Jakub Pawlowicz [Wed, 11 Feb 2015 09:15:17 +0000 (09:15 +0000)]
Clean up in History.md.
* Old repo name sneaked in.
* Pre-release diff should point to `HEAD` instead of a missing tag.
Jakub Pawlowicz [Wed, 11 Feb 2015 09:13:16 +0000 (09:13 +0000)]
Updates changelog with node.js 0.12 info.
Jakub Pawlowicz [Tue, 10 Feb 2015 20:47:48 +0000 (20:47 +0000)]
Enables 'by selector' advanced merging over media.
It works already for merging media blocks, so it's just a matter
of enabling it for 'by selector' merging.
Jakub Pawlowicz [Tue, 10 Feb 2015 07:55:19 +0000 (07:55 +0000)]
Adds a way to switch off `@media` merging.
* In API mode, set `mediaMerging` option to false.
* In CLI mode, add `--skip-media-merging` switch.
Jakub Pawlowicz [Tue, 10 Feb 2015 07:31:00 +0000 (07:31 +0000)]
Improves selector traversal in advanced merging.
Selectors can be reordered if one of the following rules regarding
any pair of its properties is met:
* Property name root (`font` in `font-size`) is different, e.g.
`margin:0` <-> `color:red`
* Property name root, name, and value are the same, e.g.
`color:red` <-> `color:red`
`margin-top:0` <-> `margin-top:0`
* Property name root is the same, names are different, and any name
is not root, e.g
`margin-top:0` <-> `margin-bottom:10px`
Jakub Pawlowicz [Sun, 8 Feb 2015 11:42:42 +0000 (11:42 +0000)]
Simplifies selector traversal in advanced merging.
Unifies selector traversal from `@media` merge algorithm and one
merging selectors with same name.
Effectively solves `@media` merging issue when traversed property
can be a shorthand.
Jakub Pawlowicz [Sun, 8 Feb 2015 11:00:40 +0000 (11:00 +0000)]
Fixes an edge case in merging non-adjacent selectors by name.
Jakub Pawlowicz [Sat, 7 Feb 2015 19:45:37 +0000 (19:45 +0000)]
Fixes #204 - media query merging.
It adds media query merging with the following set of rules:
* adjacent media with same conditions can be merged;
* non-adjacent media with same conditions can be merged only if
any of moved properties is not redefined in-between, or a
property is redefined with the exactly same value.
Jakub Pawlowicz [Tue, 10 Feb 2015 15:51:08 +0000 (15:51 +0000)]
Fixes tokenization regression issue.
Introduced in
a9c75d34.
Jakub Pawlowicz [Tue, 10 Feb 2015 09:09:37 +0000 (09:09 +0000)]
Merge pull request #456 from XhmikosR/travis
Travis: test node.js 0.12 too.
XhmikosR [Sat, 7 Feb 2015 10:17:13 +0000 (12:17 +0200)]
Travis: test node.js 0.12 too.
Jakub Pawlowicz [Sat, 7 Feb 2015 12:19:08 +0000 (12:19 +0000)]
Version 3.0.10 release notes.
Jakub Pawlowicz [Sat, 7 Feb 2015 12:16:07 +0000 (12:16 +0000)]
Fixes #455 - whitespace between braces.
`( (` was handled incorrectly as the first brace got removed.
Jakub Pawlowicz [Sat, 7 Feb 2015 11:44:31 +0000 (11:44 +0000)]
Fixes #453 - x & y `background-repeat`.
Apparently we were not handling double `background-repeat` previously.
Jakub Pawlowicz [Wed, 4 Feb 2015 23:57:01 +0000 (23:57 +0000)]
Version 3.0.9.
Jakub Pawlowicz [Wed, 4 Feb 2015 23:53:20 +0000 (23:53 +0000)]
Fixes #452 - regression in non-adjacent merging.
It's a regression from 2.2 as we added a smarter merging but it
does not always correctly compare arrays (bloody JavaScript ;-).
Jakub Pawlowicz [Sun, 1 Feb 2015 11:52:54 +0000 (11:52 +0000)]
Fixes #449 - missing close brace in a selector.
Adds proper handling of missing closing brace in selectory body:
* warning is raised;
* extra content is ignored.
Jakub Pawlowicz [Sat, 31 Jan 2015 10:15:40 +0000 (10:15 +0000)]
Version 3.0.8.
Jakub Pawlowicz [Sat, 31 Jan 2015 10:11:46 +0000 (10:11 +0000)]
Fixes #447 - `background-color` in shorthands.
Apparently `background-color` with a value of `none` can't be merged
into a shorthand as `none` value will override `background-image`.
Jakub Pawlowicz [Fri, 30 Jan 2015 22:32:25 +0000 (22:32 +0000)]
Fixes #450 - color names to hex codes.
Regexp matching color names was too greedy and was matching some
other values as well.
On the downside we need to run the replacement twice.
On the upside it extracts replacement functions so we get a slight
speed boost.
Jakub Pawlowicz [Tue, 27 Jan 2015 08:16:38 +0000 (08:16 +0000)]
Fixes #419 - handling multiple input source maps.
Adds support for multiple input source maps when data is passed in
as a hash, e.g.:
```
new CleanCSS({ sourceMap: true }).minify({
'path/to/source/1': {
styles: '...styles...',
sourceMap: '...source-map...'
},
'path/to/source/2': {
styles: '...styles...',
sourceMap: '...source-map...'
}
})
```
Effectively it is the same as concatenating source maps, but should
be less error-prone.
See 'multiple source maps' in `test/source-map-test.js` for examples.
Jakub Pawlowicz [Fri, 23 Jan 2015 22:55:39 +0000 (22:55 +0000)]
Fixes #445 - speed issue in url processor.
Obviously we don't need to search for uppercase URLs constantly, just
if there is at least one.
Jakub Pawlowicz [Fri, 23 Jan 2015 22:51:07 +0000 (22:51 +0000)]
Ensures all uppercase urls are turned into lowercase.
Ommited by mistake in
80418fac5bf7ce6bfe98f75dcb4c6c3aeb185d0d.
Jakub Pawlowicz [Thu, 22 Jan 2015 20:10:00 +0000 (20:10 +0000)]
Fixes #442 - space before adjacent `nav`.
As it turns out Android stock browser <= 4.3 needs a space
between `+` and `nav`, e.g. `div+ nav{}`.
It's off by default and can be turned on with:
* `--compatibility +selectors.adjacentSpace` or
* `compatibility: { selectors: { adjacentSpace: true } }`
See http://codepen.io/anon/pen/QwgLVv
Jakub Pawlowicz [Thu, 22 Jan 2015 19:49:13 +0000 (19:49 +0000)]
Fixes #439 - `background-origin` into shorthand.
Adds last missing bit in processing `background` shorthands with
`background-origin` and `background-clip` merging.
Follow up to #435.
See http://www.w3.org/TR/css3-background/#the-background
Jakub Pawlowicz [Thu, 22 Jan 2015 17:53:15 +0000 (17:53 +0000)]
Merge pull request #443 from XhmikosR/master
Update JSHint to v2.6.0.
Jakub Pawlowicz [Thu, 22 Jan 2015 17:53:05 +0000 (17:53 +0000)]
Merge pull request #440 from XhmikosR/patch-1
Update History.md
XhmikosR [Thu, 22 Jan 2015 16:10:44 +0000 (18:10 +0200)]
Update JSHint to v2.6.0.
Jakub Pawlowicz [Thu, 22 Jan 2015 10:54:21 +0000 (10:54 +0000)]
Version 3.0.7.
Jakub Pawlowicz [Thu, 22 Jan 2015 10:52:42 +0000 (10:52 +0000)]
Fixes #441 - hex to name color converting.
Apparently if a hex was a substring of a known hex -> name color conversion,
then it was also replaced.
Fixed by checking if hex are matched fully.
XhmikosR [Wed, 21 Jan 2015 12:43:50 +0000 (14:43 +0200)]
Update History.md
[ci skip]
Jakub Pawlowicz [Tue, 20 Jan 2015 22:09:58 +0000 (22:09 +0000)]
Fixes #435 - background-clip in background shorthand.
Adds background-clip support in collapsing into background shorthands.
It hasn't been until now so such properties were effectively dropped
from shorthands resulting in a wrong background clipping.
Jakub Pawlowicz [Tue, 20 Jan 2015 21:08:05 +0000 (21:08 +0000)]
Version 3.0.6.
Jakub Pawlowicz [Tue, 20 Jan 2015 21:00:25 +0000 (21:00 +0000)]
Refixes #414 - source map position fallback.
Apparently the original fix does not always work as selectors are
being sorted during optimizations so we cannot predict how many
fallback needs to be taken.
Fortunately doing all fallbacks for selector list is also safe, given
a source map is properly built.
It won't be needed anymore once #396 is in place.
Test case provided by @unlok in #438.
Jakub Pawlowicz [Sun, 18 Jan 2015 19:06:24 +0000 (19:06 +0000)]
Fixes #351 - remote `@import`s after content.
Changes behavior of importing remote styles after other content,
when minifying without a callback (requirement for remote `@import`s).
So far such `@import`s were kept intact and no warnings were reported.
From now on they are removed and a warning is raised, one per `@import`.
It is due to a fact that all browsers ignore `@import`s when they appear
not at the beginning of a stylesheet.
In case if a remote `@import` appears after other remote or local ones
it won't be dropped as it may be resolved at runtime (in the browser).
Jakub Pawlowicz [Sun, 18 Jan 2015 12:35:07 +0000 (12:35 +0000)]
Version 3.0.5.
Jakub Pawlowicz [Sun, 18 Jan 2015 12:24:11 +0000 (12:24 +0000)]
Fixes #433 - merging `!important` properties in shorthands.
This happens when a property is not mergeable under normal conditions,
which is 'background-size' only, as it's behind a compatibility flag, e.g.
```css
a {
background:#fff !important;
background-size:10px 10px!important;
}
```
was leading to the latter property being lost.
Jakub Pawlowicz [Thu, 15 Jan 2015 21:39:54 +0000 (21:39 +0000)]
Fixes #414 - source map position fallback.
Apparently there is a problem with building source maps from input
source maps when the latter one does not have correct (?) selector
positions.
It happens to postcss which in case of such a source:
```css
selector-1,
selector-2,
selector-3
{
color:red;
}
```
generates selector source position for the first selector only.
To fix this issue clean-css tries to find out correct selector
position going to lines above which may have a selector position.
Jakub Pawlowicz [Wed, 14 Jan 2015 20:02:13 +0000 (20:02 +0000)]
Adds missing info about passing arrays to `minify` method.
Apparently I forgot to include Readme section with #400.
Follow up to
f22851cb5a4f21ecf2189a998757724c8e910a93.
Jakub Pawlowicz [Mon, 12 Jan 2015 23:12:53 +0000 (23:12 +0000)]
Fixes #416 - accepts hash as a list of arguments.
Such a hash is now accepted as the first argument to `minify` method:
```javascript
{
'path/to/file/one': {
styles: 'contents of file one'
},
'path/to/file/two': {
styles: 'contents of file two'
}
}
```
This is also prepares us to implement #419 - merging input source maps.
Jakub Pawlowicz [Sun, 11 Jan 2015 10:29:10 +0000 (10:29 +0000)]
Version 3.0.4.
Jakub Pawlowicz [Sun, 11 Jan 2015 10:26:13 +0000 (10:26 +0000)]
Fixes #314 - handling spaces inside calc expressions.
Jakub Pawlowicz [Wed, 7 Jan 2015 14:00:57 +0000 (14:00 +0000)]
Version 3.0.3.
Jakub Pawlowicz [Thu, 8 Jan 2015 23:22:48 +0000 (23:22 +0000)]
Fixes #357 - remaining non-standard but valid URL syntax.
Jakub Pawlowicz [Thu, 8 Jan 2015 23:05:21 +0000 (23:05 +0000)]
Fixes source map specs.
Jakub Pawlowicz [Thu, 8 Jan 2015 22:48:33 +0000 (22:48 +0000)]
Fixes #431 - documents behaviour when no callback given.
Jakub Pawlowicz [Tue, 6 Jan 2015 20:29:07 +0000 (20:29 +0000)]
Fixes #158 - adds advanced selectors rearrangements.
* Moves selectors around if moved properties are not redefined in between.
Jakub Pawlowicz [Tue, 6 Jan 2015 19:16:57 +0000 (19:16 +0000)]
Adds better non-adjacent selector merging when body is the same.
* See #158.
Jakub Pawlowicz [Tue, 6 Jan 2015 18:28:34 +0000 (18:28 +0000)]
Bumps master version to 3.1.0-pre.
Jakub Pawlowicz [Sun, 4 Jan 2015 20:12:05 +0000 (20:12 +0000)]
Fixes #182 - removing space after closing brace.
* It's not only for transform functions but any function.
* On by default, off in IE<9 compatibility mode.
* Can be managed using `+-properties.spaceAfterClosingBrace` compatibility option.
Jakub Pawlowicz [Sun, 4 Jan 2015 11:42:59 +0000 (11:42 +0000)]
Adds 0deg -> 0 minification.
* That's when value is the only argument, e.g. `skew` or `rotate`.
Jakub Pawlowicz [Sun, 4 Jan 2015 10:48:33 +0000 (10:48 +0000)]
Version 3.0.2.
Jakub Pawlowicz [Sun, 4 Jan 2015 10:44:18 +0000 (10:44 +0000)]
Fixes #422 - proper calc() handling in background position.
Jakub Pawlowicz [Wed, 31 Dec 2014 14:50:41 +0000 (14:50 +0000)]
Merge pull request #426 from XhmikosR/deps
Update commander dependency.
XhmikosR [Tue, 30 Dec 2014 08:02:51 +0000 (10:02 +0200)]
Update commander dependency.
Jakub Pawlowicz [Fri, 26 Dec 2014 06:44:54 +0000 (06:44 +0000)]
Merge pull request #424 from XhmikosR/patch-1
Update README.md
XhmikosR [Thu, 25 Dec 2014 17:31:43 +0000 (19:31 +0200)]
Update README.md
Remove obsolete info about 1.x to 2.x upgrade now that 3.x is out.
Jakub Pawlowicz [Thu, 25 Dec 2014 17:27:35 +0000 (17:27 +0000)]
Merge pull request #423 from XhmikosR/deps
Update devDependencies.
XhmikosR [Thu, 25 Dec 2014 16:38:05 +0000 (18:38 +0200)]
Update Browserify devDependency.
Jakub Pawlowicz [Sat, 20 Dec 2014 11:53:26 +0000 (11:53 +0000)]
Merge pull request #413 from silverwind/patch-1
Readme: Update badges
silverwind [Sat, 20 Dec 2014 00:05:41 +0000 (01:05 +0100)]
Readme: Update badges
Jakub Pawlowicz [Fri, 19 Dec 2014 21:03:22 +0000 (21:03 +0000)]
Version 3.0.1.
Jakub Pawlowicz [Fri, 19 Dec 2014 21:00:45 +0000 (21:00 +0000)]
Fixes #410 - handling comments in advanced optimizations.
Jakub Pawlowicz [Fri, 19 Dec 2014 20:33:51 +0000 (20:33 +0000)]
Fixes #411 - stringifying properties with important comments.
Jakub Pawlowicz [Thu, 18 Dec 2014 21:18:44 +0000 (21:18 +0000)]
Version 3.0.0.
Jakub Pawlowicz [Thu, 18 Dec 2014 20:51:14 +0000 (20:51 +0000)]
Adds missing history of 2.2.x.
* That's for backported issues only.
Jakub Pawlowicz [Thu, 18 Dec 2014 00:35:38 +0000 (00:35 +0000)]
Fixes #405 - background-size merging is off by default.
* That's to remedy issues in Chrome and older versions of Safari and stock Android browsers.
* If not for Chrome's issue then it would have been left on by default.
Jakub Pawlowicz [Thu, 18 Dec 2014 00:26:22 +0000 (00:26 +0000)]
Fixes #398 - restoring important comments.
* Should be rather done on tokenization step. To be improved in 3.1.
Jakub Pawlowicz [Tue, 16 Dec 2014 20:24:07 +0000 (20:24 +0000)]
Updates readme with a correct path to integration tests.
Jakub Pawlowicz [Tue, 16 Dec 2014 20:22:51 +0000 (20:22 +0000)]
Moves 'test/data' and 'test/data-bench' to 'test/fixtures'.
Jakub Pawlowicz [Tue, 16 Dec 2014 00:04:09 +0000 (00:04 +0000)]
Bumps nock and changes its version matching.
* Saves us from endless bumps as new nock versions are coming way too often.
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.
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.
Jakub Pawlowicz [Sun, 14 Dec 2014 10:43:14 +0000 (10:43 +0000)]
Fixes broken specs due to code formatting :/
Jakub Pawlowicz [Sun, 14 Dec 2014 09:46:11 +0000 (09:46 +0000)]
Averages benchmark time over 10 runs.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:59:44 +0000 (20:59 +0000)]
Simplifies arguments handling in binary.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:44:24 +0000 (20:44 +0000)]
Rewrites url rebasing and rewriting in OO style.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:35:05 +0000 (20:35 +0000)]
Removes unnecessary variable declarations.
Jakub Pawlowicz [Sat, 13 Dec 2014 20:27:22 +0000 (20:27 +0000)]
Simplifies input source map tracker.
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.
Jakub Pawlowicz [Sat, 13 Dec 2014 11:53:02 +0000 (11:53 +0000)]
Fixes issue #404 - removes all state sharing in API.
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.
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.
Jakub Pawlowicz [Wed, 10 Dec 2014 20:16:21 +0000 (20:16 +0000)]
Removes extra `list-style` and `outline` merging.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:01:08 +0000 (23:01 +0000)]
Fixes #373 - background merging is entirely handled by shorthand compactor.
Jakub Pawlowicz [Wed, 10 Dec 2014 07:56:06 +0000 (07:56 +0000)]
Bumps nock dev dependency to 0.51.
Jakub Pawlowicz [Wed, 10 Dec 2014 07:53:02 +0000 (07:53 +0000)]
Bumps Browserify dev dependency to 7.x.
Jakub Pawlowicz [Tue, 9 Dec 2014 22:06:27 +0000 (22:06 +0000)]
Fixes #352 - honors `rebase: false` / `--skip-rebase` in imported stylesheets.
Jakub Pawlowicz [Tue, 9 Dec 2014 21:05:52 +0000 (21:05 +0000)]
Updates source maps documentation.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:31:13 +0000 (21:31 +0000)]
Adds source map info to release notes.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:30:24 +0000 (21:30 +0000)]
Updates acknowledgements section.
Jakub Pawlowicz [Mon, 8 Dec 2014 21:07:33 +0000 (21:07 +0000)]
Adds source map documentation to readme.