test/node_modules/gitbook-plugin-theme-gestalt/gulpfile.js
2018-12-13 14:35:49 +01:00

127 lines
2.6 KiB
JavaScript
Executable file

/*
#
*/
var exec = require('child_process').exec;
var gulp = require("gulp");
var concat = require("gulp-concat");
var merge = require("merge-stream");
var rename = require("gulp-rename");
var sass = require("gulp-sass");
var browserify = require('gulp-browserify');
var bsync = require("browser-sync");
var path = require('path');
/*
## Copy over files
*/
gulp.task( "copy", function(done) {
// Copy over stuff
var fonts = gulp.src( ["node_modules/font-awesome/fonts/**/"] )
.pipe( gulp.dest("_assets/website/fonts/fontawesome/") )
;
var img = gulp.dest("_assets/website/images/")
;
var merged = merge( fonts, img );
// merged.add(js);
// return merged;
done();
});
/*
## Build gitbook core JS
*/
gulp.task('core-js', function()
{
return gulp.src('src/js/core/index.js')
.pipe(browserify({
insertGlobals : true
}))
.pipe(rename('gitbook.js'))
.pipe(gulp.dest('./_assets/website/'))
});
/*
## Build theme JS
*/
gulp.task('theme-js', function()
{
return gulp.src('src/js/theme/index.js')
.pipe(browserify({
insertGlobals : true
}))
.pipe(rename('theme.js'))
.pipe(gulp.dest('./_assets/website/'))
});
/*
## Compile the SASS into a single CSS file
*/
gulp.task('sass', function() {
console.log( "sassing" );
// Compile
return gulp.src('./src/scss/website.scss')
.pipe( sass().on( 'error', sass.logError ) )
.pipe(rename('style.css'))
.pipe( gulp.dest( './_assets/website/' ) )
;
});
gulp.task("reload", function(done)
{
console.log("Reloading gitbook....")
exec('cd ../starter-kit/documentation/ && gitbook build', function (err, stdout, stderr)
{
console.log(stdout);
console.log(stderr);
bsync.reload();
});
done();
});
/*
## Development web server and file watcher
*/
gulp.task("server", function(done) {
bsync.init(
{
server: '../starter-kit/documentation/_book',
open: false
});
// Watch files
gulp.watch( 'src/js/core/**/*.js', gulp.series('core-js', 'reload') );
gulp.watch( 'src/js/theme/**/*.js', gulp.series('theme-js', 'reload') );
gulp.watch( 'src/**/*.scss', gulp.series('sass', 'reload') );
gulp.watch( '_layouts/**/*.html', gulp.series('reload') );
done();
});
/*
# Define main gulp tasks
*/
gulp.task("build", gulp.series( "copy", "core-js", "theme-js", "sass" ) );
gulp.task("default", gulp.series( "build", "server", "reload" ) );