summaryrefslogtreecommitdiffstats
path: root/src/wwwroot/libraries/fomantic/tasks/docs/build.js
diff options
context:
space:
mode:
authorivar <i@oiee.no>2025-10-19 23:41:23 +0200
committerivar <i@oiee.no>2025-10-19 23:41:23 +0200
commit3f4c0720e1e3421431e7baa20882a4a4512a7fab (patch)
tree734ca81d7d0841d8863e3f523ebba14c282dc681 /src/wwwroot/libraries/fomantic/tasks/docs/build.js
downloadfagprove-master.tar.xz
fagprove-master.zip
InitialHEADmaster
Diffstat (limited to 'src/wwwroot/libraries/fomantic/tasks/docs/build.js')
-rw-r--r--src/wwwroot/libraries/fomantic/tasks/docs/build.js111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/wwwroot/libraries/fomantic/tasks/docs/build.js b/src/wwwroot/libraries/fomantic/tasks/docs/build.js
new file mode 100644
index 0000000..9172c5e
--- /dev/null
+++ b/src/wwwroot/libraries/fomantic/tasks/docs/build.js
@@ -0,0 +1,111 @@
+/*******************************
+ Build Docs
+ *******************************/
+
+var
+ gulp = require('gulp'),
+
+ // node dependencies
+ console = require('better-console'),
+ fs = require('fs'),
+ map = require('map-stream'),
+
+ // gulp dependencies
+ print = require('gulp-print').default,
+
+ // user config
+ config = require('../config/docs'),
+
+ // install config
+ tasks = require('../config/tasks'),
+ configSetup = require('../config/project/config'),
+ install = require('../config/project/install'),
+
+ // metadata parsing
+ metadata = require('./metadata'),
+
+ // build methods
+ buildJS = require('../build/javascript').buildJS,
+ buildCSS = require('../build/css').buildCSS,
+ buildAssets = require('../build/assets').buildAssets,
+
+ // shorthand
+ log = tasks.log
+;
+
+
+module.exports = function (callback) {
+
+ // use a different config
+ config = configSetup.addDerivedValues(config);
+
+ // shorthand
+ const globs = config.globs;
+ const output = config.paths.output;
+
+ /*--------------
+ Parse metadata
+ ---------------*/
+
+ function buildMetaData() {
+ // parse all *.html.eco in docs repo, data will end up in
+ // metadata.result object. Note this assumes that the docs
+ // repository is present and in proper directory location as
+ // specified by docs.json.
+ console.info('Building Metadata');
+ return gulp.src(config.paths.template.eco + globs.eco)
+ .pipe(map(metadata.parser))
+ .on('end', function () {
+ fs.mkdirSync(output.metadata, {recursive: true});
+ fs.writeFileSync(output.metadata + '/metadata.json', JSON.stringify(metadata.result, null, 2));
+ });
+ }
+
+ /*--------------
+ Copy Examples
+ ---------------*/
+
+ function copyExample() {
+ // copy src/ to server
+ console.info('Copying examples');
+ return gulp.src('examples/**/*.*')
+ .pipe(gulp.dest(output.examples))
+ .pipe(print(log.created));
+ }
+
+
+ /*--------------
+ Copy Source
+ ---------------*/
+
+ function copyLess() {
+ // copy src/ to server
+ console.info('Copying LESS source');
+ return gulp.src('src/**/*.*')
+ .pipe(gulp.dest(output.less))
+ .pipe(print(log.created));
+ }
+
+
+ /*--------------
+ Build
+ ---------------*/
+
+ console.info('Building Semantic for docs');
+
+ if (!install.isSetup()) {
+ console.error('Cannot build files. Run "gulp install" to set-up Semantic');
+ callback();
+ return;
+ }
+
+ gulp.series(
+ buildMetaData,
+ copyExample,
+ copyLess,
+ (callback) => buildJS('docs', config, callback),
+ (callback) => buildCSS('docs', config, {}, callback),
+ (callback) => buildAssets(config, callback)
+ )(callback);
+
+};