Skip to content

Commit d60a9dc

Browse files
committed
Add cleancss compressor
1 parent ce2fcdd commit d60a9dc

File tree

6 files changed

+24
-3
lines changed

6 files changed

+24
-3
lines changed

pipeline/compressors/cleancss.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from __future__ import unicode_literals
2+
3+
from pipeline.conf import settings
4+
from pipeline.compressors import SubProcessCompressor
5+
6+
7+
class CleanCSSCompressor(SubProcessCompressor):
8+
9+
def compress_css(self, css):
10+
args = [settings.CLEANCSS_BINARY, settings.CLEANCSS_ARGUMENTS]
11+
return self.execute_command(args, css)

pipeline/conf.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@
5757
'CSSMIN_BINARY': '/usr/bin/env cssmin',
5858
'CSSMIN_ARGUMENTS': '',
5959

60+
'CLEANCSS_BINARY': '/usr/bin/env cssclean',
61+
'CLEANCSS_ARGUMENTS': '',
62+
6063
'COFFEE_SCRIPT_BINARY': '/usr/bin/env coffee',
6164
'COFFEE_SCRIPT_ARGUMENTS': '',
6265

tests/assets/compressors/cleancss.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.concat{display:none}.concatenate{display:block}

tests/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
"dependencies": {
1414
"babel-cli": "^6.4.5",
1515
"babel-preset-es2015": "^6.3.13",
16+
"clean-css": "^3.4.9",
1617
"coffee-script": "^1.10.0",
18+
"cssmin": "^0.4.3",
19+
"google-closure-compiler": "^20151216.2.0",
1720
"less": "^2.5.3",
1821
"livescript": "^1.4.0",
1922
"node-sass": "^3.4.2",
2023
"stylus": "^0.53.0",
21-
"cssmin": "^0.4.3",
22-
"google-closure-compiler": "^20151216.2.0",
2324
"uglify-js": "^2.6.1",
2425
"yuglify": "^0.1.4",
2526
"yuicompressor": "^2.4.8"

tests/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def node_exe_path(command):
149149
'YUGLIFY_BINARY': node_exe_path('yuglify'),
150150
'UGLIFYJS_BINARY': node_exe_path('uglifyjs'),
151151
'CSSMIN_BINARY': node_exe_path('cssmin'),
152+
'CLEANCSS_BINARY': node_exe_path('cleancss'),
152153
})
153154

154155
if HAS_NODE and HAS_JAVA:

tests/tests/test_compressor.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,11 @@ def test_cssmin(self):
250250
self._test_compressor('pipeline.compressors.cssmin.CSSMinCompressor',
251251
'css', 'pipeline/compressors/cssmin.css')
252252

253+
@skipUnless(settings.HAS_NODE, "requires node")
254+
def test_cssclean(self):
255+
self._test_compressor('pipeline.compressors.cleancss.CleanCSSCompressor',
256+
'css', 'pipeline/compressors/cleancss.css')
257+
253258
@skipUnless(settings.HAS_NODE, "requires node")
254259
@skipUnless(settings.HAS_JAVA, "requires java")
255260
def test_closure(self):
@@ -273,4 +278,3 @@ def test_csstidy(self):
273278
self._test_compressor('pipeline.compressors.csstidy.CSSTidyCompressor',
274279
'css', 'pipeline/compressors/csstidy.css')
275280

276-

0 commit comments

Comments
 (0)