Browse Source

[mod] add stylelint process to target themes.simple

Before build, do lint the LESS files using stylelint [1].  The configuration
'stylelint-config-standard' [2] is added to the root of the simple theme [3].

[1] https://stylelint.io/
[2] https://github.com/stylelint/stylelint-config-standard
[3] https://stylelint.io/user-guide/configure

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Markus Heiser 3 years ago
parent
commit
dfc5c3bc15

+ 3 - 0
searx/static/themes/simple/.stylelintrc.json

@@ -0,0 +1,3 @@
+{
+  "extends": "stylelint-config-standard"
+}

+ 18 - 1
searx/static/themes/simple/gruntfile.js

@@ -23,6 +23,14 @@ module.exports = function(grunt) {
         }
         }
       }
       }
     },
     },
+    stylelint: {
+      options: {
+        formatter: 'unix',
+      },
+      src: [
+        'src/less/**/*.less',
+      ]
+    },
     copy: {
     copy: {
       js: {
       js: {
         expand: true,
         expand: true,
@@ -191,8 +199,17 @@ module.exports = function(grunt) {
   grunt.loadNpmTasks('grunt-contrib-less');
   grunt.loadNpmTasks('grunt-contrib-less');
   grunt.loadNpmTasks('grunt-contrib-cssmin');
   grunt.loadNpmTasks('grunt-contrib-cssmin');
   grunt.loadNpmTasks('grunt-webfont');
   grunt.loadNpmTasks('grunt-webfont');
+  grunt.loadNpmTasks('grunt-stylelint');
 
 
   grunt.registerTask('test', ['jshint']);
   grunt.registerTask('test', ['jshint']);
 
 
-  grunt.registerTask('default', ['jshint', 'copy', 'concat', 'uglify', 'less:development', 'less:production']);
+  grunt.registerTask('default', [
+    'jshint',
+    'stylelint',
+    'copy',
+    'concat',
+    'uglify',
+    'less:development',
+    'less:production'
+  ]);
 };
 };

+ 7 - 2
searx/static/themes/simple/package.json

@@ -9,11 +9,14 @@
     "grunt-contrib-less": "~3.0.0",
     "grunt-contrib-less": "~3.0.0",
     "grunt-contrib-uglify": "~5.0.1",
     "grunt-contrib-uglify": "~5.0.1",
     "grunt-contrib-watch": "~1.1.0",
     "grunt-contrib-watch": "~1.1.0",
+    "grunt-stylelint": "^0.16.0",
     "grunt-webfont": "^1.7.2",
     "grunt-webfont": "^1.7.2",
     "ionicons-npm": "^2.0.1",
     "ionicons-npm": "^2.0.1",
     "jslint": "^0.12.1",
     "jslint": "^0.12.1",
     "less": "^4.1.1",
     "less": "^4.1.1",
-    "less-plugin-clean-css": "^1.5.1"
+    "less-plugin-clean-css": "^1.5.1",
+    "stylelint": "^13.13.1",
+    "stylelint-config-standard": "^22.0.0"
   },
   },
   "dependencies": {
   "dependencies": {
     "autocomplete-js": "2.7.1",
     "autocomplete-js": "2.7.1",
@@ -25,6 +28,8 @@
     "build": "grunt",
     "build": "grunt",
     "watch": "grunt watch",
     "watch": "grunt watch",
     "webfont": "grunt webfont",
     "webfont": "grunt webfont",
-    "clean": "rm -Rf node_modules package-lock.json ion.less"
+    "clean": "rm -Rf node_modules package-lock.json ion.less",
+    "stylelint": "grunt stylelint",
+    "stylelint-fix": "grunt stylelint --fix"
   }
   }
 }
 }