修改 markdown 二级标题的编号 - 自动编号 autoNumber.js nodejs

1|0需求

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

2|0思路

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

3|0小遗憾

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

4|0代码

// 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])

__EOF__

本文作者Reciter
本文链接https://www.cnblogs.com/pengchenggang/p/16643630.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   彭成刚  阅读(330)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示