@@ -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+
336377task . 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' ) ;
502543task . registerTask ( 'sizer' , 'concat:ui min:dist/jquery-ui.min.js compare_size' ) ;
503544task . registerTask ( 'build' , 'concat min css_min' ) ;
504545task . registerTask ( 'release' , 'build copy:dist copy:dist_min copy:dist_min_images copy:dist_css_min md5:dist zip:dist' ) ;
0 commit comments