clean-css.git
7 years agoVersion 4.0.12 release notes.
Jakub Pawlowicz [Wed, 12 Apr 2017 19:06:54 +0000 (21:06 +0200)]
Version 4.0.12 release notes.

7 years agoFixes #930 - regression in tidying selectors.
Jakub Pawlowicz [Tue, 11 Apr 2017 10:12:15 +0000 (12:12 +0200)]
Fixes #930 - regression in tidying selectors.

Why:

* `null` is not a safe argument to `replace` method as it's interpreted
  as a text pattern.

7 years agofix "optimizaton" typo (#928)
Nicolas Challeil [Fri, 7 Apr 2017 12:18:25 +0000 (14:18 +0200)]
fix "optimizaton" typo (#928)

7 years agoFixes #920 - allows skipping property optimizations.
Jakub Pawlowicz [Thu, 6 Apr 2017 12:58:39 +0000 (14:58 +0200)]
Fixes #920 - allows skipping property optimizations.

Why:

* To allow fine grained control over property level 2 optimizations;
* instead of disabling all property overriding it may be more useful to
  disable just specific ones.

7 years agoSee #254 - adds History.md changelog entry.
Jakub Pawlowicz [Wed, 5 Apr 2017 09:55:00 +0000 (11:55 +0200)]
See #254 - adds History.md changelog entry.

7 years agoSee #254 - adds system font support.
Jakub Pawlowicz [Wed, 5 Apr 2017 09:35:43 +0000 (11:35 +0200)]
See #254 - adds system font support.

Why:

* System fonts should not be mergeable with other types of fonts as such
  merging is not supported by browsers.

7 years agoReworks validator module.
Jakub Pawlowicz [Sun, 26 Mar 2017 12:51:14 +0000 (14:51 +0200)]
Reworks validator module.

Why:

* Technically speaking validator can check if a value is valid only in
  specific circumstances, like when a value is from a keyword list;
* methods are no longer called `isValid<...>` but `is<...>` which
  doesn't say if particular value is valid or not.

7 years agoUses `Marker` control characters where possible.
Jakub Pawlowicz [Sat, 25 Mar 2017 06:30:26 +0000 (07:30 +0100)]
Uses `Marker` control characters where possible.

7 years agoSee #254 - removes `font` optimizations in level 1.
Jakub Pawlowicz [Fri, 24 Mar 2017 19:10:21 +0000 (20:10 +0100)]
See #254 - removes `font` optimizations in level 1.

Why:

* The level 1 optimizations were just a temporary fix until shorthand
  optimizer gets implemented;
* this creates a regression in optimizing `font-weight` inside `font`
  shorthand, which is pending #889.

7 years agoSee #254 - implements `font` compacting.
Jakub Pawlowicz [Fri, 24 Mar 2017 14:42:10 +0000 (15:42 +0100)]
See #254 - implements `font` compacting.

Why:

* Just as for other shorthand properties, the `font` one allows
  collapsing components into it;
* we will remove level 1 font optimizations to avoid logic duplication.

7 years agoBumps web interface to version 4.0.11.
Jakub Pawlowicz [Tue, 4 Apr 2017 07:06:49 +0000 (09:06 +0200)]
Bumps web interface to version 4.0.11.

7 years agoVersion 4.0.11 release notes.
Jakub Pawlowicz [Tue, 4 Apr 2017 06:35:27 +0000 (08:35 +0200)]
Version 4.0.11 release notes.

7 years agoFixes #924 - `hsl` zero percent eager optimization.
Jakub Pawlowicz [Fri, 31 Mar 2017 19:58:19 +0000 (21:58 +0200)]
Fixes #924 - `hsl` zero percent eager optimization.

Why:

* Level 1 unit optimization was too eager when it comes to colors
  declared with a function.

7 years agoFixes #923 - protocol tests and nock 9.
Jakub Pawlowicz [Fri, 31 Mar 2017 20:24:55 +0000 (22:24 +0200)]
Fixes #923 - protocol tests and nock 9.

Why:

* nock introduced a breaking change in verifying `isDone` in
  teardown clauses.

7 years agoFixes #755 - adds custom handling of remote requests.
Jakub Pawlowicz [Thu, 23 Mar 2017 19:34:42 +0000 (20:34 +0100)]
Fixes #755 - adds custom handling of remote requests.

Why:

* To allow flexibility in a way of fetching remote resources, for
  example requests via CONNECT proxies, an external request library can
  be used, see example in readme;
* instead of reinventing a wheel a better approach is to use an external
  library based on users' choice.

7 years agoFixes #905 - allows disabling selector sorting.
Jakub Pawlowicz [Fri, 24 Mar 2017 06:15:42 +0000 (07:15 +0100)]
Fixes #905 - allows disabling selector sorting.

Why:

* It may be beneficial for gzip compression purposes or just a personal
  preference.

7 years agoFixes 4.0.10 changelog link.
Jakub Pawlowicz [Wed, 22 Mar 2017 14:11:33 +0000 (15:11 +0100)]
Fixes 4.0.10 changelog link.

7 years agoBumps web interface to version 4.0.10.
Jakub Pawlowicz [Wed, 22 Mar 2017 13:47:53 +0000 (14:47 +0100)]
Bumps web interface to version 4.0.10.

7 years agoVersion 4.0.10 release notes.
Jakub Pawlowicz [Wed, 22 Mar 2017 12:11:02 +0000 (13:11 +0100)]
Version 4.0.10 release notes.

7 years agoSee #916 - adds 4.0.10 release note.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:20:30 +0000 (12:20 +0100)]
See #916 - adds 4.0.10 release note.

7 years agoRefixes #556 - IE backslash hacks.
Jakub Pawlowicz [Mon, 20 Mar 2017 14:38:24 +0000 (15:38 +0100)]
Refixes #556 - IE backslash hacks.

Apparently turning all backslash hacks into `\9` hack is not desirable
strategy, as, for example, `\0` hack has a different meaning.

7 years agoFixes #917 - prevents grid area unquoting.
Jakub Pawlowicz [Mon, 20 Mar 2017 14:03:56 +0000 (15:03 +0100)]
Fixes #917 - prevents grid area unquoting.

Why:

* Specification requires such values to be quoted so should the values
  be preserved.

7 years agoAdds notes which features are available since 4.1.
Jakub Pawlowicz [Wed, 22 Mar 2017 12:09:12 +0000 (13:09 +0100)]
Adds notes which features are available since 4.1.

7 years agoSee #908 - adds release notes & kudos.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:53:37 +0000 (12:53 +0100)]
See #908 - adds release notes & kudos.

7 years agoFixes #916 - maximum number of merged selectors.
Jakub Pawlowicz [Wed, 22 Mar 2017 11:20:30 +0000 (12:20 +0100)]
Fixes #916 - maximum number of merged selectors.

Why:

* Apparently Chrome's Blink engine places a limit on a number of
  selectors in a single rule. Any number of selectors greater than 8191
  causes a rule to be ignored;
* Allows arbitrary selection of the limit via
  `{ compatibility: { selectors: { mergeLimit: <value> } } }`

7 years agoSee #916 - adds predictable fitting in restructuring.
Jakub Pawlowicz [Tue, 21 Mar 2017 19:28:36 +0000 (20:28 +0100)]
See #916 - adds predictable fitting in restructuring.

Why:

* To ensure the best fit is always choosen which may have not been the
  with previous comparator.

7 years agoExtend readSources to accept array of source hashes (#918)
Martin Grandrath [Mon, 20 Mar 2017 10:46:02 +0000 (11:46 +0100)]
Extend readSources to accept array of source hashes (#918)

* Extend readSources to accept array of source hashes

This change makes it easier to specify the order in which sources are
concatenated.  See issue jakubpawlowicz/clean-css#908 for details.

7 years agoBumps web interface to version 4.0.9.
Jakub Pawlowicz [Wed, 15 Mar 2017 10:09:20 +0000 (11:09 +0100)]
Bumps web interface to version 4.0.9.

7 years agoVersion 4.0.9 release notes.
Jakub Pawlowicz [Tue, 14 Mar 2017 16:53:35 +0000 (17:53 +0100)]
Version 4.0.9 release notes.

7 years agoFixes #903 - web UI and source maps.
Jakub Pawlowicz [Tue, 14 Mar 2017 15:03:33 +0000 (16:03 +0100)]
Fixes #903 - web UI and source maps.

Fixes processing source maps in web UI, while disabling applying
source maps and loading remote sources whenever source maps are
disabled.

Ideally we should build source maps in web UI but only if an inlined
source map is provided - see #915.

7 years agoFixes #902 - case insensitive attribute matchers.
Jakub Pawlowicz [Tue, 14 Mar 2017 09:35:54 +0000 (10:35 +0100)]
Fixes #902 - case insensitive attribute matchers.

Why:

* CSS 4 spec defines case insensitive matchers which were treated
  incorrectly by attribute tidying code.

7 years agoFixes #907 - compatibility of space after closing brace.
Jakub Pawlowicz [Tue, 14 Mar 2017 09:19:35 +0000 (10:19 +0100)]
Fixes #907 - compatibility of space after closing brace.

Why:

* Apparently `@supports` doesn't like stripping that extra space
  after `)` character.

7 years agoFixes #910 - too aggressive precision optimizations.
Jakub Pawlowicz [Mon, 13 Mar 2017 21:22:22 +0000 (22:22 +0100)]
Fixes #910 - too aggressive precision optimizations.

Why:

* Precision rounding should only apply when a value is positively
identified as a numeric or unit value.

7 years agoexplicitly mention the CLI utility (#912)
Mike Kamermans [Sun, 12 Mar 2017 07:34:17 +0000 (23:34 -0800)]
explicitly mention the CLI utility (#912)

7 years agoUpdate README.md (#909)
Moritz Kröger [Sat, 11 Mar 2017 14:04:42 +0000 (15:04 +0100)]
Update README.md (#909)

Fixes wrong variable name in usage demo

7 years agoBumps web interface to version 4.0.8.
Jakub Pawlowicz [Wed, 22 Feb 2017 16:26:39 +0000 (17:26 +0100)]
Bumps web interface to version 4.0.8.

7 years agoVersion 4.0.8 release notes.
Jakub Pawlowicz [Wed, 22 Feb 2017 16:20:16 +0000 (17:20 +0100)]
Version 4.0.8 release notes.

7 years agoFixes #899 - regression in optimizing pseudo class arguments.
Jakub Pawlowicz [Wed, 22 Feb 2017 16:13:12 +0000 (17:13 +0100)]
Fixes #899 - regression in optimizing pseudo class arguments.

Why:

* `+` character is both a 1) relation or 2) operator within
  pseudo class arguments; so these two use cases should be
  distinct.

7 years agoFixes edge case in remote stylesheet fetching.
Jakub Pawlowicz [Fri, 17 Feb 2017 06:47:44 +0000 (07:47 +0100)]
Fixes edge case in remote stylesheet fetching.

Why:

* When a request results in an error or timeout then any further
  fetching should be aborted as callback has already been called.

7 years agoVersion 3.4.25 release notes.
Jakub Pawlowicz [Wed, 22 Feb 2017 15:42:10 +0000 (16:42 +0100)]
Version 3.4.25 release notes.

7 years agoFixes #886 - better multi pseudo class / element merging.
Jakub Pawlowicz [Thu, 16 Feb 2017 15:44:02 +0000 (16:44 +0100)]
Fixes #886 - better multi pseudo class / element merging.

Why:

* 4.0 introduced a stricter mergeability rules, however in some
  cases merging is still possible but harder to determine;
* tests suggested all multi pseudo class / element rules can be
  merged unless those contain more than one of the following:
  `:after`, `::after`, `:before`, `::before`, `:first-letter`,
  `::first-letter`, `:first-line`, `::first-line`, or `:lang`;
* there's also a new compatibility switch,
  `{ compatibility: { selectors: { multiplePseudoMerging: false } } }`
  which, if set to false, disables merging for all rules with
  multiple pseudo classes / elements.

7 years agoFixes #890 - adds toggle to disable empty tokens removal.
Jakub Pawlowicz [Wed, 15 Feb 2017 18:48:33 +0000 (19:48 +0100)]
Fixes #890 - adds toggle to disable empty tokens removal.

Why:

* Removing empty tokens (rules & blocks) was the only "optimization"
  which was not toggabble;
* introduces a side-effect in level 2 optimizations where rules that
  become empty as a result of complex optimizations are preserved.

7 years agoAdds readme section about upcoming changes.
Jakub Pawlowicz [Wed, 15 Feb 2017 19:01:05 +0000 (20:01 +0100)]
Adds readme section about upcoming changes.

Covers changes introduced in #893.

7 years agoFixes #893 - `inline: false` as alias to `inline: 'none'`.
Jakub Pawlowicz [Tue, 14 Feb 2017 12:53:33 +0000 (13:53 +0100)]
Fixes #893 - `inline: false` as alias to `inline: 'none'`.

Why:

* So it matches other options where `false` means 'disable'.

7 years agoBumps version on master to 4.1.0-pre.
Jakub Pawlowicz [Tue, 14 Feb 2017 12:52:45 +0000 (13:52 +0100)]
Bumps version on master to 4.1.0-pre.

7 years agoBumps web interface to version 4.0.7.
Jakub Pawlowicz [Tue, 14 Feb 2017 11:39:56 +0000 (12:39 +0100)]
Bumps web interface to version 4.0.7.

7 years agoVersion 4.0.7 release notes.
Jakub Pawlowicz [Tue, 14 Feb 2017 08:12:12 +0000 (09:12 +0100)]
Version 4.0.7 release notes.

7 years agoFixes #891 - merging vendor-prefixed pseudo classes.
Jakub Pawlowicz [Tue, 14 Feb 2017 07:29:34 +0000 (08:29 +0100)]
Fixes #891 - merging vendor-prefixed pseudo classes.

Why:

* When a pseudo-class or pseudo-element was positioned after
  quoted string it was not extracted for mergeability comparison.

7 years agoSee #892 - adds better `inline` option docs.
Jakub Pawlowicz [Tue, 14 Feb 2017 07:05:38 +0000 (08:05 +0100)]
See #892 - adds better `inline` option docs.

7 years agoBumps web interface to version 4.0.6.
Jakub Pawlowicz [Fri, 10 Feb 2017 10:33:27 +0000 (11:33 +0100)]
Bumps web interface to version 4.0.6.

7 years agoVersion 4.0.6 release notes.
Jakub Pawlowicz [Fri, 10 Feb 2017 10:24:58 +0000 (11:24 +0100)]
Version 4.0.6 release notes.

7 years agoFixes #885 - don't strip quotes from `font-feature-settings`.
Jakub Pawlowicz [Wed, 8 Feb 2017 07:35:01 +0000 (08:35 +0100)]
Fixes #885 - don't strip quotes from `font-feature-settings`.

Why:

* Browsers don't get it right when without quotes;
* it'll all be better with whitelist based optimizations, see #889.

7 years agoBumps web interface to version 4.0.5.
Jakub Pawlowicz [Tue, 7 Feb 2017 10:41:30 +0000 (11:41 +0100)]
Bumps web interface to version 4.0.5.

7 years agoVersion 4.0.5 release notes.
Jakub Pawlowicz [Tue, 7 Feb 2017 10:05:35 +0000 (11:05 +0100)]
Version 4.0.5 release notes.

7 years agoFixes #884 - handling absolute paths on Windows.
Jakub Pawlowicz [Mon, 6 Feb 2017 13:42:46 +0000 (14:42 +0100)]
Fixes #884 - handling absolute paths on Windows.

Why:

* There's a built-in `path.isAbsolute` which should have been used
  in the first place;
* `inlineLocalStylesheets` absolute path handling with be gone in
  the next major version when virtual absolute paths will be gone.

7 years agoFixes #880 - incorrect token type identification.
Jakub Pawlowicz [Mon, 6 Feb 2017 06:17:45 +0000 (07:17 +0100)]
Fixes #880 - incorrect token type identification.

Why:

* When there is no space after nested block scope, e.g.
  `@media(` in `@media(min-width:100px)` it should still be
  handled correctly by tokenizer.

7 years agoAdds #881 changelog entry.
Jakub Pawlowicz [Mon, 6 Feb 2017 06:08:11 +0000 (07:08 +0100)]
Adds #881 changelog entry.

7 years agoFix wrong require arity (#881)
Olivier Tassinari [Mon, 6 Feb 2017 05:44:51 +0000 (06:44 +0100)]
Fix wrong require arity (#881)

7 years agoBumps web interface to version 4.0.4.
Jakub Pawlowicz [Sat, 4 Feb 2017 06:45:21 +0000 (07:45 +0100)]
Bumps web interface to version 4.0.4.

7 years agoVersion 4.0.4 release notes.
Jakub Pawlowicz [Sat, 4 Feb 2017 06:36:06 +0000 (07:36 +0100)]
Version 4.0.4 release notes.

7 years agoFixes #879 - incorrect handling of spaces in paths.
Jakub Pawlowicz [Sat, 4 Feb 2017 06:17:00 +0000 (07:17 +0100)]
Fixes #879 - incorrect handling of spaces in paths.

Why:

* When reading sources passed in as array, paths need to be wrapped
  in `url()` so spaces are handled correctly.

7 years agoFixes #878 - invalid double backshlash tokenization.
Jakub Pawlowicz [Sat, 4 Feb 2017 05:52:51 +0000 (06:52 +0100)]
Fixes #878 - invalid double backshlash tokenization.

Why:

* Any subsequent backslash escape character was treated as
  another escape sequence.

7 years agofix typo (#877)
yumetodo [Thu, 2 Feb 2017 10:18:36 +0000 (19:18 +0900)]
fix typo (#877)

s/ontrols/controls/

7 years agoFixes a typo in History.md.
Jakub Pawlowicz [Wed, 1 Feb 2017 15:43:58 +0000 (16:43 +0100)]
Fixes a typo in History.md.

Thx to @ngyikp for reporting.

7 years agoBumps web interface to version 4.0.3.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:40:54 +0000 (07:40 +0100)]
Bumps web interface to version 4.0.3.

7 years agoVersion 4.0.3 release notes.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:34:03 +0000 (07:34 +0100)]
Version 4.0.3 release notes.

7 years agoSee #875 - adds missing History.md entry.
Jakub Pawlowicz [Mon, 30 Jan 2017 06:33:18 +0000 (07:33 +0100)]
See #875 - adds missing History.md entry.

7 years agoFixes #875 - :facepalm: bug in semantic merging.
Jakub Pawlowicz [Fri, 27 Jan 2017 07:27:47 +0000 (08:27 +0100)]
Fixes #875 - :facepalm: bug in semantic merging.

Why:

* This is still an under tested feature but we'll get there.

7 years agoBumps web interface to version 4.0.2.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:52:16 +0000 (14:52 +0100)]
Bumps web interface to version 4.0.2.

7 years agoVersion 4.0.2 release notes.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:42:58 +0000 (14:42 +0100)]
Version 4.0.2 release notes.

7 years agoFixes #874 - regression in at-rule tokenization.
Jakub Pawlowicz [Thu, 26 Jan 2017 13:35:42 +0000 (14:35 +0100)]
Fixes #874 - regression in at-rule tokenization.

Why:

* Another case after #872 where at-rules were incorrectly
  tokenized because `propertyToken` wasn't reset.

7 years agoBumps web interface to version 4.0.1.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:33:11 +0000 (11:33 +0100)]
Bumps web interface to version 4.0.1.

7 years agoVersion 4.0.1 release notes.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:24:24 +0000 (11:24 +0100)]
Version 4.0.1 release notes.

7 years agoSee #872 - two additional cases.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:13:23 +0000 (11:13 +0100)]
See #872 - two additional cases.

Unrelated to the ticket but should still be handled correctly.

7 years agoFixes #872 - edge case in tokenization.
Jakub Pawlowicz [Wed, 25 Jan 2017 10:12:14 +0000 (11:12 +0100)]
Fixes #872 - edge case in tokenization.

Why:

* On closing curly brace `}` both `ruleToken` and `propertyToken`
  should be nullified to prevent incorrect property assignments.

7 years agoFixes #868 - accept absolute paths in input hash.
Jakub Pawlowicz [Tue, 24 Jan 2017 20:18:03 +0000 (21:18 +0100)]
Fixes #868 - accept absolute paths in input hash.

Thanks to @madwizard-thomas for bug investigation which turned
out to be correct.

Why:

* Internally all local URIs should be represented as relative
  paths normalized to *nix format so nothing else gets propagated
  to output styles or source maps;
* all remote URIs are kept as is.

7 years agoFixes #867 - skips optimizing variable values.
Jakub Pawlowicz [Tue, 24 Jan 2017 14:43:33 +0000 (15:43 +0100)]
Fixes #867 - skips optimizing variable values.

Why:

* It may not be the best idea as we don't know what a value
  represents and where it'll end up.

7 years agoFixes #866 - edge case in `inline` flag handling.
Jakub Pawlowicz [Tue, 24 Jan 2017 12:16:00 +0000 (13:16 +0100)]
Fixes #866 - edge case in `inline` flag handling.

Why:

* When reverse order of options was used, so `remote,local`,
  a resource was incorrectly marked as not allowed;
* apparently we should always default remote URLs to disallowed,
  while local ones should be allowed by default.

7 years agochore(package): update browserify to version 14.0.0 (#871)
greenkeeper[bot] [Wed, 25 Jan 2017 09:19:23 +0000 (10:19 +0100)]
chore(package): update browserify to version 14.0.0 (#871)

https://greenkeeper.io/

7 years agoRe-enables batch tests on Windows. (#869)
Alex Lam S.L [Tue, 24 Jan 2017 09:30:00 +0000 (17:30 +0800)]
Re-enables batch tests on Windows. (#869)

Fix up assertEqualLineByLine(), checks if number of lines are equal before verifying content.

7 years agoSee #858 - updates web interface for clean-css 4.
Jakub Pawlowicz [Mon, 23 Jan 2017 10:00:36 +0000 (11:00 +0100)]
See #858 - updates web interface for clean-css 4.

Why:

* 4.0 changes lots of options and web users should still be able to
  apply all of them.

7 years agoVersion 4.0.0.
Jakub Pawlowicz [Mon, 23 Jan 2017 15:24:57 +0000 (16:24 +0100)]
Version 4.0.0.

7 years agoUpdates acknowledgements section.
Jakub Pawlowicz [Mon, 23 Jan 2017 15:15:05 +0000 (16:15 +0100)]
Updates acknowledgements section.

Thanks @alexlamsl, @ben-eb, @madwizard-thomas, and @ngyikp.

7 years agoSee #864 - adds better docs for optimization levels.
Jakub Pawlowicz [Mon, 23 Jan 2017 14:53:21 +0000 (15:53 +0100)]
See #864 - adds better docs for optimization levels.

It's not obvious if level 2 is used that level 1 is on by
default, and that both configurations can be applied
at the same time.

7 years agoRe-enables protocol tests on Windows.
Jakub Pawlowicz [Mon, 23 Jan 2017 13:06:00 +0000 (14:06 +0100)]
Re-enables protocol tests on Windows.

Thanks to @alexlamsl for bringing it up and testing.

Why:

* Disabled as they errored on Windows in the past, but they seem to
  work fine now.

7 years agoReworks Readme to be more readable.
Jakub Pawlowicz [Mon, 23 Jan 2017 13:04:33 +0000 (14:04 +0100)]
Reworks Readme to be more readable.

Why:

* Provides Table of contents at the top with quick links to
  interesting sections;
* Provides detailed description of available options with examples;
* Provides a FAQ section with various usage scenarios.

7 years agoSee #846 - moves CLI to a separate repository.
Jakub Pawlowicz [Sun, 22 Jan 2017 10:31:09 +0000 (11:31 +0100)]
See #846 - moves CLI to a separate repository.

Moved to https://github.com/jakubpawlowicz/clean-css-cli

Why:

* At least 85% of top dependants use the API (see ticket) so
  removing CLI removes `commander` dependency for them;
* docs will be easier to follow as they describe API only;
* tests run 10x as fast since binary tests took 90% of time;
* CLI will be able to provide its own set of features which
  are not necessarilly provided or requred in API.

Drawbacks:

* It won't be straightforward to quickly test arbitrary CSS
  as binary is not available out of the box.

7 years agoCleans up serializer code.
Jakub Pawlowicz [Fri, 20 Jan 2017 11:30:24 +0000 (12:30 +0100)]
Cleans up serializer code.

Why:

* Makes serialization context always the first argument;
* renamed function names for better clarity.

7 years agoRenames 'star' to 'asterisk'.
Jakub Pawlowicz [Fri, 20 Jan 2017 10:20:20 +0000 (11:20 +0100)]
Renames 'star' to 'asterisk'.

Why:

* This is the character's name.

7 years agoRenames curly bracket constants.
Jakub Pawlowicz [Fri, 20 Jan 2017 10:12:19 +0000 (11:12 +0100)]
Renames curly bracket constants.

Why:

* To match other bracket constants.

7 years agoRenames `Token.BLOCK` to `Token.NESTED_BLOCK`.
Jakub Pawlowicz [Fri, 20 Jan 2017 10:08:03 +0000 (11:08 +0100)]
Renames `Token.BLOCK` to `Token.NESTED_BLOCK`.

Why:

* All CSS blocks can be nested so this name reflects
  this rule better.

7 years agoSimplifies `split` helper code.
Jakub Pawlowicz [Fri, 20 Jan 2017 09:53:20 +0000 (10:53 +0100)]
Simplifies `split` helper code.

Why:

* Much of its complexity was due to old tokenizer which is no more;
* currently it serves as a way to splitting strings where commas
  inside round brackets are ignored.

7 years agoBumps copyright timestamps to 2017.
Jakub Pawlowicz [Fri, 20 Jan 2017 09:45:11 +0000 (10:45 +0100)]
Bumps copyright timestamps to 2017.

7 years agoFixes linting warning in specificity module.
Jakub Pawlowicz [Fri, 20 Jan 2017 09:44:29 +0000 (10:44 +0100)]
Fixes linting warning in specificity module.

7 years agoMoves API options setup to `options` folder-space.
Jakub Pawlowicz [Fri, 20 Jan 2017 09:42:05 +0000 (10:42 +0100)]
Moves API options setup to `options` folder-space.

Why:

* So it lives alongside optimization level and formatting setup.

7 years agoBumps online version to clean-css 3.4.24.
Jakub Pawlowicz [Fri, 20 Jan 2017 08:09:58 +0000 (09:09 +0100)]
Bumps online version to clean-css 3.4.24.

7 years agoVersion 3.4.24 release notes.
Jakub Pawlowicz [Fri, 20 Jan 2017 07:40:59 +0000 (08:40 +0100)]
Version 3.4.24 release notes.

7 years agoFixes #859 - avoids `-webkit-border-radius` optimizations.
Jakub Pawlowicz [Mon, 16 Jan 2017 16:55:38 +0000 (17:55 +0100)]
Fixes #859 - avoids `-webkit-border-radius` optimizations.

Why:

* Apparently it doesn't support shortening 4 values to 2, as the
  latter is taken as a horizontal + vertical radius in all corners;
* disabling any optimizations as a precaution;
* see http://jsfiddle.net/qnGKj/2881/

7 years agoSee #856 - adds missing History.md entry.
Jakub Pawlowicz [Fri, 20 Jan 2017 07:31:00 +0000 (08:31 +0100)]
See #856 - adds missing History.md entry.

7 years agoFixes #863 - adds `transform` callback for custom optimizations.
Jakub Pawlowicz [Thu, 19 Jan 2017 19:50:59 +0000 (20:50 +0100)]
Fixes #863 - adds `transform` callback for custom optimizations.

Why:

* So users can apply custom optimizations without forking clean-css
  and learning how to plug such optimization in;
* may also aid in rewriting URLs after introduction of `rebaseTo`.