需求

我在写 ​​https://www.vuejsdev.com/01FE/must-know-knowledge.html​​​ 这个页面的时候,
二级页面 标题前面有编号,但是有时候我会把顺序换下,每次手动修改编号,开始数据量小还行,后面数据多了,比较麻烦

思路

  1. 读取 md文档
  2. 将每行变成数组
  3. 检测是不是标题,是标题 更新一遍数字
  4. 存文件

小遗憾

本来想着 用vscode任务将当前打开的文件名传到脚本里,最后也没成功。凑合用吧。

代码

// autoNumber.js
// 每次换后面的参数
// "自动编号": "node script-ci/autoNumber.js docs\\01FE\\vscode-set-recommend.md",
import { readFileSync, writeFileSync } from 'fs'
import { fileURLToPath } from 'url'
import { dirname, resolve } from 'path'

const __dirname = dirname(fileURLToPath(import.meta.url))
const path = resolve(__dirname, '../' + process.argv[2])
const data = readFileSync(path, { encoding: 'utf-8' })

const arr = data.split('\r\n')
let index = 1
// 二级标题格式
// ## Plug. 21: Path Intellisense
const reg = /(## [\s\S]*?\. )[\d\d].?(:)/
const retArr = arr.map(item => {
if (reg.test(item)) {
console.info('item', item)
const str = item.replace(reg, "$1" + index + "$2")
console.info('stri', str)
console.info('---')
index = index + 1
return str
} else {
return item
}
})
const outStr = retArr.join('\r\n')
writeFileSync(path, outStr)

// console.info('process.argv', process.argv[2])

---------------------------------------------
生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
↑面的话,越看越不痛快,应该这么说:

生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!

新博客 ​​​https://www.VuejsDev.com​​ 用于梳理知识点