slush-squarespace
Version:
A slush generator for working in an external environment on the Squarespace consumer platform
97 lines (86 loc) • 2.41 kB
JavaScript
var gulp = require('gulp'),
install = require('gulp-install'),
conflict = require('gulp-conflict'),
template = require('gulp-template'),
inquirer = require('inquirer');
del = require('del');
function format(string) {
var username = string.toLowerCase();
return username.replace(/\s/g, '-');
}
gulp.task('default', function (done) {
// gather information
inquirer.prompt([
{
type: 'input',
name: 'name',
message: 'What is your project\'s name?',
default: process.cwd().split('/').pop().split('\\').pop()
},
{
type: 'input',
name: 'description',
message: 'What is your project\'s description?',
default: 'Best consumer Squarespace site yet!'
},
{
type: "checkbox",
message: "Do You Want Any Extra Tools?",
name: "tools",
choices: [
{
name: "Auto SFTP",
checked: true
},
{
name: "include-media",
checked: true
},
{
name: "Owl Carousel 2",
},
{
name: "handlebars"
},
{
name: "Simple Grid"
},
{
name: "Waypoints"
},
{
name: "Animate.css"
}]
}
],
// build process
function (answers) {
answers.name = format( answers.name );
var noOwl = answers.tools.indexOf("Owl Carousel 2") == -1,
addSimpleGrid = answers.tools.indexOf("Simple Grid") > -1,
addAnimate = answers.tools.indexOf("Animate.css") > -1,
addWaypoints = answers.tools.indexOf("Waypoints") > -1,
addHandlebars = answers.tools.indexOf("handlebars") > -1
gulp.src(__dirname + '/templates/app/**')
.pipe(template(answers))
.pipe(conflict('./'))
.pipe(gulp.dest('./'))
.pipe(install())
.on('end', function () {
// remove owl file if not selected
if (noOwl) {
del(['./src/scss/components/_owl.theme.custom.scss']);
}
// css dependency notice
if (addAnimate || addSimpleGrid) {
console.log('Note: Remember to change your CSS dependency files to .scss for imports to work correctly.');
}
// js dependency notice
if (addWaypoints || addHandlebars || !noOwl) {
console.log('Note: Remember to copy your JS dependency to src/js to compile.');
}
done();
})
.resume();
});
});