UNPKG

1.89 kBJavaScriptView Raw
1const gulp = require('gulp'),
2 nunjucks = require('gulp-nunjucks'),
3 plumber = require('gulp-plumber'),
4 prism = require('gulp-prism'),
5 gulpif = require('gulp-if'),
6 browserSync = require('browser-sync');
7
8module.exports = (gulp, config) => {
9
10 const isDist = config.flags.isDist;
11 const docs = isDist ? true : config.flags.docs;
12
13 return () => {
14 if (docs) {
15 const version = config.flags.version;
16 const highlight = isDist ? true : config.flags.highlight;
17 let versionNumber = require('../package.json').version;
18
19 if (version) {
20 let versionDigits = versionNumber.split('.');
21
22 switch (version) {
23 case "major":
24 versionDigits[0] = (parseInt(versionDigits[0]) + 1).toString();
25 versionDigits[1] = 0;
26 versionDigits[2] = 0;
27 break;
28 case "minor":
29 versionDigits[1] = (parseInt(versionDigits[1]) + 1).toString();
30 versionDigits[2] = 0;
31 break;
32 case "patch":
33 versionDigits[2] = (parseInt(versionDigits[2]) + 1).toString();
34 break;
35 default:
36 break;
37 }
38
39 versionNumber = versionDigits.join('.');
40 }
41
42 if (isDist) {
43 console.log(" ");
44 console.log("******************************");
45 console.log("* Production Build Detected! *");
46 console.log("* Did you version correctly? *");
47 console.log("******************************");
48 console.log(" ");
49 console.log("Building docs for version", versionNumber);
50 console.log(" ");
51 }
52
53 return gulp.src(config.src.html, { base : './src' })
54 .pipe(plumber({
55 errorHandler: err => {
56 console.error(err);
57 }
58 }))
59 .pipe(nunjucks.compile({
60 versionNumber: versionNumber,
61 showcaseSites: config.data.showcase
62 }))
63 .pipe(gulpif(highlight, prism()))
64 .pipe(gulp.dest(config.dist.html))
65 }
66 };
67};