-
Notifications
You must be signed in to change notification settings - Fork 11
/
Gruntfile.js
123 lines (115 loc) · 2.59 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* jshint node:true */
module.exports = function( grunt ) {
var _ = require( 'lodash' );
// Load all Grunt tasks
require( 'load-grunt-tasks' )( grunt );
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON( 'package.json' ),
// jshint: {
// options: grunt.file.readJSON( '.jshintrc' ),
// grunt: {
// src: [
// 'Gruntfile.js'
// ]
// }
// },
clean: {
assets: {
src: [ 'assets/temp' ],
},
},
yaml: {
fontawesome: {
files: [
{
expand: true,
cwd: 'assets',
src: 'icons*.yml',
dest: 'assets/temp',
},
],
},
},
json_massager: {
fontawesome: {
modifier: function( json ) {
var icons = json,
style = '',
newObj = {};
_.forEach( icons, function( data, key ) {
_.forEach( data.styles, function( category ) {
if ( 'undefined' === typeof newObj[ category ] ) {
newObj[ category ] = [];
}
if ( 'regular' === category ) {
style = 'far';
} else if ( 'brands' === category ) {
style = 'fab';
} else if ( 'solid' === category ) {
style = 'fas';
}
var icon = {
name: data.label,
id: key,
unicode: data.unicode,
style: style,
};
newObj[ category ].push( icon );
});
});
// _.forEach( newObj, function( category ) {
// category.sort( function( a, b ) {
// if (a.name.toLowerCase() > b.name.toLowerCase()) {
// return 1;
// }
// if (a.name.toLowerCase() < b.name.toLowerCase()) {
// return -1;
// }
// return 0;
// } );
// } );
return newObj;
},
files: {
'assets/temp/fontawesome.json': [ 'assets/temp/icons*.json' ],
},
},
},
json: {
fontawesome: {
options: {
namespace: 'stIconObj',
processName: function( filename ) {
return filename.toLowerCase();
},
},
src: [ 'assets/temp/fontawesome.json' ],
dest: 'assets/js/icons.js',
},
},
makepot: {
target: {
options: {
cwd: '',
potFilename: 'stagtools.pot',
exclude: ['includes/widgets/lib/.*'],
type: 'wp-plugin',
processPot: function( pot, options ) {
pot.headers['report-msgid-bugs-to'] = 'https://codestag.com/support/';
pot.headers['last-translator'] = 'Codestag';
pot.headers['language-team'] = 'Codestag';
return pot;
},
},
},
},
});
// Process the icons YAML file
grunt.registerTask( 'fontawesome', [
'yaml:fontawesome',
'json_massager:fontawesome',
'json:fontawesome',
'clean:assets',
]);
};