1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-02-03 02:23:38 +08:00
Files
408CSFamily/scripts/mark-map
公众号:Rong姐姐好可爱 779994121d feat: 升级vuepress到最新版本,改造整个项目结构、配置 (#108)
* feat: 升级`vuepress`到最新版本,改造整个项目结构、配置

* chore: update

* chore: update

* fix: update
2024-09-26 12:05:53 +08:00

74 lines
2.2 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env node
/**
* 将思维导图的md格式转化为html提供在线预览
* 链接https://www.npmjs.com/package/markmap-cli
*/
import * as fs from 'node:fs'
import * as path from 'node:path'
import { fileURLToPath } from 'node:url'
import { commandStandardExecutor } from '@142vip/utils'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
const markMapSourcePath = path.join(__dirname, '../', 'docs/mark-map')
const markMapTargetPath = path.join(__dirname, '../', 'docs/.vuepress/public/mind-map')
/**
* 扫描目录
*/
function scanDirectory(directory, fileType) {
const fileList = fs.readdirSync(directory)
return fileList
.map((file) => {
const filePath = path.join(directory, file)
const fileExtension = path.extname(file).toLowerCase()
if (fileExtension === `.${fileType.toLowerCase()}`) {
return filePath
}
return null
})
// 过滤空
.filter(c => c != null)
}
(async () => {
/**
* 第一步: 清空站点思维导图文件存放目录
*/
const delHtmlDir = `rm -rf ${path.join(markMapTargetPath, '*')}`
/**
* 第二步: 将md文档转化为思维导图网页
*/
const mdList = scanDirectory(markMapSourcePath, 'md')
const mdToHtmlCmdStr = mdList.map(md => `npx markmap --no-open ${md}`).join(' && ')
/**
* 第三步: 根据文件类型将思维导图网页文件移动到站点指定目录
*/
const mdHtmlByFileType = path.join(markMapSourcePath, '*.html')
const moveHtmlCmdStr = `mv -f ${mdHtmlByFileType} ${markMapTargetPath}`
await commandStandardExecutor([
delHtmlDir,
mdToHtmlCmdStr,
moveHtmlCmdStr,
])
// /**
// * 第四步: 对mind-map中的xmind文件重命名
// */
// console.log(markMapSourcePath, import.meta.url)
// const markMapData = createRequire(import.meta.url)('../../docs/mark-map/index.json')
// console.log(111, markMapData)
// for (const { originXmindFileName, targetXmindFileName } of markMapData) {
// const originPath = path.join(markMapTargetPath, originXmindFileName)
// const targetPath = path.join(markMapTargetPath, targetXmindFileName)
//
// // html文件
// await fs.renameSync(originPath, targetPath)
// }
})()