From 3bf6f429295e537e82e21e5ffc8910b4f3425d4f Mon Sep 17 00:00:00 2001 From: "James D. Forrester" Date: Thu, 19 May 2016 15:41:15 +0100 Subject: [PATCH] build: Introduce stylelint Initially, with just a single rule to make this a smaller change that we can incrementally extend up to the full Wikimedia coding conventions preset; namely, forcing hex references to colours to be in lower-case. Note the odd src definition to avoid referring to mediawiki.less the directory in the glob. Change-Id: I34f0c8e3c8280e3fce0aa22d7537100b850cbb8d --- .stylelintrc | 5 +++++ Gruntfile.js | 11 +++++++++-- mw-config/config-cc.css | 2 +- package.json | 4 +++- resources/src/jquery/jquery.suggestions.css | 2 +- resources/src/mediawiki.legacy/oldshared.css | 2 +- resources/src/mediawiki.legacy/shared.css | 6 +++--- resources/src/mediawiki.skinning/interface.css | 2 +- .../mediawiki.special/mediawiki.special.search.css | 6 +++--- resources/src/mediawiki/mediawiki.debug.less | 4 ++-- resources/src/mediawiki/mediawiki.notification.css | 8 ++++---- 11 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 .stylelintrc diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 0000000000..bf749514ad --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,5 @@ +{ + "rules": { + "color-hex-case": [ "lower" ] + } +} diff --git a/Gruntfile.js b/Gruntfile.js index 354f0483b6..5af2d9cc74 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,6 +2,7 @@ module.exports = function ( grunt ) { grunt.loadNpmTasks( 'grunt-contrib-copy' ); grunt.loadNpmTasks( 'grunt-contrib-jshint' ); + grunt.loadNpmTasks( 'grunt-stylelint' ); grunt.loadNpmTasks( 'grunt-contrib-watch' ); grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-jscs' ); @@ -39,9 +40,15 @@ module.exports = function ( grunt ) { api: 'includes/api/i18n/', installer: 'includes/installer/i18n/' }, + stylelint: { + options: { + syntax: 'less' + }, + src: '{resources/src/*,{mw-config,tests}/**}/*.{css,less}' + }, watch: { files: [ - '.js*', + '.{stylelintrc,jscsrc,jshintignore,jshintrc}', '**/*', '!{docs,extensions,node_modules,skins,vendor}/**' ], @@ -96,7 +103,7 @@ module.exports = function ( grunt ) { return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH ); } ); - grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana' ] ); + grunt.registerTask( 'lint', [ 'jshint', 'jscs', 'jsonlint', 'banana', 'stylelint' ] ); grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] ); grunt.registerTask( 'test', [ 'lint' ] ); diff --git a/mw-config/config-cc.css b/mw-config/config-cc.css index ecd10fa666..6cc94abcbd 100644 --- a/mw-config/config-cc.css +++ b/mw-config/config-cc.css @@ -10,7 +10,7 @@ body { } #main { - border: 1px solid #D0D0D0; + border: 1px solid #d0d0d0; background: #fff; margin: 0.5em; } diff --git a/package.json b/package.json index 394f36ef18..085edc428c 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,12 @@ "grunt-jscs": "2.8.0", "grunt-jsonlint": "1.0.7", "grunt-karma": "0.12.2", + "grunt-stylelint": "0.2.0", "karma": "0.13.22", "karma-chrome-launcher": "0.2.2", "karma-firefox-launcher": "0.1.7", "karma-qunit": "0.1.9", - "qunitjs": "1.22.0" + "qunitjs": "1.22.0", + "stylelint-config-wikimedia": "0.1.0" } } diff --git a/resources/src/jquery/jquery.suggestions.css b/resources/src/jquery/jquery.suggestions.css index 15cd926486..d42df123cf 100644 --- a/resources/src/jquery/jquery.suggestions.css +++ b/resources/src/jquery/jquery.suggestions.css @@ -47,7 +47,7 @@ } .suggestions-result-current { - background-color: #4C59A6; + background-color: #4c59a6; color: white; } diff --git a/resources/src/mediawiki.legacy/oldshared.css b/resources/src/mediawiki.legacy/oldshared.css index 9adfba186f..ff60ce78c4 100644 --- a/resources/src/mediawiki.legacy/oldshared.css +++ b/resources/src/mediawiki.legacy/oldshared.css @@ -295,7 +295,7 @@ span.unpatrolled { span.updatedmarker { color: black; - background-color: #00FF00; + background-color: #00ff00; } div.gallerybox { diff --git a/resources/src/mediawiki.legacy/shared.css b/resources/src/mediawiki.legacy/shared.css index ec6cee4a9c..95e19b1a95 100644 --- a/resources/src/mediawiki.legacy/shared.css +++ b/resources/src/mediawiki.legacy/shared.css @@ -246,7 +246,7 @@ input#wpSummary { .catlinks li { display: inline-block; line-height: 1.25em; - border-left: 1px solid #AAA; + border-left: 1px solid #aaa; margin: 0.125em 0; padding: 0 0.5em; zoom: 1; @@ -325,7 +325,7 @@ p.mw-delete-editreasons { div.mw-warning-with-logexcerpt { padding: 3px; margin-bottom: 3px; - border: 2px solid #2F6FAB; + border: 2px solid #2f6fab; clear: both; } @@ -352,7 +352,7 @@ th.mw-revdel-checkbox { /* red links; see bug 36276 */ a.new { - color: #BA0000; + color: #ba0000; } /* Plainlinks - this can be used to switch diff --git a/resources/src/mediawiki.skinning/interface.css b/resources/src/mediawiki.skinning/interface.css index b57ee367cc..80a2ff4480 100644 --- a/resources/src/mediawiki.skinning/interface.css +++ b/resources/src/mediawiki.skinning/interface.css @@ -16,7 +16,7 @@ } .editOptions { - background-color: #F0F0F0; + background-color: #f0f0f0; border: 1px solid silver; border-top: none; padding: 1em 1em 1.5em 1em; diff --git a/resources/src/mediawiki.special/mediawiki.special.search.css b/resources/src/mediawiki.special/mediawiki.special.search.css index 1ce95693c2..1ce526d416 100755 --- a/resources/src/mediawiki.special/mediawiki.special.search.css +++ b/resources/src/mediawiki.special/mediawiki.special.search.css @@ -121,7 +121,7 @@ fieldset#mw-searchoptions table td { } fieldset#mw-searchoptions div.divider { clear: both; - border-bottom: 1px solid #DDDDDD; + border-bottom: 1px solid #ddd; padding-top: 0.5em; margin-bottom: 0.5em; } @@ -132,7 +132,7 @@ td#mw-search-menu { div#mw-search-interwiki { float: right; width: 18em; - border: 1px solid #AAAAAA; + border: 1px solid #aaa; margin-top: 2ex; } div#mw-search-interwiki li { @@ -152,7 +152,7 @@ div#mw-search-interwiki-caption { text-align: left; padding: 0.15em 0.15em 0.2em 0.2em; background-color: #ececec; - border-top: 1px solid #BBBBBB; + border-top: 1px solid #bbb; } span.searchalttitle { font-size: 95%; diff --git a/resources/src/mediawiki/mediawiki.debug.less b/resources/src/mediawiki/mediawiki.debug.less index 949c558614..a4e37106b2 100644 --- a/resources/src/mediawiki/mediawiki.debug.less +++ b/resources/src/mediawiki/mediawiki.debug.less @@ -115,7 +115,7 @@ a.mw-debug-panelabel:visited { th, td, table { - border: 1px solid #D0DBB3; + border: 1px solid #d0dbb3; border-collapse: collapse; margin: 0; } @@ -127,7 +127,7 @@ a.mw-debug-panelabel:visited { } th { - background-color: #F1F7E2; + background-color: #f1f7e2; font-weight: bold; } diff --git a/resources/src/mediawiki/mediawiki.notification.css b/resources/src/mediawiki/mediawiki.notification.css index 188af6aa87..5111d96909 100644 --- a/resources/src/mediawiki/mediawiki.notification.css +++ b/resources/src/mediawiki/mediawiki.notification.css @@ -42,11 +42,11 @@ } .mw-notification-type-warn { - border-color: #F5BE00; /* yellow */ - background-color: #FFFFE8; + border-color: #f5be00; /* yellow */ + background-color: #ffffe8; } .mw-notification-type-error { - border-color: #EB3941; /* red */ - background-color: #FFF8F8; + border-color: #eb3941; /* red */ + background-color: #fff8f8; } -- 2.20.1