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


    需求

    我在写 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])
    
  • 相关阅读:
    freak out用法
    kinda用法
    比较级与最高级
    issue用法
    invite用法
    yet用法
    follow用法
    get用法
    turn up&turn off&turn on用法
    关于document.lastModified属性
  • 原文地址:https://www.cnblogs.com/pengchenggang/p/16643630.html
Copyright © 2020-2023  润新知