Markdown Multilevel Numbering (mmn)
为 Markdown 文档中的标题和段落添加多级编号。支持正文、附录两种编号模式,通过控制指令调整编号模式和深度。
1. 功能特性
- 提供核心库、命令行工具和 VS Code 扩展。
- 更新编号:清除已有编号,按控制指令重新编号。
- 删除编号:清除已有编号,保留控制指令。
- 正文模式的标题和段落编号:
1.、1.1.、1.1.1.……
- 附录模式的标题和段落编号:
A.、A.1.、A.1.1.……
- 附录模式的二级标题格式:
附录 A 标题。
- 一级标题不参与编号。
- 保护代码块、列表、表格、数学公式等内容,不将其中的文本作为标题或段落编号。
- 出现多个一级标题时,只处理第一个一级标题所属部分的内容。
- 没有一级标题时,处理整篇文档。
2. 控制指令
2.1. 概述
使用 HTML 注释插入控制指令。
2.2. 格式
<!-- mmn: command [command...] -->
2.3. 指令集
| 指令 |
功能 |
mainbody |
开始正文模式编号 |
appendix |
开始附录模式编号 |
h |
给二至六级标题编号 |
h+p |
给二至六级标题及其所属段落编号 |
h2 |
仅给二级标题编号 |
h3 |
仅给二至三级标题编号 |
h4 |
仅给二至四级标题编号 |
h5 |
仅给二至五级标题编号 |
h6 |
仅给二至六级标题编号 |
stop |
停止添加编号 |
2.4. 生效规则
- 每次更新编号时,默认使用正文模式,编号深度为
h。
- 控制指令从所在位置向后生效,直至后续指令改变相应设置。
- 同一注释中的多个指令以空格分隔,按从左到右的顺序执行。
mainbody、appendix 切换到指定模式,重新启用编号并重置计数,保留原有编号深度和段落编号设置。
- 编号深度指令只调整编号深度,不重置计数,也不恢复已停止的编号。
stop 停止添加编号,直至遇到 mainbody 或 appendix。
3. 编号规则
- 同一上级标题下的同级标题从
1 开始连续计数;附录模式的二级标题从 A 开始。
- 附录模式的二级标题使用
A 至 Z 编号,超出范围的行为不作规定。
- 二级标题使用一级编号,三级至六级标题依次增加一级编号。
- 下级标题的编号以所属上级标题的编号为前缀。
- 标题跳级时,缺失层级的编号用
0 补齐,如二级标题 1. 下的首个四级标题编号为 1.0.1.。
- 上级标题编号递增时,下级计数归零。
- 段落编号以所属标题的编号为前缀,从
1 开始连续计数。
- 遇到新标题时,段落计数归零。
- 编号与原文之间使用一个半角空格。
- 已有编号按前缀格式识别,不区分工具生成的编号和原文。
- 标题清除数字或大写字母组成的点分编号前缀,以及
附录 A 形式的单字母附录前缀。
- 段落清除数字或大写字母组成的至少两级点分编号前缀。
- 点分编号前缀须以点号和一个半角空格结束,如
1. 、1.2. 、A.1. 。
| |