2016-03-08 04:20:32 +01:00
|
|
|
/* ==========================================================================
|
|
|
|
MINIMAL MISTAKES JEKYLL THEME - Gulpfile
|
|
|
|
========================================================================== */
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Packages used
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
var gulp = require("gulp");
|
|
|
|
var sass = require("gulp-sass");
|
|
|
|
var prefix = require("gulp-autoprefixer");
|
|
|
|
var plumber = require("gulp-plumber");
|
|
|
|
var uglify = require("gulp-uglifyjs");
|
|
|
|
var jshint = require("gulp-jshint");
|
2016-03-08 04:20:32 +01:00
|
|
|
var rename = require("gulp-rename");
|
|
|
|
var imagemin = require("gulp-imagemin");
|
2016-03-18 15:43:17 +01:00
|
|
|
var pngquant = require("imagemin-pngquant");
|
2016-03-08 04:20:32 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Styles
|
|
|
|
* - Compile
|
|
|
|
* - Compress/Minify
|
|
|
|
* - Catch errors (gulp-plumber)
|
|
|
|
* - Run through Autoprefixer
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
gulp.task("css", function() {
|
|
|
|
return gulp.src("assets/scss/**/*.scss")
|
|
|
|
.pipe(sass({outputStyle: "compressed"}))
|
|
|
|
.pipe(prefix("last 2 versions", "> 5%", "ie 9"))
|
2016-03-09 18:10:43 +01:00
|
|
|
.pipe(plumber())
|
2016-03-18 15:43:17 +01:00
|
|
|
.pipe(gulp.dest("assets/css"));
|
2016-03-08 04:20:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Javascript
|
|
|
|
* - Concatenate main script with plugins
|
|
|
|
* - Uglify
|
|
|
|
* - Rename
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
gulp.task("scripts", function() {
|
|
|
|
return gulp.src(["assets/js/vendor/jquery/*.js", "assets/js/plugins/**/*.js", "assets/js/_main*.js"])
|
2016-03-08 04:20:32 +01:00
|
|
|
.pipe(uglify())
|
|
|
|
.pipe(rename({
|
|
|
|
basename: "main",
|
|
|
|
suffix: ".min",
|
|
|
|
}))
|
2016-03-18 15:43:17 +01:00
|
|
|
.pipe(gulp.dest("assets/js"))
|
2016-03-08 04:20:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Javascript
|
|
|
|
* - Lint for errors
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
gulp.task("jslint", function() {
|
|
|
|
return gulp.src("assets/js/_*.js")
|
2016-03-08 04:20:32 +01:00
|
|
|
.pipe(jshint())
|
2016-03-18 15:43:17 +01:00
|
|
|
.pipe(jshint.reporter("default"))
|
|
|
|
.pipe(jshint.reporter("fail"))
|
2016-03-08 04:20:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Images
|
|
|
|
* - Optimize image assets
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
gulp.task("images", function () {
|
|
|
|
return gulp.src("images/*")
|
2016-03-09 18:10:43 +01:00
|
|
|
.pipe(imagemin({
|
|
|
|
progressive: true,
|
|
|
|
svgoPlugins: [{removeViewBox: false}],
|
|
|
|
use: [pngquant()]
|
|
|
|
}))
|
2016-03-18 15:43:17 +01:00
|
|
|
.pipe(gulp.dest("images"));
|
2016-03-08 04:20:32 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Default task
|
|
|
|
* - Runs scss, scripts and image tasks
|
|
|
|
* - Watches for scss, script, and image changes
|
|
|
|
*
|
|
|
|
**/
|
2016-03-18 15:43:17 +01:00
|
|
|
gulp.task("default", ["css", "jslint", "scripts", "images"], function () {
|
|
|
|
gulp.watch("assets/scss/**/*.scss", ["css"]);
|
|
|
|
gulp.watch("assets/js/_*.js", ["jslint"]);
|
|
|
|
gulp.watch(["!assets/js/**/*_.js", "assets/js/plugins/**/*.js", "assets/js/vendor/**/*.js"], ["scripts"]);
|
|
|
|
gulp.watch("images/*", ["images"]);
|
2016-03-08 04:20:32 +01:00
|
|
|
});
|