1 |
|
2 |
|
3 |
|
4 |
|
5 | var
|
6 | gulp = require('gulp'),
|
7 |
|
8 |
|
9 | console = require('better-console'),
|
10 | fs = require('fs'),
|
11 | map = require('map-stream'),
|
12 |
|
13 |
|
14 | print = require('gulp-print').default,
|
15 |
|
16 |
|
17 | config = require('../config/docs'),
|
18 |
|
19 |
|
20 | tasks = require('../config/tasks'),
|
21 | configSetup = require('../config/project/config'),
|
22 | install = require('../config/project/install'),
|
23 |
|
24 |
|
25 | metadata = require('./metadata'),
|
26 |
|
27 |
|
28 | buildJS = require('../build/javascript').buildJS,
|
29 | buildCSS = require('../build/css').buildCSS,
|
30 | buildAssets = require('../build/assets').buildAssets,
|
31 |
|
32 |
|
33 | log = tasks.log
|
34 | ;
|
35 |
|
36 |
|
37 | module.exports = function (callback) {
|
38 |
|
39 |
|
40 | config = configSetup.addDerivedValues(config);
|
41 |
|
42 |
|
43 | const globs = config.globs;
|
44 | const output = config.paths.output;
|
45 |
|
46 | |
47 |
|
48 |
|
49 |
|
50 | function buildMetaData() {
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | console.info('Building Metadata');
|
56 | return gulp.src(config.paths.template.eco + globs.eco)
|
57 | .pipe(map(metadata.parser))
|
58 | .on('end', function () {
|
59 | fs.mkdirSync(output.metadata, {recursive: true});
|
60 | fs.writeFileSync(output.metadata + '/metadata.json', JSON.stringify(metadata.result, null, 2));
|
61 | });
|
62 | }
|
63 |
|
64 | |
65 |
|
66 |
|
67 |
|
68 | function copyExample() {
|
69 |
|
70 | console.info('Copying examples');
|
71 | return gulp.src('examples/**/*.*')
|
72 | .pipe(gulp.dest(output.examples))
|
73 | .pipe(print(log.created));
|
74 | }
|
75 |
|
76 |
|
77 | |
78 |
|
79 |
|
80 |
|
81 | function copyLess() {
|
82 |
|
83 | console.info('Copying LESS source');
|
84 | return gulp.src('src/**/*.*')
|
85 | .pipe(gulp.dest(output.less))
|
86 | .pipe(print(log.created));
|
87 | }
|
88 |
|
89 |
|
90 | |
91 |
|
92 |
|
93 |
|
94 | console.info('Building Semantic for docs');
|
95 |
|
96 | if (!install.isSetup()) {
|
97 | console.error('Cannot build files. Run "gulp install" to set-up Semantic');
|
98 | callback();
|
99 | return;
|
100 | }
|
101 |
|
102 | gulp.series(
|
103 | buildMetaData,
|
104 | copyExample,
|
105 | copyLess,
|
106 | (callback) => buildJS('docs', config, callback),
|
107 | (callback) => buildCSS('docs', config, {}, callback),
|
108 | (callback) => buildAssets(config, callback)
|
109 | )(callback);
|
110 |
|
111 | };
|