Jakub Pawlowicz [Thu, 8 Dec 2016 07:04:31 +0000 (08:04 +0100)]
Simplifies URL rebasing.
** WARNING ** - this is a truly breaking change.
There is now a single option called `rebaseTo`, which denotes a
path all relative URLs are rebased to.
Absolute URLs are kept intact as it's assumed user knows what
he/she does when using them, however absolute @imports are still
inlined relative to the current working directory.
This commit also re-introduces ability to pass arrays to CleanCSS
`minify` method.
** IMPORTANT ** - it'd probably be wise to give users an option
to use a function as `rebaseTo` so they can restore some of old
functionality if needed.
Why:
* The old system with three options (`relativeTo`, `root`, and
`target`) was too hard to understand and work with reliably.
Jakub Pawlowicz [Wed, 7 Dec 2016 12:19:11 +0000 (13:19 +0100)]
Restores accepting `Buffer` as input.
Jakub Pawlowicz [Wed, 7 Dec 2016 10:54:15 +0000 (11:54 +0100)]
Removes `debug` API switch.
Why:
* Stats are always calculated and available under `stats`
property of the output hash.
Jakub Pawlowicz [Tue, 6 Dec 2016 11:14:14 +0000 (12:14 +0100)]
Improves warning & error messages raised during optimizations.
Why:
* We can be more specific about raised errors now.
Jakub Pawlowicz [Tue, 6 Dec 2016 08:06:48 +0000 (09:06 +0100)]
Fixes tokenization on extra close brace.
Why:
* It should be ignored when at the end of tokenized string, but
preserved when in the middle.
Jakub Pawlowicz [Tue, 29 Nov 2016 09:48:00 +0000 (10:48 +0100)]
Reimplements `@import` inlining on top of the new tokenizer.
It works roughly the same as the old inliner but at a different
step: not before tokenization but during it.
Thanks to it there's no need to match import URLs in sources,
deal with comments, etc.
Jakub Pawlowicz [Sun, 13 Nov 2016 10:54:38 +0000 (11:54 +0100)]
Fixes all unit tests on top of the new tokenizer.
This involves the following changes too:
* /lib/selectors -> /lib/optimizer;
* new /lib/optimizer/tidy* modules for cleaning up tokens;
* redone URL rewriting as it doesn't require full document scan
anymore, as it's run right after tokenization;
* compatibility class is now a simple function;
* introducing `readSources` method instead of SourceReader class.
Jakub Pawlowicz [Sat, 5 Nov 2016 07:16:15 +0000 (08:16 +0100)]
Rewrites tokenizer without escaping.
This way it's much easier to handle parsing as it's a "one step"
process instead of way more complex, legacy escaping.
Jakub Pawlowicz [Mon, 12 Dec 2016 15:11:16 +0000 (16:11 +0100)]
Bumps online version to clean-css 3.4.22.
Jakub Pawlowicz [Mon, 12 Dec 2016 15:02:13 +0000 (16:02 +0100)]
Version 3.4.22 release notes.
Jakub Pawlowicz [Mon, 12 Dec 2016 13:12:22 +0000 (14:12 +0100)]
Ignores `@import` at-rules if after content.
Why:
* This is what browsers do and we should respect it.
Jakub Pawlowicz [Mon, 12 Dec 2016 12:57:06 +0000 (13:57 +0100)]
Fixes #841 - disabled importing and many files passed as array.
Why:
* Importing via `@shallow` feature should be propagated to next
files in the importing queue.
Jakub Pawlowicz [Wed, 16 Nov 2016 15:35:58 +0000 (16:35 +0100)]
Updates project description.
Why:
* To stress we have two platforms now.
Jakub Pawlowicz [Wed, 16 Nov 2016 11:01:13 +0000 (12:01 +0100)]
Bumps online version to clean-css 3.4.21.
Jakub Pawlowicz [Wed, 16 Nov 2016 10:51:53 +0000 (11:51 +0100)]
Version 3.4.21 release notes.
Jakub Pawlowicz [Wed, 16 Nov 2016 10:43:17 +0000 (11:43 +0100)]
Fixes #821 - edge case in reducing non-adjacent selectors.
Why:
* In case of previously optimized empty rules, the join positions
were not calculated correctly resulting in tokens being
incorrectly optimized.
Jakub Pawlowicz [Wed, 16 Nov 2016 07:36:12 +0000 (08:36 +0100)]
Fixes #830 - reordering border-* properties.
Why:
* `border-X` and `border-<side>-X` were reorderable but obiously one
cannot reorder them as that may change styling.
Jakub Pawlowicz [Tue, 15 Nov 2016 16:11:24 +0000 (17:11 +0100)]
Fixes #833 - moving `@media` queries.
Why:
* So it's not about `!important` modifier but `@` sign which were
incorrectly treated as a special marker starting a block.
* The solution is somewhat hacky - checking if a preceding character
is not a special marker - but an improved tokenizer will be there
soon (-ish).
Jakub Pawlowicz [Fri, 4 Nov 2016 15:11:15 +0000 (16:11 +0100)]
Adds page view Clicky tracking to GitHub page.
That's for page views only to figure out page usage.
Jakub Pawlowicz [Thu, 3 Nov 2016 20:14:50 +0000 (21:14 +0100)]
Disables keeping line break by default in UI.
Why:
* Mimics CLI and API default behavior.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:37:49 +0000 (20:37 +0100)]
Ignores JSHint on /docs folder.
Why:
* JS on public pages don't follow the same conventions as the
rest of the repo.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:27:23 +0000 (20:27 +0100)]
See #260 - hides template tag where it's not supported.
Jakub Pawlowicz [Thu, 3 Nov 2016 19:04:26 +0000 (20:04 +0100)]
See #260 - adds `noscript` warning.
Why:
* We need JavaScript to operate properly.
Jakub Pawlowicz [Thu, 3 Nov 2016 18:57:34 +0000 (19:57 +0100)]
See #260 - delays Worker initialization.
Why:
* There's no point fetching CleanCSS until files are about to be
optimized.
* It currently uses a fixed version of CleanCSS but we'll pass
version to initializer once more versions are supported.
Jakub Pawlowicz [Tue, 1 Nov 2016 07:56:21 +0000 (08:56 +0100)]
See #260 - adds UI for changing optimization settings.
Note: it disables advanced optimizations by default.
Why:
* To give users better control over how optimizations are applied.
Jakub Pawlowicz [Mon, 31 Oct 2016 21:02:51 +0000 (22:02 +0100)]
See #260 - shows short optimization summary.
Why:
* To let user know how much smaller output content is.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:32:30 +0000 (21:32 +0100)]
See #260 - adds progress spinner.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:23:59 +0000 (21:23 +0100)]
See #260 - adds worker error logging.
Why:
* At least there will be some feedback.
Jakub Pawlowicz [Mon, 31 Oct 2016 20:17:19 +0000 (21:17 +0100)]
See #260 - properly sets name of optimized file.
Jakub Pawlowicz [Mon, 31 Oct 2016 17:14:29 +0000 (18:14 +0100)]
See #260 - adds nicer look&feel for optimized files.
Jakub Pawlowicz [Mon, 31 Oct 2016 17:03:18 +0000 (18:03 +0100)]
See #260 - adds 'copy to clipboard' in UI.
Why:
* So user can copy optimized content without downloading a file.
Jakub Pawlowicz [Fri, 21 Oct 2016 16:05:00 +0000 (18:05 +0200)]
See #260 - adds a very basic browser client.
Why:
* So there's an easy way to minify files without installing
clean-css module;
vlakoff [Mon, 31 Oct 2016 21:32:26 +0000 (22:32 +0100)]
Add test when precision not castable to int
vlakoff [Sat, 29 Oct 2016 08:10:26 +0000 (10:10 +0200)]
Void if precision value is not a number
vlakoff [Sat, 29 Oct 2016 08:09:20 +0000 (10:09 +0200)]
Move cast into buildPrecision()
vlakoff [Sat, 29 Oct 2016 08:08:02 +0000 (10:08 +0200)]
Cast in options object rather than command line
vlakoff [Mon, 10 Oct 2016 17:50:50 +0000 (19:50 +0200)]
Note that rounding only applies to px values (#820)
Jakub Pawlowicz [Mon, 26 Sep 2016 04:48:08 +0000 (06:48 +0200)]
Version 3.4.20 release notes.
silverwind [Mon, 26 Sep 2016 04:36:31 +0000 (06:36 +0200)]
Prevent rules with :selection from being merged (#814)
Firefox does not support :selection, only :-moz-selection. This change
adds :selection to the list of problematic selectors to prevent invalid
rules from being created.
Also cleaned up the regex, : and :: are equivalent in this regex,
so reduced all section to just :.
Jakub Pawlowicz [Mon, 25 Jul 2016 04:31:28 +0000 (06:31 +0200)]
Version 3.4.19 release notes.
Jakub Pawlowicz [Mon, 25 Jul 2016 04:28:28 +0000 (06:28 +0200)]
Fixes #795 - `!important` and override compacting.
There was a broken test rule which didn't catch the bug, which is
now fixed.
Jakub Pawlowicz [Fri, 15 Jul 2016 18:07:18 +0000 (20:07 +0200)]
Bumps logo version.
Why:
* MaxCDN cached the previous one permanently based on URL.
So we need to change URL to point it to the new one.
Jakub Pawlowicz [Fri, 15 Jul 2016 17:49:58 +0000 (19:49 +0200)]
Adds a new, simpler droplet in our logo.
Jakub Pawlowicz [Tue, 12 Jul 2016 15:30:38 +0000 (17:30 +0200)]
Aligns all shapes in logo.
Jakub Pawlowicz [Tue, 12 Jul 2016 15:17:24 +0000 (17:17 +0200)]
Reimports logo.svg via Sketch.
Why:
* It's a SVG editor of choice;
* it will be easier to manage any future changes.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:54:32 +0000 (15:54 +0200)]
Removes invisible "drop" from logo SVG file.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:46:23 +0000 (15:46 +0200)]
Removes empty `<g>` nodes from logo SVG file.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:43:04 +0000 (15:43 +0200)]
Cleans up Readme markup.
Jakub Pawlowicz [Tue, 12 Jul 2016 13:41:45 +0000 (15:41 +0200)]
Points Readme logo to canonical repository.
Sal Niro [Sun, 10 Jul 2016 09:40:27 +0000 (05:40 -0400)]
adding logo (#793)
Adds clean-css logo!
Jakub Pawlowicz [Wed, 15 Jun 2016 06:32:15 +0000 (08:32 +0200)]
Version 3.4.18 release notes.
Jakub Pawlowicz [Wed, 15 Jun 2016 06:23:29 +0000 (08:23 +0200)]
Fixes #787 - regression in data URI processing.
Yet another regression so we revert to the original order of
processing `url()` values.
Jakub Pawlowicz [Sat, 4 Jun 2016 06:07:14 +0000 (08:07 +0200)]
Version 3.4.17 release notes.
Jakub Pawlowicz [Sat, 4 Jun 2016 06:06:04 +0000 (08:06 +0200)]
See #783 - adds an extra test.
Jakub Pawlowicz [Sat, 4 Jun 2016 06:02:08 +0000 (08:02 +0200)]
Fixes #783 - regression in processing data URIs.
Jakub Pawlowicz [Thu, 2 Jun 2016 09:14:57 +0000 (11:14 +0200)]
Version 3.4.16 release notes.
Jakub Pawlowicz [Thu, 2 Jun 2016 06:57:57 +0000 (08:57 +0200)]
Fixes #782 - regression in processing data URIs.
Instead of trying to fuzzy match an end of data URI let's use split
to navigate through bracket levels and determine an end of an URI.
Jakub Pawlowicz [Thu, 2 Jun 2016 05:29:47 +0000 (07:29 +0200)]
Fixes #781 - regression in override compacting.
Checking every combination of override clashes should not fall
back to same values in case of multiplex components.
Jakub Pawlowicz [Wed, 1 Jun 2016 09:16:37 +0000 (11:16 +0200)]
Version 3.4.15 release notes.
Jakub Pawlowicz [Wed, 1 Jun 2016 09:10:17 +0000 (11:10 +0200)]
Fixes #776 - edge case in quoted data URIs.
Regardless of whether data URI is quoted or not the end of URI should
always be fuzzy matched.
Jakub Pawlowicz [Wed, 1 Jun 2016 07:00:28 +0000 (09:00 +0200)]
Fixes #780 - space after inlined variables.
Let's not assume variables are functions to stay. Polymer inlines
variables so removing a space after a variable can break styling.
Jakub Pawlowicz [Wed, 1 Jun 2016 06:43:28 +0000 (08:43 +0200)]
Fixes #779 - merging `background-(position|size)`.
Those two properties were always merged but if vendor-prefixed
functions are used then they should not be.
Note we changed `everyCombination` checker to check for values
on same position when merging **longhand** properties which is what
browsers do, e.g.
```css
background-position: calc(100% - 1em) 1em;
background-position: calc(100% - 2em) 2em;
```
Now `everyCombination` checks if 1st and 2nd values can be merged
separately and ignores whether 1st can be merged with 2nd.
Jakub Pawlowicz [Tue, 31 May 2016 08:43:24 +0000 (10:43 +0200)]
Version 3.4.14 release notes.
Jakub Pawlowicz [Tue, 31 May 2016 06:59:00 +0000 (08:59 +0200)]
Fixes #768 - invalid border-radius property.
Whenever we encounter an invalid property there should be a
InvalidPropertyError exception thrown and property reported as `unused`.
Currently warnings are reported without any further details like line
number, but such feature is due in #657.
Jakub Pawlowicz [Mon, 30 May 2016 06:18:30 +0000 (08:18 +0200)]
Fixes #765 - two values of border-radius.
Horizontal and vertical values of longhand properties were not
correctly merged into shorthand border-radius.
Jakub Pawlowicz [Mon, 30 May 2016 05:21:53 +0000 (07:21 +0200)]
Fixes #763 - data URI SVG and quoting.
Quotes inside data URI SVG can be unescaped and we should handle
such cases correctly by leaving quoting in place.
Jakub Pawlowicz [Sun, 29 May 2016 15:09:17 +0000 (17:09 +0200)]
Fixes #751 - stringifying CSS variables.
CSS variables come in two variants
- defined as a block which can be applied using @apply keyword (used
in Polymer);
- defined as a simple value or another variable reference.
The second way was broken when source maps were built as stringifying
code was always expecting a block.
Jakub Pawlowicz [Mon, 23 May 2016 09:56:55 +0000 (11:56 +0200)]
Version 3.4.13 release notes.
Jakub Pawlowicz [Mon, 23 May 2016 09:50:53 +0000 (11:50 +0200)]
Merge pull request #774 from nooks/master
Fix input-source-map-tracker for node@6.*
Nook Scheel [Mon, 23 May 2016 07:22:48 +0000 (10:22 +0300)]
Build: support Node.js 6.x
Nook Scheel [Fri, 20 May 2016 13:04:12 +0000 (16:04 +0300)]
Fix input-source-map-tracker for node@6.*
Jakub Pawlowicz [Sat, 9 Apr 2016 16:01:31 +0000 (18:01 +0200)]
Adds Twitter badge to Readme.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:49:17 +0000 (17:49 +0200)]
Adds download stats badge to Readme.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:45:40 +0000 (17:45 +0200)]
Removes dev dependency status from Readme.
* it can still be accessed via "Dependency Status" button;
* we could use sth like greenkeeper to keep them up to date;
Jakub Pawlowicz [Sat, 9 Apr 2016 15:41:20 +0000 (17:41 +0200)]
Removes .DS_Store from the list of ignored files.
Should be stored in one's global git ignore setup, see:
https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
Jakub Pawlowicz [Sat, 9 Apr 2016 15:38:10 +0000 (17:38 +0200)]
Bumps nock dependency to 8.x.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:37:50 +0000 (17:37 +0200)]
Updates JSHint dependency to latest 2.x.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:34:49 +0000 (17:34 +0200)]
Bumps browserify dependency to 13.x.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:25:19 +0000 (17:25 +0200)]
Version 3.4.12 release notes.
Jakub Pawlowicz [Sat, 9 Apr 2016 15:18:15 +0000 (17:18 +0200)]
Fixes #754 - treats empty rule as unmergeable.
Firefox and Chrome just ignore such rules while IE ignores empty rule
and interprets the rest correctly. This means it could be used as a
IE hack.
Jakub Pawlowicz [Thu, 7 Apr 2016 06:57:02 +0000 (08:57 +0200)]
See #753 - extra tests covering `local(...)` values.
Jakub Pawlowicz [Tue, 5 Apr 2016 05:05:30 +0000 (07:05 +0200)]
Correctly removes `reset.css` in binary test.
Jakub Pawlowicz [Tue, 5 Apr 2016 04:51:34 +0000 (06:51 +0200)]
Fixed #734 - `--root` option edge case.
When a root was specified (in CLI only) and it was given a path to
a folder (not a file) then we were taking its parent folder as a
root path instead.
Jakub Pawlowicz [Fri, 1 Apr 2016 20:42:53 +0000 (22:42 +0200)]
Version 3.4.11 release notes.
Jakub Pawlowicz [Fri, 1 Apr 2016 20:39:43 +0000 (22:39 +0200)]
Fixes #738 - edge case in comment processing.
Second `/*` in `/*! comment */*{...}` was taken as a comment start
which actually is not.
Jakub Pawlowicz [Fri, 1 Apr 2016 19:55:15 +0000 (21:55 +0200)]
Fixes #743 - background shorthand and source maps.
There was an edge case when background-size was incorrectly
parsed as background-position.
Jakub Pawlowicz [Fri, 1 Apr 2016 19:39:49 +0000 (21:39 +0200)]
Adds #741 to History.md.
Jakub Pawlowicz [Fri, 1 Apr 2016 19:35:35 +0000 (21:35 +0200)]
Adds #745 to History.md.
Jakub Pawlowicz [Mon, 29 Feb 2016 07:05:00 +0000 (08:05 +0100)]
Version 3.4.10 release notes.
Jakub Pawlowicz [Mon, 29 Feb 2016 07:03:53 +0000 (08:03 +0100)]
Updates History.md after #735 fix.
Jakub Pawlowicz [Wed, 30 Mar 2016 21:55:46 +0000 (23:55 +0200)]
Merge pull request #748 from wzrdtales/httpsFixw/oRequest
fix proxy issues on https @imports
Tobias Gurtzick [Sun, 27 Mar 2016 09:25:49 +0000 (11:25 +0200)]
fix proxy issues on https @imports
When an @import used a https url, the false protocol was tried to be used for the http proxy.
fixes #741
Jakub Pawlowicz [Sat, 26 Mar 2016 07:42:49 +0000 (08:42 +0100)]
Merge pull request #746 from JoniJnm/patch-1
Don't skip !important rule with capital letters
Jónatan Núñez [Mon, 14 Mar 2016 22:24:23 +0000 (23:24 +0100)]
Don't skip !important rule with capital letters
Fix #745
In v3.3.10 works ok, fails in v3.4.10
The problem was introduced in
96096402eaaeb4947afa7ecacba0982381a244f4
Prevent match !importantE with !important
Jakub Pawlowicz [Sun, 13 Mar 2016 07:48:13 +0000 (08:48 +0100)]
Merge pull request #744 from deepsweet/start
Add usage with Start tasks runner to README
Kir Belevich [Sat, 12 Mar 2016 17:39:50 +0000 (20:39 +0300)]
Add usage with Start tasks runner to README
Jakub Pawlowicz [Mon, 29 Feb 2016 06:56:54 +0000 (07:56 +0100)]
Merge pull request #736 from silverwind/escaped-joining-chars
Fix whitespace removal with escaped joining characters
silverwind [Sun, 28 Feb 2016 02:04:29 +0000 (03:04 +0100)]
Fix whitespace removal with escaped joining characters
Jakub Pawlowicz [Tue, 23 Feb 2016 20:42:45 +0000 (21:42 +0100)]
Merge pull request #733 from scniro/master
README: updating gulp plugin
Sal [Tue, 23 Feb 2016 17:58:03 +0000 (10:58 -0700)]
README: updating gulp plugin