@@ -221,6 +221,15 @@ config.init({
221
221
grunt : 'grunt.js' ,
222
222
tests : 'tests/unit/**/*.js'
223
223
} ,
224
+ csslint : {
225
+ base_theme : {
226
+ src : 'themes/base/*.css' ,
227
+ rules : {
228
+ 'import' : false ,
229
+ 'overqualified-elements' : 2
230
+ }
231
+ }
232
+ } ,
224
233
jshint : {
225
234
options : {
226
235
curly : true ,
@@ -333,6 +342,38 @@ task.registerBasicTask('zip', 'Create a zip file for release', function() {
333
342
} ) ;
334
343
} ) ;
335
344
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
+
336
377
task . registerBasicTask ( 'css_min' , 'Minify CSS files with Sqwish.' , function ( ) {
337
378
var files = file . expand ( this . file . src ) ;
338
379
// Get banner, if specified. It would be nice if UglifyJS supported ignoring
@@ -498,7 +539,7 @@ task.registerHelper("lpad", function(str, len, chr) {
498
539
return ( Array ( len + 1 ) . join ( chr || " " ) + str ) . substr ( - len ) ;
499
540
} ) ;
500
541
501
- task . registerTask ( 'default' , 'lint qunit build compare_size' ) ;
542
+ task . registerTask ( 'default' , 'lint csslint qunit build compare_size' ) ;
502
543
task . registerTask ( 'sizer' , 'concat:ui min:dist/jquery-ui.min.js compare_size' ) ;
503
544
task . registerTask ( 'build' , 'concat min css_min' ) ;
504
545
task . registerTask ( 'release' , 'build copy:dist copy:dist_min copy:dist_min_images copy:dist_css_min md5:dist zip:dist' ) ;
0 commit comments