Files
2021-12-20 14:00:21 +01:00

131 lines
2.8 KiB
JavaScript
Executable File

/*
+++++++++++++++++++++++++++++++++++++++++++
title Project Gulp File +
project nord +
author Arctic Ice Studio +
email development@arcticicestudio.com +
copyright Copyright (C) 2016 +
+++++++++++++++++++++++++++++++++++++++++++
[References]
Gulp
(http://gulpjs.com)
npmjs
(https://www.npmjs.com)
*/
"use strict";
/*+---------------+
+ Configuration +
+---------------+*/
var config = {
project: {
id: "nord",
name: "Nord",
version: "0.2.0",
repository: "https://github.com/arcticicestudio/nord",
author: "Arctic Ice Studio",
email: "development@arcticicestudio.com"
},
build: {
base: "./build",
css: "./build/css",
sassdoc: "./build/documentation/sassdoc"
},
src: {
sass: "./src/sass"
},
tasks: {
compilation: {
sass: {
extensions: {
input: ["scss"],
output: "css"
},
options: {
indentedSyntax: false,
indentType: "space",
indentWidth: 2,
linefeed: "lf",
outputStyle: "expanded",
precision: 5,
sourceComments: false
}
}
}
}
}
/*+---------+
+ Imports +
+---------+*/
var del = require("del");
var fs = require("fs");
var gulp = require("gulp-help")(require("gulp"));
var gulputil = require("gulp-util");
var path = require("path");
var plumber = require("gulp-plumber");
var rename = require("gulp-rename");
var sass = require("gulp-sass");
var sassdoc = require("sassdoc");
/*+-------+
+ Tasks +
+-------+*/
/**
* Cleans the whole build folder.
*
* @since 0.1.0
*/
gulp.task("clean", function() {
del(config.build.base);
});
/**
* Cleans the CSS build folder.
*
* @since 0.1.0
*/
gulp.task("clean-css", function(){
del(config.build.css);
});
/**
* Cleans the documentation build folder.
*
* @since 0.1.0
*/
gulp.task("clean-documentation", function(){
del(config.build.sassdoc);
});
/**
* Compiles the Sass CSS template.
*
* @since 0.1.0
*/
gulp.task("compile-css-template", function() {
return gulp.src(path.join(config.src.sass, "/template-css." + config.tasks.compilation.sass.extensions.input))
.pipe(plumber())
.pipe(sass(config.tasks.compilation.sass.options).on("error", sass.logError))
.pipe(rename("/nord." + config.tasks.compilation.sass.extensions.output))
.pipe(gulp.dest(config.build.css))
});
/**
* Shows the help.
*
* @since 0.1.0
*/
gulp.task("default", ["help"]);
/**
* Creates the Sassdoc documentation.
*
* @since 0.1.0
*/
gulp.task("sassdoc", function () {
return gulp.src(path.join(config.src.sass, "/**/*." + config.tasks.compilation.sass.extensions.input))
.pipe(sassdoc())
});