File: //home/bristolfilton.co.uk/public_html/wp-content/themes/newsmag/Gruntfile.js
'use strict';
module.exports = function (grunt) {
// load all tasks
require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
makepot : {
target: {
options: {
domainPath : '/languages/',
potFilename : '<%= pkg.name %>.pot',
potHeaders : {
poedit : true,
'x-poedit-keywordslist': true
},
processPot : function (pot, options) {
pot.headers[ 'report-msgid-bugs-to' ] = 'https://www.machothemes.com/';
pot.headers[ 'language-team' ] = 'Macho Themes <office@machothemes.com>';
pot.headers[ 'last-translator' ] = 'Macho Themes <office@machothemes.com>';
pot.headers[ 'language-team' ] = 'Macho Themes <office@machothemes.com>';
return pot;
},
updateTimestamp: true,
type : 'wp-theme'
}
}
},
addtextdomain: {
target: {
options: {
updateDomains: true,
textdomain : '<%= pkg.name %>'
},
files : {
src: [
'*.php',
'!node_modules/**'
]
}
}
},
clean: {
init : {
src: [ 'build/' ]
},
build : {
src: [
'build/*',
'!build/<%= pkg.name %>.zip'
]
},
cssmin: {
src: [ 'layout/css/*.min.css' ]
},
jsmin : {
src: [
'layout/js/*.min.js',
'layout/js/*.min.js.map',
'layout/js/**/*.min.js',
'layout/js/**/*.min.js.map'
]
}
},
copy : {
readme: {
src : 'readme.md',
dest: 'build/readme.txt'
},
build : {
expand: true,
src : [ '**', '!node_modules/**', '!build/**', '!readme.md', '!Gruntfile.js', '!package.json', '!nbproject/**' ],
dest : 'build/'
}
},
compress: {
build: {
options: {
pretty : true,
archive: 'build/<%= pkg.name %>.zip'
},
expand : true,
cwd : 'build/',
src : [ '**/*' ],
dest : '<%= pkg.name %>/'
}
},
uglify: {
macho: {
options: {
sourceMap : false,
sourceMapName: 'sourceMap.map'
},
src : [ 'assets/vendors/machothemes/**/*.js', '!assets/vendors/machothemes/machothemes.min.js' ],
dest : 'assets/vendors/machothemes/machothemes.min.js'
}
},
checktextdomain: {
standard: {
options: {
text_domain : [ 'newsmag' ], //Specify allowed domain(s)
create_report_file: "true",
keywords : [ //List keyword specifications
'__:1,2d',
'_e:1,2d',
'_x:1,2c,3d',
'esc_html__:1,2d',
'esc_html_e:1,2d',
'esc_html_x:1,2c,3d',
'esc_attr__:1,2d',
'esc_attr_e:1,2d',
'esc_attr_x:1,2c,3d',
'_ex:1,2c,3d',
'_n:1,2,4d',
'_nx:1,2,4c,5d',
'_n_noop:1,2,3d',
'_nx_noop:1,2,3c,4d'
]
},
files : [ {
src : [
'**/*.php',
'!**/node_modules/**',
'!**/framework/**'
], //all php
expand: true
} ]
}
},
imagemin: {
jpg : {
options: {
progressive: true
}
},
png : {
options: {
optimizationLevel: 7
}
},
dynamic: {
files: [ {
expand: true,
cwd : 'assets/images/',
src : [ '**/*.{png,jpg,gif}' ],
dest : 'assets/images/'
} ]
}
},
cssmin: {
target: {
files: [ {
expand: true,
cwd : 'assets/css',
src : [ '*.css', '!*.min.css' ],
dest : 'assets/css',
ext : '.min.css'
} ]
}
}
});
grunt.config('watch', {
js: {
files : 'assets/vendors/machothemes/**/*.js',
tasks : [ 'uglify' ],
options: {
spawn: false
}
}
});
grunt.event.on('watch', function (action, filepath) {
// Determine task based on filepath
var get_ext = function (path) {
var ret = '';
var i = path.lastIndexOf('.');
if ( -1 !== i && i <= path.length ) {
ret = path.substr(i + 1);
}
return ret;
};
switch ( get_ext(filepath) ) {
// PHP
case 'php' :
grunt.config('paths.php.files', [ filepath ]);
break;
// JavaScript
case 'js' :
grunt.config('paths.js.files', [ filepath ]);
break;
}
});
grunt.registerTask('default', []);
// Build .pot file
grunt.registerTask('buildpot', [
'makepot'
]);
// Check Missing Text Domain Strings
grunt.registerTask('textdomain', [
'checktextdomain'
]);
// Minify Images
grunt.registerTask('minimg', [
'imagemin:dynamic'
]);
// Minify CSS
grunt.registerTask('mincss', [
'clean:cssmin',
'cssmin'
]);
// Minify JS
grunt.registerTask('minjs', [
'clean:jsmin',
'uglify'
]);
// Task to minify all static resources
grunt.registerTask('allmin', [
'minimg',
'mincss',
'minjs'
]);
// Build task
grunt.registerTask('build-archive', [
'allmin',
'clean:init',
'copy',
'compress:build',
'clean:build'
]);
grunt.registerTask('watch_all', [ 'watch:js' ]);
};