2017-12-23 10:42:29 +01:00
|
|
|
'use strict';
|
|
|
|
|
2017-12-08 20:34:56 +01:00
|
|
|
const gulp = require('gulp'),
|
2017-12-18 23:23:30 +01:00
|
|
|
sass = require('gulp-sass'),
|
|
|
|
cleanCSS = require('gulp-clean-css'),
|
2017-11-25 09:25:43 +01:00
|
|
|
rename = require('gulp-rename'),
|
|
|
|
exec = require('child_process').execFile,
|
2018-01-09 00:57:21 +01:00
|
|
|
optional = require('optional'),
|
2018-05-23 02:46:04 +02:00
|
|
|
hugo = optional('hugo-bin'),
|
2018-09-30 19:00:01 +02:00
|
|
|
gulpStylelint = optional('gulp-stylelint'),
|
|
|
|
autoprefixer = require('gulp-autoprefixer');
|
2017-12-05 23:45:16 +01:00
|
|
|
|
2017-12-18 23:23:30 +01:00
|
|
|
gulp.task('sass', function() {
|
2018-10-29 13:21:22 +01:00
|
|
|
return gulp.src('src/**/*.scss')
|
2017-12-18 23:23:30 +01:00
|
|
|
.pipe(sass.sync().on('error', sass.logError))
|
2018-09-30 19:00:01 +02:00
|
|
|
.pipe(autoprefixer())
|
2017-10-14 16:22:49 +02:00
|
|
|
.pipe(cleanCSS({format: 'beautify'}))
|
2017-10-28 14:05:30 +02:00
|
|
|
.pipe(rename('paper.css'))
|
2017-09-27 23:10:41 +02:00
|
|
|
.pipe(gulp.dest('dist'))
|
2017-12-28 07:07:35 +01:00
|
|
|
.pipe(gulp.dest('docs/static/assets'));
|
2017-09-27 23:10:41 +02:00
|
|
|
});
|
2017-12-05 23:45:16 +01:00
|
|
|
|
2017-12-18 23:23:30 +01:00
|
|
|
gulp.task('watch', function () {
|
2018-10-29 13:21:22 +01:00
|
|
|
gulp.watch('src/**/*.scss', gulp.series('sass'));
|
2017-10-14 16:22:49 +02:00
|
|
|
});
|
|
|
|
|
2017-11-25 09:25:43 +01:00
|
|
|
gulp.task('hugo-server', function (cb) {
|
2018-10-29 13:21:22 +01:00
|
|
|
const flags = ['server', '--source=docs', '--disableFastRender'];
|
|
|
|
let hugo_process = exec(hugo, flags, function (err, stdout, stderr) {
|
|
|
|
console.log(stderr);
|
|
|
|
return err ? cb(err) : cb();
|
|
|
|
});
|
|
|
|
|
2017-11-25 09:25:43 +01:00
|
|
|
hugo_process.stdout.pipe(process.stdout);
|
|
|
|
return hugo_process;
|
|
|
|
})
|
|
|
|
|
|
|
|
gulp.task('hugo-build', function (cb) {
|
2018-10-29 13:21:22 +01:00
|
|
|
const flags = ['--source=docs'];
|
|
|
|
let hugo_process = exec(hugo, flags, function (err, stdout, stderr) {
|
|
|
|
console.log(stderr);
|
|
|
|
return err ? cb(err) : cb();
|
|
|
|
});
|
|
|
|
|
2017-11-25 09:25:43 +01:00
|
|
|
hugo_process.stdout.pipe(process.stdout);
|
|
|
|
return hugo_process;
|
|
|
|
})
|
|
|
|
|
2017-10-14 16:22:49 +02:00
|
|
|
gulp.task('minify-css', () => {
|
2017-12-23 10:42:29 +01:00
|
|
|
return gulp.src('src/**/*.scss')
|
2018-10-29 13:21:22 +01:00
|
|
|
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
|
|
|
|
.pipe(autoprefixer())
|
|
|
|
.pipe(rename('paper.min.css'))
|
|
|
|
.pipe(gulp.dest('dist'))
|
|
|
|
.pipe(gulp.dest('docs/static/assets'));
|
2017-10-14 16:22:49 +02:00
|
|
|
});
|
2017-12-05 23:45:16 +01:00
|
|
|
|
2018-01-03 23:56:56 +01:00
|
|
|
gulp.task('lint-css', function() {
|
|
|
|
return gulp.src('src/**/*.scss')
|
|
|
|
.pipe(gulpStylelint({
|
|
|
|
reporters: [
|
2018-10-29 13:21:22 +01:00
|
|
|
{ formatter: 'string', console: true },
|
|
|
|
],
|
2018-01-03 23:56:56 +01:00
|
|
|
}));
|
|
|
|
})
|
|
|
|
|
2018-10-29 13:21:22 +01:00
|
|
|
gulp.task('default', gulp.series('sass', 'minify-css', 'hugo-build'));
|
|
|
|
gulp.task('build', gulp.series('sass', 'minify-css', 'hugo-build'));
|
|
|
|
gulp.task('postinstall', gulp.series('sass', 'minify-css'));
|