merge = require('merge-stream'),
concat = require('gulp-concat'),
replace = require('gulp-replace'),
+ download = require("gulp-download"),
browserSync = require('browser-sync').create(),
build = require('./semantic/tasks/build'),
buildJS = require('./semantic/tasks/build/javascript'),
js: './ui/js/*.js',
favicon:'./ui/images/favicon.png',
logo: './ui/images/galette.png',
- photo:'./ui/images/default.png'
+ photo:'./ui/images/default.png',
+ emojis: './node_modules/twemoji-emojis/vendor/svg/*'
},
semantic: {
src: './semantic/src/',
theme: './semantic/src/themes/galette/'
},
styles: {
- main: [
- './ui/css/galette.css'
- ],
summernote: [
'./node_modules/summernote/dist/summernote-lite.min.css'
+ ],
+ codemirror: [
+ 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/3.20.0/codemirror.css'
]
},
scripts: {
'./ui/js/masschanges.js'
],
chartjs: [
- './node_modules/chart.js/dist/chart.min.js',
+ './node_modules/chart.js/dist/chart.umd.js',
'./node_modules/chartjs-plugin-autocolors/dist/chartjs-plugin-autocolors.min.js',
'./node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.min.js'
],
],
summernote: [
'./node_modules/summernote/dist/summernote-lite.min.js'
+ ],
+ codemirror: [
+ 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/3.20.0/codemirror.js'
+ ],
+ codemirrorxml: [
+ 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/3.20.0/mode/xml/xml.js'
+ ],
+ codemirrorformatting: [
+ 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/2.36.0/formatting.js'
+ ],
+ darkreader: [
+ './node_modules/darkreader/darkreader.js'
]
},
extras: [
.pipe(gulp.dest(paths.semantic.theme))
.pipe(browserSync.stream());
- return merge(config, theme);
+ emojis = gulp.src(paths.src.emojis)
+ .pipe(gulp.dest(paths.semantic.theme + 'assets/emojis'))
+ .pipe(browserSync.stream());
+
+ return merge(config, theme, emojis);
}
function clean() {
}
function styles() {
- main = gulp.src(paths.styles.main)
- .pipe(cleanCSS())
- .pipe(concat('galette-main.bundle.min.css'))
- .pipe(gulp.dest(paths.assets.css))
- .pipe(browserSync.stream());
-
summernote = gulp.src(paths.styles.summernote)
.pipe(replace('url(font/', 'url(../webfonts/'))
.pipe(cleanCSS())
.pipe(gulp.dest(paths.assets.css))
.pipe(browserSync.stream());
- return merge(main, summernote);
+ codemirror = download(paths.styles.codemirror)
+ .pipe(concat('codemirror.css'))
+ .pipe(gulp.dest(paths.assets.css))
+ .pipe(browserSync.stream());
+
+ return merge(summernote, codemirror);
}
function scripts() {
.pipe(gulp.dest(paths.assets.js))
.pipe(browserSync.stream());
- return merge(main, masschanges, chartjs, sortablejs, summernote);
+ codemirror = download(paths.scripts.codemirror)
+ .pipe(concat('codemirror.js'))
+ .pipe(gulp.dest(paths.assets.js))
+ .pipe(browserSync.stream());
+
+ codemirrorxml = download(paths.scripts.codemirrorxml)
+ .pipe(concat('xml.js'))
+ .pipe(gulp.dest(paths.assets.js))
+ .pipe(browserSync.stream());
+
+ codemirrorformatting = download(paths.scripts.codemirrorformatting)
+ .pipe(concat('formatting.js'))
+ .pipe(gulp.dest(paths.assets.js))
+ .pipe(browserSync.stream());
+
+ darkreader = gulp.src(paths.scripts.darkreader)
+ .pipe(concat('darkreader.min.js'))
+ .pipe(uglify({
+ output: {
+ comments: /^!/
+ }
+ }))
+ .pipe(gulp.dest(paths.assets.js))
+ .pipe(browserSync.stream());
+
+ return merge(main, masschanges, chartjs, sortablejs, summernote, codemirror, codemirrorxml, codemirrorformatting, darkreader);
}
-function extras() {
- main = paths.extras.map(function (extra) {
+function movefiles() {
+ extras = paths.extras.map(function (extra) {
return gulp.src(extra.src)
.pipe(gulp.dest(paths.assets.public + extra.dest))
.pipe(browserSync.stream());
}
);
- return merge(main);
+ return merge(extras);
}
function watch() {
exports.clean = clean;
exports.styles = styles;
exports.scripts = scripts;
-exports.extras = extras;
+exports.movefiles = movefiles;
exports.watch = watch;
-var build = gulp.series(theme, clean, styles, scripts, extras, 'build ui', galette);
+var build = gulp.series(theme, clean, styles, scripts, movefiles, 'build ui', galette);
exports.default = build;