当前位置: 首页 > ai >正文

Typora自动对其脚注序号

欢迎转载,但请标明出处和引用本文地址

Markdown中的脚注

脚注引用:[^2]

脚注定义:[^2]: xxxxxxx

问题:脚注需要 使用者自己定义排序。写作过程中,在文章最前面引用脚注序号,需要递增其后所有的脚注引用,很是繁琐。所以根据大佬的提醒,完善了他的代码,可以自动的更新所有的脚注的序号。

大佬原文地址:https://zhuanlan.zhihu.com/p/649723221

更新方法

注意点

脚注需要核实已经是一一对应的关系(可以不连续,不可以一对多),否则会出问题

方法代码
// footnote
// order footnote
// 用css选择器 获取所有脚注引用,按序编号
const fns = document.querySelectorAll(".md-footnote>.md-text>.md-plain")
let cnt = 1
// 获取文章中的新编号-旧编号集合,
let oldNumberMap = new Map()
for (var i = 0; i < fns.length; i++) {// 获取文档中的旧编号let number = fns[i].textContent// deal duplicate entryif (!oldNumberMap.has(cnt)) {oldNumberMap.set(cnt, number)}fns[i].textContent = cntcnt++
}// 更新脚注定义的序号(参考文献中的)
let footnoteMap = new Map()
const rfns = document.querySelectorAll(".md-def-footnote.md-end-block")
// 查找、存储原先的对应关系
for (var i = 0; i < rfns.length; i++) {const documentNumber= rfns[i].querySelectorAll(".md-def-name")[0]let number = documentNumber.textContentconst documentText = rfns[i].querySelectorAll(".md-def-content")[0]let text = documentText.textContentif (!footnoteMap.has(number)) {footnoteMap.set(number, text);}
}cnt = 1
// 更新脚注的引用序号
for (var i = 0; i < rfns.length; i++) {// 获取旧编号let oldNumber = oldNumberMap.get(cnt)// 获取就编号对应的内容let oldText = footnoteMap.get(oldNumber)// 更新编号和内容const documentNumber= rfns[i].querySelectorAll(".md-def-name")[0]documentNumber.textContent = cntconst documentText = rfns[i].querySelectorAll(".md-def-content")[0]documentText.textContent = oldTextcnt++
}
使用方法

在Typora中按住Shif+F12 打开开发者工具,点击控制台,把代码粘贴进去,然后回车运行即可,也可参考下图

http://www.xdnf.cn/news/5358.html

相关文章:

  • 差分与位移算子
  • PostGreSQL:数据表被锁无法操作
  • JVM-类加载子系统
  • DA14585墨水屏学习(2)
  • Day01 ST表——倍增表
  • 11、参数化三维产品设计组件 - /设计与仿真组件/parametric-3d-product-design
  • 移动应用开发的六大设计原则
  • [Java实战]Spring Boot 整合 Freemarker (十一)
  • C++入门小馆: 二叉搜索树
  • 前端面试2
  • 【C语言干货】二维数组传参本质
  • C++23 views::repeat (P2474R2) 写一篇博客
  • Flutter - UIKit开发相关指南 - 导航
  • 深入理解 Java 适配器模式:架构设计中的接口转换艺术
  • 集成灶十大品牌对比
  • Nodejs核心机制
  • 说说Redis的内存淘汰策略?
  • 超市销售管理系统 - 需求分析阶段报告
  • Fiori学习专题四十:单一控件
  • 汇编学习——iOS开发对arm64汇编的初步了解
  • Spring Boot项目(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot前后端分离)
  • 微服务架构实战:从服务拆分到RestTemplate远程调用
  • DINOv2
  • Spring框架(一)
  • Spring AI(3)——Chat Memory
  • skopeo工具详解
  • 成功案例:塔能精准节能技术为核心的工厂节能
  • GitHub打开缓慢甚至失败的解决办法
  • RTOS优先级翻转
  • 论文解读:MP-SfM: Monocular Surface Priors for Robust Structure-from-Motion