v1.2.4:一键排版修复真正落地
🔧 修复:「一键排版规范修复」按钮实际生效
旧实现(fixSpacing)只会处理盘古空格,面对规范中的绝大多数条目(半角标点、公式规范、行尾、空行等)点击后毫无变化。本版替换为与 lint 同源的全量修复器 autoFixLuoguStyle,点击后自动改写并把不可修复项继续留在问题面板:
§1 标点与空格
- 中文语境半角标点、括号 → 全角(
你好,世界→你好,世界) - 句末自动补「。」(含公式结尾的段落;硬换行的两个空格保留在句号后)
- 中文 ↔ 英文/数字/公式 自动补半角空格(
设$n$为正整数→设 $n$ 为正整数) - 全角标点两侧空格自动剥除(
中文 ,中文、$n \le 10^5$ ,)
§2 数学公式
- 公式内
<= >= != ==→\le \ge \ne =;*→\times;裸mod→\bmod;公式内全角标点 → 半角 - 公式碎拼自动合并:
$a$ + $b$ = $c$→$a + b = c$ $DFS$式英文误用 LaTeX → 自动脱壳- 正文
2*3→$2 \times 3$,O(n log n)→$\mathcal{O}(n log n)$,5e9→$5 \times 10^{9}$
整理:连续空行压缩为一个;行尾空格规范化(恰好两个空格的硬换行保留)。
安全:围栏代码、行内代码、数学块内容在修复过程被占位符严格隔离,绝不动代码。
改进:句末标点规则段落感知——软换行跨行段落只在末行判定,不再把半句话误补「。」。
修复完成后与 lint 同日复检零残留(幂等,可放心重复点击);无法机械判定的(标题层级、代码块语言、公式内混入中文文字)保留 Hint 提示交人工处理。
✅ 测试
新增 test-fix(37 项,含豁免/幂等/零残留);test-style 56 项同步更新;原有套件全绿。
📦 安装
下载下方 luogu-markdown-editor-1.2.4.vsix,在 VSCode 中执行「Extensions: Install from VSIX...」。