1 | const 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 |
|
8 | module.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 | };
|