You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
568tools/tools/mind-map/web/scripts/autoBuildDoc.js

39 lines
847 B

const chokidar = require('chokidar')
const path = require('path')
const fs = require('fs')
const { exec } = require('node:child_process')
const { transformMdToVue } = require('./transformMdToVue')
const reBuildAll = () => {
exec(
'node ./buildDoc.js',
{
cwd: path.resolve(__dirname)
},
(error, msg) => {
console.log(error, msg)
}
)
}
const buildOne = file => {
let content = fs.readFileSync(file, 'utf-8')
let doc = transformMdToVue(content)
let destPath = path.join(path.dirname(file), './index.vue')
fs.writeFileSync(destPath, doc)
}
chokidar
.watch(path.join(__dirname, '../src/pages/Doc/'), {
ignoreInitial: true
})
.on('all', (event, file) => {
if (/\.md$/.test(file)) {
if (event === 'change') {
buildOne(file)
} else {
reBuildAll()
}
}
})