Skip to content

Commit fd9b7d3

Browse files
committed
Build/grunt: Integrate CSSLint
1 parent 2865a62 commit fd9b7d3

File tree

2 files changed

+44
-3
lines changed

2 files changed

+44
-3
lines changed

grunt.js

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,15 @@ config.init({
221221
grunt: 'grunt.js',
222222
tests: 'tests/unit/**/*.js'
223223
},
224+
csslint: {
225+
base_theme: {
226+
src: 'themes/base/*.css',
227+
rules: {
228+
'import': false,
229+
'overqualified-elements': 2
230+
}
231+
}
232+
},
224233
jshint: {
225234
options: {
226235
curly: true,
@@ -333,6 +342,38 @@ task.registerBasicTask('zip', 'Create a zip file for release', function() {
333342
});
334343
});
335344

345+
task.registerBasicTask('csslint', 'Lint CSS files with csslint', function() {
346+
var csslint = require('csslint').CSSLint;
347+
var files = file.expand(this.file.src);
348+
var ruleset = {};
349+
csslint.getRules().forEach(function(rule) {
350+
ruleset[rule.id] = 1;
351+
});
352+
for (var rule in this.data.rules) {
353+
if (!this.data.rules[rule]) {
354+
delete ruleset[rule];
355+
} else {
356+
ruleset[rule] = this.data.rules[rule];
357+
}
358+
}
359+
var hadErrors = 0;
360+
files.forEach(function(filepath) {
361+
log.writeln('Linting ' + filepath);
362+
var result = csslint.verify(file.read(filepath), ruleset);
363+
result.messages.forEach(function(message) {
364+
log.writeln('['.red + ('L' + message.line).yellow + ':'.red + ('C' + message.col).yellow + ']'.red);
365+
log[message.type === 'error' ? 'error' : 'writeln'](message.message + ' ' + message.rule.desc + ' (' + message.rule.id + ')');
366+
});
367+
if (result.messages.length) {
368+
hadErrors += 1;
369+
}
370+
});
371+
if (hadErrors) {
372+
return false;
373+
}
374+
log.writeln('Lint free');
375+
});
376+
336377
task.registerBasicTask( 'css_min', 'Minify CSS files with Sqwish.', function() {
337378
var files = file.expand( this.file.src );
338379
// Get banner, if specified. It would be nice if UglifyJS supported ignoring
@@ -498,7 +539,7 @@ task.registerHelper("lpad", function(str, len, chr) {
498539
return ( Array( len + 1 ).join( chr || " " ) + str ).substr( -len );
499540
});
500541

501-
task.registerTask('default', 'lint qunit build compare_size');
542+
task.registerTask('default', 'lint csslint qunit build compare_size');
502543
task.registerTask('sizer', 'concat:ui min:dist/jquery-ui.min.js compare_size');
503544
task.registerTask('build', 'concat min css_min');
504545
task.registerTask('release', 'build copy:dist copy:dist_min copy:dist_min_images copy:dist_css_min md5:dist zip:dist');

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
"dependencies": {},
2828
"devDependencies": {
2929
"grunt": "0.2.x",
30-
"adm-zip": "0.1.x",
3130
"sqwish": "0.2.x",
32-
"request": "0.2.x"
31+
"request": "2.9.x",
32+
"csslint": "0.9.x"
3333
},
3434
"keywords": []
3535
}

0 commit comments

Comments
 (0)