3 const { parallel, series, watch } = require('gulp')
4 const createTask = require('./gulp.d/lib/create-task')
5 const exportTasks = require('./gulp.d/lib/export-tasks')
6 const log = require('fancy-log')
8 const bundleName = 'ui'
9 const buildDir = 'build'
10 const previewSrcDir = 'preview-src'
11 const previewDestDir = 'public'
13 const destDir = `${previewDestDir}/_`
14 const { reload: livereload } = process.env.LIVERELOAD === 'true' ? require('gulp-connect') : {}
15 const serverConfig = { host: '0.0.0.0', port: 5252, livereload }
17 const task = require('./gulp.d/tasks')
19 all: [srcDir, previewSrcDir],
20 css: `${srcDir}/css/**/*.css`,
21 js: ['gulpfile.js', 'gulp.d/**/*.js', `${srcDir}/{helpers,js}/**/*.js`],
24 const cleanTask = createTask({
26 desc: 'Clean files and folders generated by build',
27 call: task.remove(['build', 'public']),
30 const lintCssTask = createTask({
32 desc: 'Lint the CSS source files using stylelint (standard config)',
33 call: task.lintCss(glob.css),
36 const lintJsTask = createTask({
38 desc: 'Lint the JavaScript source files using eslint (JavaScript Standard Style)',
39 call: task.lintJs(glob.js),
42 const lintTask = createTask({
44 desc: 'Lint the CSS and JavaScript source files',
45 call: parallel(lintCssTask, lintJsTask),
48 const formatTask = createTask({
50 desc: 'Format the JavaScript source files using prettify (JavaScript Standard Style)',
51 call: task.format(glob.js),
54 const buildTask = createTask({
56 desc: 'Build and stage the UI assets for bundling',
60 process.argv.slice(2).some((name) => name.startsWith('preview'))
64 const bundleBuildTask = createTask({
66 call: series(cleanTask, lintTask, buildTask),
69 const bundlePackTask = createTask({
71 desc: 'Create a bundle of the staged UI assets for publishing',
76 (bundlePath) => !process.env.CI && log(`Antora option: --ui-bundle-url=${bundlePath}`)
80 const bundleTask = createTask({
82 desc: 'Clean, lint, build, and bundle the UI for publishing',
83 call: series(bundleBuildTask, bundlePackTask),
86 const packTask = createTask({
88 desc: '(deprecated; use bundle instead)',
89 call: series(bundleTask),
92 const buildPreviewPagesTask = createTask({
93 name: 'preview:build-pages',
94 call: task.buildPreviewPages(srcDir, previewSrcDir, previewDestDir, livereload),
97 const previewBuildTask = createTask({
98 name: 'preview:build',
99 desc: 'Process and stage the UI assets and generate pages for the preview',
100 call: parallel(buildTask, buildPreviewPagesTask),
103 const previewServeTask = createTask({
104 name: 'preview:serve',
105 call: task.serve(previewDestDir, serverConfig, () => watch(glob.all, previewBuildTask)),
108 const previewTask = createTask({
110 desc: 'Generate a preview site and launch a server to view it',
111 call: series(previewBuildTask, previewServeTask),
114 module.exports = exportTasks(