diff --git a/build/browsersync.js b/build/browsersync.js new file mode 100644 index 0000000..e69de29 diff --git a/build/fonts.js b/build/fonts.js new file mode 100644 index 0000000..de612ba --- /dev/null +++ b/build/fonts.js @@ -0,0 +1,11 @@ +const fontsPath = 'fonts/**/*'; +const destPath = '_site/fonts'; + +module.exports = gulp => { + + gulp.task('fonts', () => { + return gulp.src( fontsPath ) + .pipe(gulp.dest( destPath )); + }); + +} diff --git a/build/images.js b/build/images.js new file mode 100644 index 0000000..4abdd80 --- /dev/null +++ b/build/images.js @@ -0,0 +1,14 @@ +const imagemin = require('gulp-imagemin'); + +const imgPath = 'img/**/*.+(png|jpg|gif|svg)'; +const destPath = '_site/img'; + +module.exports = gulp => { + + gulp.task('images', () => { + return gulp.src( imgPath ) + .pipe(imagemin()) + .pipe(gulp.dest( destPath )); + }); + +} diff --git a/build/sass.js b/build/sass.js new file mode 100644 index 0000000..fbc5e24 --- /dev/null +++ b/build/sass.js @@ -0,0 +1,21 @@ +const sass = require('gulp-sass'); +const prefix = require('gulp-autoprefixer'); +const cleanCSS = require('gulp-clean-css'); + +const scssPath = '_scss/*.scss'; +const destPath = '_site/css'; + +module.exports = gulp => { + + gulp.task('sass', () => { + return gulp.src( scssPath ) + .pipe(sass({ + includePaths: ['scss'], + outputStyle: 'expanded' + })) + .pipe(prefix(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], {cascade: true})) + .pipe(cleanCSS({compatibility: 'ie8'})) + .pipe(gulp.dest( destPath )) + .pipe(gulp.dest('css')); + }); +} \ No newline at end of file diff --git a/build/scripts.js b/build/scripts.js new file mode 100644 index 0000000..3d0bbdc --- /dev/null +++ b/build/scripts.js @@ -0,0 +1,21 @@ +const jshint = require('gulp-jshint'); +const babel = require('gulp-babel'); +const uglify = require('gulp-uglify'); + +const jsPath = '_scripts/*.js'; +const destPath = '_site/js'; + +module.exports = gulp => { + + gulp.task('scripts', () => { + return gulp.src( jsPath ) + .pipe(jshint()) + .pipe(babel({ + presets: ['es2015'] + })) + .pipe(uglify()) + .pipe(gulp.dest( destPath )) + .pipe(gulp.dest( 'js' )); + }); + +} diff --git a/gulpfile.js b/gulpfile.js index bbbaf99..c10e428 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -11,7 +11,7 @@ const babel = require('gulp-babel'); const uglify = require('gulp-uglify'); const imagemin = require('gulp-imagemin'); -const jekyll = process.platform === 'win32' ? 'jekyll.bat' : 'jekyll'; +const jekyll = process.platform === 'win32' ? 'jekyll.bat' : 'jekyll'; // Build the Jekyll Site gulp.task('jekyll-build', done => { @@ -33,16 +33,7 @@ gulp.task('browser-sync', ['styles', 'scripts', 'jekyll-build'], () => { }); }); -const scssPath = ['_scss/**/*.scss','_scss/*.scss']; -const jsPath = ['_scripts/*.js']; -const templatePath = ['index.html', '404.html', '_layouts/*.html', '_includes/*.html', '_data/*.yml', '_posts/*', '_drafts/*', '**/*.html']; - -gulp.task('watch', () => { - gulp.watch(scssPath, ['styles', 'jekyll-rebuild']); - gulp.watch(jsPath, ['scripts', 'jekyll-rebuild']); - gulp.watch(templatePath, ['jekyll-rebuild']); -}); - +// Compile files from _scss into both _site/css (for live injecting) and site (for future jekyll builds) gulp.task('styles', () => { return gulp.src('_scss/*.scss') .pipe(sass({ @@ -52,9 +43,11 @@ gulp.task('styles', () => { .pipe(prefix(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], {cascade: true})) .pipe(cleanCSS({compatibility: 'ie8'})) .pipe(gulp.dest('_site/css')) + // .pipe(browserSync.reload({stream:true})) .pipe(gulp.dest('css')); }); +// Compile files from js folder into both _site/js folder (for live injecting) gulp.task('scripts', () => { return gulp.src('_scripts/*.js') .pipe(jshint()) @@ -63,9 +56,20 @@ gulp.task('scripts', () => { })) .pipe(uglify()) .pipe(gulp.dest('_site/js')) + // .pipe(browserSync.reload({stream:true})) .pipe(gulp.dest('js')); }); +const scssPath = ['_scss/**/*.scss','_scss/*.scss']; +const jsPath = ['_scripts/*.js']; +const templatePath = ['index.html', '404.html', '_layouts/*.html', '_includes/*.html', '_data/*.yml', '_posts/*', '_drafts/*', '**/*.html']; + +gulp.task('watch', () => { + gulp.watch(scssPath, ['styles', 'jekyll-rebuild']); + gulp.watch(jsPath, ['scripts', 'jekyll-rebuild']); + gulp.watch(templatePath, ['jekyll-rebuild']); +}); + gulp.task('images', () => { return gulp.src('img/**/*.+(png|jpg|gif|svg)') .pipe(imagemin())