1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- const path = require('path')
- const { merge } = require('lodash')
- const logger = require('./logger.js')
- const fs = require('fs')
- const fsExtra = require('fs-extra')
- const uglify = require('uglify-js')
- const dir = path.resolve(__dirname, '../resources/js')
- if (!fs.existsSync(dir)) fsExtra.mkdirp(dir)
- const jsFiles = fs.readdirSync(path.resolve(__dirname, '../resources/js'))
- .filter(file => !['all.js', 'docsify.js'].includes(file))
- .map(file => path.resolve(__dirname, '../resources/js/' + file))
- .filter(file => file.endsWith('.js'))
- logger.info(jsFiles)
- const uglified = uglify.minify(jsFiles.map(file => fs.readFileSync(file, 'utf8')))
- fs.writeFileSync(path.resolve(__dirname, '../resources/js/all.js'), uglified.code)
- const defaultConfig = {
- pathToStatic: 'docs/temp',
- mainMdFilename: 'main.md',
- pathToPublic: process.env.PDF_OUTPUT_NAME ? path.join('./pdf/', process.env.PDF_OUTPUT_NAME) : './pdf/DOC.pdf',
- contents: 'docs/_sidebar.md',
- pathToDocsifyEntryPoint: 'docs',
- cover: 'resources/cover.pdf'
- }
- const run = async () => {
- const docsifyRendererPort = 17000
- const docsifyLiveReloadPort = 18000
- logger.info('Build with settings:')
- console.log(defaultConfig)
- console.log('\n')
- const config = merge(defaultConfig, { docsifyRendererPort, docsifyLiveReloadPort })
- const { closeProcess, prepareEnv, cleanUp } = require('./utils.js')(config)
- const { createRoadMap } = require('./contents-builder.js')(config)
- const { combineMarkdowns } = require('./markdown-combine.js')(config)
- const { runDocsifyRenderer } = require('./docsify-server.js')(config)
- const { htmlToPdf } = require('./render.js')(config)
- try {
- await cleanUp()
- await prepareEnv()
- const roadMap = await createRoadMap()
- await combineMarkdowns(roadMap)
- console.log("combine markdown finish!")
- runDocsifyRenderer()
- await htmlToPdf()
- logger.success(path.resolve(config.pathToPublic))
- } catch (error) {
- logger.err('run error', error)
- } finally {
- await closeProcess(0)
- }
- }
- module.exports = run
|