Major website overhaul
This commit is contained in:
105
etc/ghost/themes/casper/gulpfile.coffee
Executable file
105
etc/ghost/themes/casper/gulpfile.coffee
Executable file
@@ -0,0 +1,105 @@
|
||||
'use strict'
|
||||
|
||||
# -- Dependencies --------------------------------------------------------------
|
||||
|
||||
gulp = require 'gulp'
|
||||
gulpif = require 'gulp-if'
|
||||
gutil = require 'gulp-util'
|
||||
sass = require 'gulp-sass'
|
||||
concat = require 'gulp-concat'
|
||||
coffee = require 'gulp-coffee'
|
||||
header = require 'gulp-header'
|
||||
uglify = require 'gulp-uglify'
|
||||
cssnano = require 'gulp-cssnano'
|
||||
addsrc = require 'gulp-add-src'
|
||||
changed = require 'gulp-changed'
|
||||
browserSync = require 'browser-sync'
|
||||
pkg = require './package.json'
|
||||
prefix = require 'gulp-autoprefixer'
|
||||
strip = require 'gulp-strip-css-comments'
|
||||
reload = browserSync.reload
|
||||
|
||||
isProduction = process.env.NODE_ENV is 'production'
|
||||
|
||||
# -- Files ---------------------------------------------------------------------
|
||||
|
||||
dist =
|
||||
name : pkg.name
|
||||
css : 'assets/css'
|
||||
js : 'assets/js'
|
||||
|
||||
src =
|
||||
sass:
|
||||
main : 'assets/scss/' + dist.name + '.scss'
|
||||
files : ['assets/scss/**/**']
|
||||
|
||||
js :
|
||||
common :
|
||||
main : ['assets/js/src/__init.coffee'
|
||||
'assets/js/src/main.coffee'
|
||||
'assets/js/src/cover.coffee']
|
||||
vendor : ['assets/vendor/fastclick/lib/fastclick.js'
|
||||
'assets/vendor/instantclick/instantclick.js'
|
||||
'assets/vendor/pace/pace.min.js'
|
||||
'assets/vendor/reading-time/build/readingTime.min.js']
|
||||
post : ['assets/vendor/fitvids/jquery.fitvids.js'
|
||||
'assets/js/src/prism.js']
|
||||
|
||||
css :
|
||||
main : 'assets/css/' + dist.name + '.css'
|
||||
vendor : []
|
||||
|
||||
banner = [ "/**"
|
||||
" * <%= pkg.name %> - <%= pkg.description %>"
|
||||
" * @version <%= pkg.version %>"
|
||||
" * @link <%= pkg.homepage %>"
|
||||
" * @author <%= pkg.author.name %> (<%= pkg.author.url %>)"
|
||||
" * @license <%= pkg.license %>"
|
||||
" */"
|
||||
"" ].join("\n")
|
||||
|
||||
# -- Tasks ---------------------------------------------------------------------
|
||||
|
||||
gulp.task 'js-common', ->
|
||||
gulp.src src.js.common.main
|
||||
.pipe changed dist.js
|
||||
.pipe coffee().on 'error', gutil.log
|
||||
.pipe addsrc src.js.common.vendor
|
||||
.pipe concat dist.name + '.common.js'
|
||||
.pipe gulpif(isProduction, uglify())
|
||||
.pipe gulpif(isProduction, header banner, pkg: pkg)
|
||||
.pipe gulp.dest dist.js
|
||||
return
|
||||
|
||||
gulp.task 'js-post', ->
|
||||
gulp.src src.js.post
|
||||
.pipe changed dist.js
|
||||
.pipe concat dist.name + '.post.js'
|
||||
.pipe gulpif(isProduction, uglify())
|
||||
.pipe gulpif(isProduction, header banner, pkg: pkg)
|
||||
.pipe gulp.dest dist.js
|
||||
return
|
||||
|
||||
gulp.task 'css', ->
|
||||
gulp.src src.css.vendor
|
||||
.pipe changed dist.css
|
||||
.pipe addsrc src.sass.main
|
||||
.pipe sass().on('error', sass.logError)
|
||||
.pipe concat '' + dist.name + '.css'
|
||||
.pipe gulpif(isProduction, prefix())
|
||||
.pipe gulpif(isProduction, strip all: true)
|
||||
.pipe gulpif(isProduction, cssnano())
|
||||
.pipe gulpif(isProduction, header banner, pkg: pkg)
|
||||
.pipe gulp.dest dist.css
|
||||
return
|
||||
|
||||
gulp.task 'server', -> browserSync.init(pkg.browserSync)
|
||||
|
||||
gulp.task 'js', ['js-common', 'js-post']
|
||||
gulp.task 'build', ['css', 'js']
|
||||
|
||||
gulp.task 'default', ->
|
||||
gulp.start ['build', 'server']
|
||||
gulp.watch src.sass.files, ['css', reload]
|
||||
gulp.watch src.js.common.main, ['js-common', reload]
|
||||
gulp.watch src.js.post, ['js-post', reload]
|
||||
Reference in New Issue
Block a user