首页 > 编程语言 >修改 markdown 二级标题的编号 - 自动编号 autoNumber.js nodejs

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

时间:2022-08-31 16:59:29浏览次数:81  
标签:index markdown const nodejs item 编号 console dirname

需求

我在写 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])

标签:index,markdown,const,nodejs,item,编号,console,dirname
From: https://www.cnblogs.com/pengchenggang/p/16643630.html

相关文章

  • nodejs
     几点问题:1、怎么直接添加子节点2、判断目录有效性3、parseString有没有同步接口4、readFileSync有没有接口判断读文件是否成功 constfs=require("fs");cons......
  • markdown快速入门
    首先简单介绍下OneNote怎么实现markdown---onemark,神器 OneMark采用 GitHub偏好的Markdown 语法,除了基础的标题、列表、引用,还支持任务列表、代码块、LaTeX、toc等......
  • Html开发:集成markdown格式编辑器
    一、下载依赖官方地址:https://pandao.github.io/editor.md/二、页面代码1、需要使用到的依赖资源除了上述资源外,还需要引入jquery.js,该js引入部......
  • NodeJS 网关 — 第 2 部分:设置我们的数据库 (MongoDB)
    NodeJS网关—第2部分:设置我们的数据库(MongoDB)Photoby鲁拜图尔·阿扎德on不飞溅NoSQL数据库使您可以轻松地开始使用基本模式开发项目或应用程序,并且由于......
  • Day 01. 如何使用Typora学习Markdown语法。(结尾有Typora下载路径)
    Markdown语法学习 标题(1个#一级标题2个##二级标题,以此类推)二级标题三级标题四级标题注:最多六级标题 字体粗体(两边各两个*)Holle,Word斜体(两边各一个*)Hol......
  • markdown语法的使用
    缓冲区的设置markdown语法的使用,引用的内容编号第二号内容intmain(){ //定义一个变量 inta1=0; printf("%d\n",10); return0;}//最大值的比较问题int......
  • Word多级标题测试-去掉标题多级编号
    安装Jenkins(1/3)下载安装在官网上下载Windows版本的Jenkins:https://www.jenkins.io/download/选择最新的版本下载,安装到指定盘符,D:\Jenkins 填写登录Windows的登录......
  • 在NodeJS中安装babel
    安装babel安装babel打开终端,输入命令:npminstall--save-dev@babel/core@babel/cli@babel/preset-env@babel/node安装完毕之后,再次输入命令安装:npminstall--save@......
  • Day01__MarkDown学习
    MarkDown学习标题+空格即为标题(#数量表示级数)eg:三级标题四级标题字体Hello,World!Hello,World!(左右俩*为加粗)Hello,World!(左右一*为斜体)Hello,World!(左右仨*为加粗斜体)H......
  • Markdown学习 Typora
    Markdown学习二级标题Typora#加空格加标题名(几个#是几级标题)字体字体两边加两个星号是粗体*字体两边加一个星号是斜体字体两边加三个星号是斜体加粗字体删除线样......