@ -2,6 +2,8 @@
module . exports = function ( grunt ) {
const eachAsync = require ( 'each-async' ) ;
grunt . initConfig ( {
_brand : '../../../../src/brand' ,
@ -19,6 +21,7 @@ module.exports = function(grunt) {
'less:development' ,
'less:production' ,
'image' ,
'svg2png' ,
'svg2jinja'
]
}
@ -148,6 +151,13 @@ module.exports = function(grunt) {
}
}
} ,
svg2png : {
favicon : {
files : {
'img/favicon.png' : '<%= _brand %>/searxng-wordmark.svg'
}
}
} ,
svg2jinja : {
all : {
src : {
@ -232,6 +242,36 @@ module.exports = function(grunt) {
grunt . log . ok ( this . data . dest + " created" ) ;
} ) ;
grunt . registerMultiTask ( 'svg2png' , 'Convert SVG to PNG' , function ( ) {
const sharp = require ( 'sharp' ) , done = this . async ( ) ;
eachAsync ( this . files , async ( file , _index , next ) => {
try {
if ( file . src . length != 1 ) {
next ( "this task supports only one source per destination" ) ;
}
const info = await sharp ( file . src [ 0 ] )
. png ( {
force : true ,
compressionLevel : 9 ,
palette : true ,
} )
. toFile ( file . dest ) ;
grunt . log . ok ( file . dest + ' created (' + info . size + ' bytes, ' + info . width + 'px * ' + info . height + 'px)' ) ;
next ( ) ;
} catch ( error ) {
grunt . fatal ( error ) ;
next ( error ) ;
}
} , error => {
if ( error ) {
grunt . fatal ( error ) ;
done ( error ) ;
} else {
done ( ) ;
}
} ) ;
} ) ;
grunt . loadNpmTasks ( 'grunt-contrib-watch' ) ;
grunt . loadNpmTasks ( 'grunt-contrib-copy' ) ;
grunt . loadNpmTasks ( 'grunt-contrib-uglify' ) ;
@ -254,6 +294,7 @@ module.exports = function(grunt) {
'less:development' ,
'less:production' ,
'image' ,
'svg2png' ,
'svg2jinja' ,
] ) ;
} ;