Created
July 13, 2014 04:40
-
-
Save seabre/cc068c90c5d531382cdc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// include gulp and required plugins | |
var gulp = require('gulp'); | |
var sass = require('gulp-ruby-sass'); | |
var browserSync = require('browser-sync'); | |
var notify = require('gulp-notify'); | |
var imagemin = require('gulp-imagemin'); | |
var pngcrush = require('imagemin-pngcrush'); | |
var cp = require('child_process'); | |
var messages = { | |
jekyllBuild: '<span style="color: grey">Running:</span> $ jekyll build' | |
}; | |
// build the jekyll site | |
gulp.task('jekyll-build', function (done) { | |
browserSync.notify(messages.jekyllBuild); | |
return cp.spawn('jekyll', ['build'], {stdio: 'inherit'}) | |
.on('close', done); | |
}); | |
// rebuild jekyll and do page reload | |
gulp.task('jekyll-rebuild', ['jekyll-build'], function () { | |
browserSync.reload(); | |
}); | |
// compile sass into both _site/assets/css (for live injecting) and site (for future jekyll builds) | |
gulp.task('compile-sass', function () { | |
var loadPaths = [ | |
'bower_components/bourbon/dist/**/*.scss', | |
'bower_components/bootstrap-sass-official/vendor/assets/stylesheets/**/*.scss', | |
'sass/**/*.scss' | |
] | |
return gulp.src(loadPaths) | |
.pipe(sass({ loadPath: loadPaths, sourcemap: true, style: 'compressed'})) | |
.on("error", notify.onError(function (error) { | |
return "Dang! " + error.message; | |
})) | |
.pipe(gulp.dest('css')) | |
.pipe(gulp.dest('_site/css')); | |
}); | |
// minify PNG, JPEG, GIF and SVG images | |
gulp.task('imagemin', function () { | |
return gulp.src('img/**/*') | |
.pipe(imagemin({ | |
progressive: true, | |
svgoPlugins: [{removeViewBox: false}], | |
use: [pngcrush()] | |
})) | |
.pipe(gulp.dest('img/')) | |
.pipe(gulp.dest('_site/img/')); | |
}); | |
// start a server and watch for html and css changes | |
gulp.task('browser-sync', ['compile-sass', 'jekyll-build'], function() { | |
browserSync.init(['_site/css/*.css'], { | |
server: { | |
baseDir: '_site' | |
} | |
}); | |
}); | |
// watch for changes | |
gulp.task('default', ['imagemin', 'browser-sync'], function () { | |
gulp.watch(['sass/**/*.scss'], ['compile-sass']); | |
gulp.watch(['img/**/*'], ['imagemin']); | |
gulp.watch([ '*.yml', '*.md', '*.html', '_includes/*.html', '_layouts/*.html'], ['jekyll-rebuild']); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment