forked from atlas-bi/Hub
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.mjs
More file actions
100 lines (92 loc) · 2.85 KB
/
gulpfile.mjs
File metadata and controls
100 lines (92 loc) · 2.85 KB
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
import pkg from 'gulp';
const { src, dest, task, parallel,series } = pkg;
import autoprefexer from 'gulp-autoprefixer';
import * as dartSass from 'sass';
import gulpSass from 'gulp-sass';
const sass = gulpSass(dartSass);
import postcss from 'gulp-postcss';
import replace from 'gulp-replace';
import {fontawesomeSubset} from 'fontawesome-subset';
import {deleteSync} from 'del';
import purgecss from 'gulp-purgecss';
import cssnano from 'cssnano';
task('font:inter', function() {
return src('node_modules/@fontsource-variable/inter/**/*', { removeBOM: false })
.pipe(replace(/\.\/files\//g, '/static/fonts/inter/files/'))
.pipe(dest('web/static/fonts/inter'))
});
task('font:rasa', function() {
return src('node_modules/@fontsource-variable/rasa/**/*', { removeBOM: false })
.pipe(replace(/\.\/files\//g, '/static/fonts/rasa/files/'))
.pipe(dest('web/static/fonts/rasa'))
});
task('fontawesome', function(done) {
deleteSync('web/static/fonts/fontawesome/webfonts', {force:true});
fontawesomeSubset({
regular:['circle-play', 'circle-question'],
solid: ['triangle-exclamation'
, 'angle-down'
, 'circle-pause'
, 'right-to-bracket'
, 'users'
, 'eye'
, 'eye-slash'
, 'arrow-up-right-from-square'
, 'calendar'
, 'circle-stop'
, 'circle-question'
, 'circle-notch'
, 'circle-xmark'
, 'circle-check'
, 'angle-right'
, 'file-arrow-down'
, 'circle-info'
, 'magnifying-glass'
, 'pen-to-square'
, 'trash'
, 'delete-left'
, 'sort'
, 'terminal'
, 'list'
, 'ban'
, 'toggle-on'
, 'toggle-off'
, 'plus'
, 'rotate'
, 'download'
, 'copy'
, 'check']
}, 'web/static/fonts/fontawesome/webfonts')
done();
});
task('sass', function() {
const plugins = [
cssnano({
preset: ['default', { discardComments: false }],
}),
];
return src("web/static/assets/**/*.scss")
.pipe(sass().on('error', sass.logError))
.pipe(postcss(plugins))
.pipe(
purgecss({
content: ['web/static/lib/**/*.js'
, 'web/static/js/**/*.js'
, 'web/templates/**/*.html.j2'
, 'runner/templates/**/*.html.j2'
, 'scheduler/templates/**/*.html.j2'
, 'web/web/*.py'],
safelist: [],
whitelist: []
})
)
.pipe(autoprefexer())
.pipe(dest('web/static/css/'))
});
task('build', parallel('font:inter','font:rasa', series('fontawesome','sass')));
task('watch', series('build', function (cb) {
watch('web/static/assets/**/*.scss', series('sass'));
watch('web/fonts/fontawesome/**/*.scss', series('fontawesome','sass'));
watch('web/**/*.html*', series('fontawesome', 'sass'));
cb();
}));