Skip to content

v1.2.4:一键排版修复真正落地

Choose a tag to compare

@wudream813 wudream813 released this 28 Aug 10:43
· 9 commits to main since this release

🔧 修复:「一键排版规范修复」按钮实际生效

旧实现(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...」。