From c0e967ebabacd6f65303af2ef32c1e04856b0eb0 Mon Sep 17 00:00:00 2001 From: Volker E Date: Wed, 6 Feb 2019 21:53:50 -0800 Subject: [PATCH] build: Add 'svgmin' Grunt task and crush SVGs Adding 'grunt-svgmin' package and corresponding 'svgmin' task and also crush SVGs. Several of them are featuring bad UX and are not optimal in many different angles (a.o. clarity, universality, recognizablity etc.). Specifically the 'mediawiki.skinning' ones. But while they are here, let's make them suck less. Change-Id: I8191ceac14565ae31d941982fab1586fa9b6bbdd --- Gruntfile.js | 39 ++++++++++++++++++- package.json | 1 + .../images/sort_both.svg | 2 +- .../images/nextredirect-ltr.svg | 2 +- .../images/nextredirect-rtl.svg | 2 +- .../mediawiki.action/images/redirect-ltr.svg | 2 +- .../mediawiki.action/images/redirect-rtl.svg | 2 +- .../mediawiki.feedlink/images/feed-icon.svg | 2 +- .../src/mediawiki.helplink/images/help.svg | 4 +- .../images/question.svg | 2 +- .../images/arrow-collapsed-rtl.svg | 2 +- .../mediawiki.icon/images/arrow-expanded.svg | 2 +- .../images/magnify-clip-ltr.svg | 2 +- .../images/magnify-clip-rtl.svg | 2 +- .../images/arrow-sort-ascending.svg | 2 +- .../mediawiki.skinning/images/audio-ltr.svg | 12 +++--- .../mediawiki.skinning/images/audio-rtl.svg | 11 ++---- .../mediawiki.skinning/images/chat-ltr.svg | 8 ++-- .../mediawiki.skinning/images/chat-rtl.svg | 8 ++-- .../images/document-ltr.svg | 8 ++-- .../images/document-rtl.svg | 8 ++-- .../images/external-ltr.svg | 12 +++--- .../images/external-rtl.svg | 12 +++--- .../src/mediawiki.skinning/images/ftp-ltr.svg | 14 +++---- .../src/mediawiki.skinning/images/ftp-rtl.svg | 14 +++---- .../images/magnify-clip-ltr.svg | 12 +++--- .../images/magnify-clip-rtl.svg | 12 +++--- .../src/mediawiki.skinning/images/mail.svg | 10 ++--- .../src/mediawiki.skinning/images/video.svg | 18 +++------ .../images/page-disambiguation-ltr.svg | 2 +- .../images/page-disambiguation-rtl.svg | 2 +- .../images/page-existing-ltr.svg | 2 +- .../images/page-existing-rtl.svg | 2 +- .../images/page-not-found-he-yi.svg | 2 +- .../images/page-not-found-ltr.svg | 2 +- .../images/page-not-found-rtl.svg | 2 +- .../images/page-redirect-ltr.svg | 2 +- .../images/page-redirect-rtl.svg | 2 +- 38 files changed, 128 insertions(+), 117 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index fec43f343c..fdbf0efbc5 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -13,6 +13,7 @@ module.exports = function ( grunt ) { grunt.loadNpmTasks( 'grunt-jsonlint' ); grunt.loadNpmTasks( 'grunt-karma' ); grunt.loadNpmTasks( 'grunt-stylelint' ); + grunt.loadNpmTasks( 'grunt-svgmin' ); karmaProxy[ wgScriptPath ] = { target: wgServer + wgScriptPath, @@ -57,6 +58,41 @@ module.exports = function ( grunt ) { stylelint: { src: '{resources/src,mw-config}/**/*.{css,less}' }, + svgmin: { + options: { + js2svg: { + indent: '\t', + pretty: true + }, + multipass: true, + plugins: [ { + cleanupIDs: false + }, { + removeDesc: false + }, { + removeRasterImages: true + }, { + removeTitle: false + }, { + removeViewBox: false + }, { + removeXMLProcInst: false + }, { + sortAttrs: true + } ] + }, + all: { + files: [ { + expand: true, + cwd: 'resources/src', + src: [ + '**/*.svg' + ], + dest: 'resources/src/', + ext: '.svg' + } ] + } + }, watch: { files: [ '.{stylelintrc,eslintrc.json}', @@ -120,9 +156,10 @@ module.exports = function ( grunt ) { return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH ); } ); + grunt.registerTask( 'minify', 'svgmin' ); grunt.registerTask( 'lint', [ 'eslint', 'banana', 'stylelint' ] ); grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] ); grunt.registerTask( 'test', [ 'lint' ] ); - grunt.registerTask( 'default', 'test' ); + grunt.registerTask( 'default', [ 'minify', 'test' ] ); }; diff --git a/package.json b/package.json index 5b65a09d45..e14375036a 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "grunt-jsonlint": "1.1.0", "grunt-karma": "3.0.0", "grunt-stylelint": "0.10.1", + "grunt-svgmin": "5.0.0", "karma": "3.0.0", "karma-chrome-launcher": "2.2.0", "karma-firefox-launcher": "1.1.0", diff --git a/resources/src/jquery.tablesorter.styles/images/sort_both.svg b/resources/src/jquery.tablesorter.styles/images/sort_both.svg index 872a8dbf4e..e145c1b4cf 100644 --- a/resources/src/jquery.tablesorter.styles/images/sort_both.svg +++ b/resources/src/jquery.tablesorter.styles/images/sort_both.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.action/images/nextredirect-ltr.svg b/resources/src/mediawiki.action/images/nextredirect-ltr.svg index c903828afb..1c306ad816 100644 --- a/resources/src/mediawiki.action/images/nextredirect-ltr.svg +++ b/resources/src/mediawiki.action/images/nextredirect-ltr.svg @@ -1,5 +1,5 @@ - + diff --git a/resources/src/mediawiki.action/images/nextredirect-rtl.svg b/resources/src/mediawiki.action/images/nextredirect-rtl.svg index c037339332..23c7769253 100644 --- a/resources/src/mediawiki.action/images/nextredirect-rtl.svg +++ b/resources/src/mediawiki.action/images/nextredirect-rtl.svg @@ -1,5 +1,5 @@ - + diff --git a/resources/src/mediawiki.action/images/redirect-ltr.svg b/resources/src/mediawiki.action/images/redirect-ltr.svg index 46475ef0b5..49c4d92f03 100644 --- a/resources/src/mediawiki.action/images/redirect-ltr.svg +++ b/resources/src/mediawiki.action/images/redirect-ltr.svg @@ -1,5 +1,5 @@ - + diff --git a/resources/src/mediawiki.action/images/redirect-rtl.svg b/resources/src/mediawiki.action/images/redirect-rtl.svg index e06c4d2c0c..7d10f34fd6 100644 --- a/resources/src/mediawiki.action/images/redirect-rtl.svg +++ b/resources/src/mediawiki.action/images/redirect-rtl.svg @@ -1,5 +1,5 @@ - + diff --git a/resources/src/mediawiki.feedlink/images/feed-icon.svg b/resources/src/mediawiki.feedlink/images/feed-icon.svg index d38feb517e..5b0cb0f491 100644 --- a/resources/src/mediawiki.feedlink/images/feed-icon.svg +++ b/resources/src/mediawiki.feedlink/images/feed-icon.svg @@ -15,5 +15,5 @@ - + diff --git a/resources/src/mediawiki.helplink/images/help.svg b/resources/src/mediawiki.helplink/images/help.svg index 2b1ccf9a70..4fc6a0cdc8 100644 --- a/resources/src/mediawiki.helplink/images/help.svg +++ b/resources/src/mediawiki.helplink/images/help.svg @@ -1,5 +1,5 @@ - - + + diff --git a/resources/src/mediawiki.htmlform.styles/images/question.svg b/resources/src/mediawiki.htmlform.styles/images/question.svg index 655076f341..e228ae8e00 100644 --- a/resources/src/mediawiki.htmlform.styles/images/question.svg +++ b/resources/src/mediawiki.htmlform.styles/images/question.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.icon/images/arrow-collapsed-rtl.svg b/resources/src/mediawiki.icon/images/arrow-collapsed-rtl.svg index 076e02b48d..56127fe3f0 100644 --- a/resources/src/mediawiki.icon/images/arrow-collapsed-rtl.svg +++ b/resources/src/mediawiki.icon/images/arrow-collapsed-rtl.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.icon/images/arrow-expanded.svg b/resources/src/mediawiki.icon/images/arrow-expanded.svg index f13144d01c..437f4b51d4 100644 --- a/resources/src/mediawiki.icon/images/arrow-expanded.svg +++ b/resources/src/mediawiki.icon/images/arrow-expanded.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.legacy/images/magnify-clip-ltr.svg b/resources/src/mediawiki.legacy/images/magnify-clip-ltr.svg index 40561e47fc..8a74c10f4d 100644 --- a/resources/src/mediawiki.legacy/images/magnify-clip-ltr.svg +++ b/resources/src/mediawiki.legacy/images/magnify-clip-ltr.svg @@ -1,7 +1,7 @@ - + diff --git a/resources/src/mediawiki.legacy/images/magnify-clip-rtl.svg b/resources/src/mediawiki.legacy/images/magnify-clip-rtl.svg index 1b4cbfe56f..e337a54f35 100644 --- a/resources/src/mediawiki.legacy/images/magnify-clip-rtl.svg +++ b/resources/src/mediawiki.legacy/images/magnify-clip-rtl.svg @@ -2,6 +2,6 @@ - + diff --git a/resources/src/mediawiki.pager.tablePager/images/arrow-sort-ascending.svg b/resources/src/mediawiki.pager.tablePager/images/arrow-sort-ascending.svg index cd7990e33e..7fdec90e3a 100644 --- a/resources/src/mediawiki.pager.tablePager/images/arrow-sort-ascending.svg +++ b/resources/src/mediawiki.pager.tablePager/images/arrow-sort-ascending.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.skinning/images/audio-ltr.svg b/resources/src/mediawiki.skinning/images/audio-ltr.svg index e27a5f537c..f62afb5dab 100644 --- a/resources/src/mediawiki.skinning/images/audio-ltr.svg +++ b/resources/src/mediawiki.skinning/images/audio-ltr.svg @@ -1,8 +1,6 @@ - - - - - - - + + + + + diff --git a/resources/src/mediawiki.skinning/images/audio-rtl.svg b/resources/src/mediawiki.skinning/images/audio-rtl.svg index 683bbcd7ec..28cf4087ff 100644 --- a/resources/src/mediawiki.skinning/images/audio-rtl.svg +++ b/resources/src/mediawiki.skinning/images/audio-rtl.svg @@ -1,8 +1,5 @@ - - - - - - - + + + + diff --git a/resources/src/mediawiki.skinning/images/chat-ltr.svg b/resources/src/mediawiki.skinning/images/chat-ltr.svg index bd5329e024..07d285eaf2 100644 --- a/resources/src/mediawiki.skinning/images/chat-ltr.svg +++ b/resources/src/mediawiki.skinning/images/chat-ltr.svg @@ -1,6 +1,4 @@ - - - - - + + + diff --git a/resources/src/mediawiki.skinning/images/chat-rtl.svg b/resources/src/mediawiki.skinning/images/chat-rtl.svg index b86218f394..a6f026207d 100644 --- a/resources/src/mediawiki.skinning/images/chat-rtl.svg +++ b/resources/src/mediawiki.skinning/images/chat-rtl.svg @@ -1,6 +1,4 @@ - - - - - + + + diff --git a/resources/src/mediawiki.skinning/images/document-ltr.svg b/resources/src/mediawiki.skinning/images/document-ltr.svg index 43960980f3..ee318c6c82 100644 --- a/resources/src/mediawiki.skinning/images/document-ltr.svg +++ b/resources/src/mediawiki.skinning/images/document-ltr.svg @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/resources/src/mediawiki.skinning/images/document-rtl.svg b/resources/src/mediawiki.skinning/images/document-rtl.svg index c37dadca13..ddca3d4423 100644 --- a/resources/src/mediawiki.skinning/images/document-rtl.svg +++ b/resources/src/mediawiki.skinning/images/document-rtl.svg @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/resources/src/mediawiki.skinning/images/external-ltr.svg b/resources/src/mediawiki.skinning/images/external-ltr.svg index e914b7daec..ae47a02799 100644 --- a/resources/src/mediawiki.skinning/images/external-ltr.svg +++ b/resources/src/mediawiki.skinning/images/external-ltr.svg @@ -1,8 +1,6 @@ - - - - - - - + + + + + diff --git a/resources/src/mediawiki.skinning/images/external-rtl.svg b/resources/src/mediawiki.skinning/images/external-rtl.svg index 698c61634d..2a7827a141 100644 --- a/resources/src/mediawiki.skinning/images/external-rtl.svg +++ b/resources/src/mediawiki.skinning/images/external-rtl.svg @@ -1,8 +1,6 @@ - - - - - - - + + + + + diff --git a/resources/src/mediawiki.skinning/images/ftp-ltr.svg b/resources/src/mediawiki.skinning/images/ftp-ltr.svg index 3a90c31195..d8845aa0b1 100644 --- a/resources/src/mediawiki.skinning/images/ftp-ltr.svg +++ b/resources/src/mediawiki.skinning/images/ftp-ltr.svg @@ -1,9 +1,7 @@ - - - - - - - - + + + + + + diff --git a/resources/src/mediawiki.skinning/images/ftp-rtl.svg b/resources/src/mediawiki.skinning/images/ftp-rtl.svg index 29e4b44560..f5c5c81899 100644 --- a/resources/src/mediawiki.skinning/images/ftp-rtl.svg +++ b/resources/src/mediawiki.skinning/images/ftp-rtl.svg @@ -1,9 +1,7 @@ - - - - - - - - + + + + + + diff --git a/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg b/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg index 4d3dcb65d6..574635aeea 100644 --- a/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg +++ b/resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg b/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg index 582e4ae7c9..31176d226f 100644 --- a/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg +++ b/resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/resources/src/mediawiki.skinning/images/mail.svg b/resources/src/mediawiki.skinning/images/mail.svg index 5e534fed49..56ecc086e5 100644 --- a/resources/src/mediawiki.skinning/images/mail.svg +++ b/resources/src/mediawiki.skinning/images/mail.svg @@ -1,7 +1,5 @@ - - - - - - + + + + diff --git a/resources/src/mediawiki.skinning/images/video.svg b/resources/src/mediawiki.skinning/images/video.svg index d52d0db1b3..d683adc152 100644 --- a/resources/src/mediawiki.skinning/images/video.svg +++ b/resources/src/mediawiki.skinning/images/video.svg @@ -1,14 +1,6 @@ - - - - - - - - - - - - - + + + + + diff --git a/resources/src/mediawiki.widgets/images/page-disambiguation-ltr.svg b/resources/src/mediawiki.widgets/images/page-disambiguation-ltr.svg index 45bc2ddefb..0786048380 100644 --- a/resources/src/mediawiki.widgets/images/page-disambiguation-ltr.svg +++ b/resources/src/mediawiki.widgets/images/page-disambiguation-ltr.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-disambiguation-rtl.svg b/resources/src/mediawiki.widgets/images/page-disambiguation-rtl.svg index 7c83bdba56..753c9d56eb 100644 --- a/resources/src/mediawiki.widgets/images/page-disambiguation-rtl.svg +++ b/resources/src/mediawiki.widgets/images/page-disambiguation-rtl.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-existing-ltr.svg b/resources/src/mediawiki.widgets/images/page-existing-ltr.svg index fac87c9e9b..011a17199b 100644 --- a/resources/src/mediawiki.widgets/images/page-existing-ltr.svg +++ b/resources/src/mediawiki.widgets/images/page-existing-ltr.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-existing-rtl.svg b/resources/src/mediawiki.widgets/images/page-existing-rtl.svg index 89dfa0d339..db4ad43e60 100644 --- a/resources/src/mediawiki.widgets/images/page-existing-rtl.svg +++ b/resources/src/mediawiki.widgets/images/page-existing-rtl.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-not-found-he-yi.svg b/resources/src/mediawiki.widgets/images/page-not-found-he-yi.svg index cf37b1c56c..d8c68a9525 100644 --- a/resources/src/mediawiki.widgets/images/page-not-found-he-yi.svg +++ b/resources/src/mediawiki.widgets/images/page-not-found-he-yi.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-not-found-ltr.svg b/resources/src/mediawiki.widgets/images/page-not-found-ltr.svg index fd6fdb5e2d..bea394ab06 100644 --- a/resources/src/mediawiki.widgets/images/page-not-found-ltr.svg +++ b/resources/src/mediawiki.widgets/images/page-not-found-ltr.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-not-found-rtl.svg b/resources/src/mediawiki.widgets/images/page-not-found-rtl.svg index 0df73974d3..bb6f31614a 100644 --- a/resources/src/mediawiki.widgets/images/page-not-found-rtl.svg +++ b/resources/src/mediawiki.widgets/images/page-not-found-rtl.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-redirect-ltr.svg b/resources/src/mediawiki.widgets/images/page-redirect-ltr.svg index fa6d213c6c..f296ac588f 100644 --- a/resources/src/mediawiki.widgets/images/page-redirect-ltr.svg +++ b/resources/src/mediawiki.widgets/images/page-redirect-ltr.svg @@ -1,4 +1,4 @@ - + diff --git a/resources/src/mediawiki.widgets/images/page-redirect-rtl.svg b/resources/src/mediawiki.widgets/images/page-redirect-rtl.svg index 48923c19ca..6c753d6312 100644 --- a/resources/src/mediawiki.widgets/images/page-redirect-rtl.svg +++ b/resources/src/mediawiki.widgets/images/page-redirect-rtl.svg @@ -1,4 +1,4 @@ - + -- 2.20.1