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.
Jakub Pawlowicz [Sun, 7 Dec 2014 22:12:01 +0000 (22:12 +0000)]
Simplifies regular expressions in CleanUp module.
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.
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.
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.
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).
Jakub Pawlowicz [Wed, 3 Dec 2014 18:50:45 +0000 (18:50 +0000)]
Fixes rouge whitespace handling.
Jakub Pawlowicz [Mon, 1 Dec 2014 21:26:20 +0000 (21:26 +0000)]
Fixes generating relative paths to mapped source files.
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.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:54:20 +0000 (23:54 +0000)]
Simplifies resolving paths in source map stringifier.
Jakub Pawlowicz [Sat, 29 Nov 2014 23:47:12 +0000 (23:47 +0000)]
Refactors source map stringifier in OO style.
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.
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.
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.
Jakub Pawlowicz [Sun, 23 Nov 2014 10:31:28 +0000 (10:31 +0000)]
Fixes an issue with incorrect source maps inside property blocks.
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.
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().
Jakub Pawlowicz [Fri, 14 Nov 2014 21:56:20 +0000 (21:56 +0000)]
Enables source map tracking only if sourceMap is not falsy.
Jakub Pawlowicz [Fri, 14 Nov 2014 19:51:07 +0000 (19:51 +0000)]
Speeds up source maps by restoring escaped content only if needed.
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.
Jakub Pawlowicz [Tue, 11 Nov 2014 19:48:28 +0000 (19:48 +0000)]
Adds pulling input source maps from source map comment.
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.
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.
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.
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.
Jakub Pawlowicz [Fri, 7 Nov 2014 18:51:41 +0000 (18:51 +0000)]
Fixes stray whitespace tracking in blocks (@media, etc).
Jakub Pawlowicz [Thu, 6 Nov 2014 13:51:57 +0000 (13:51 +0000)]
Fixes line tracking in blocks (@media, @font-face, etc).
Jakub Pawlowicz [Mon, 3 Nov 2014 20:59:13 +0000 (20:59 +0000)]
Changes minify method output to handle multiple outputs.
Jakub Pawlowicz [Sun, 2 Nov 2014 16:20:53 +0000 (16:20 +0000)]
Extracts rebuilding tokens into Stringifier class.
Jakub Pawlowicz [Sun, 2 Nov 2014 15:57:17 +0000 (15:57 +0000)]
Adds source file tracking to source maps.