Smart Spacing for Chinese

pending

by jy324

Fix bold/italic spacing issues that Linter cannot handle. Removes internal spaces and adds proper external spaces.

1 starsUpdated 2mo agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Obsidian Smart Spacing Plugin

一个专注于处理 加粗/斜体 空格问题的 Obsidian 插件,设计为 Linter 插件的补充

⚠️ 重要提示

本插件目前处于早期开发阶段,功能还不完善,可能导致文件内容丢失或损坏。强烈建议在使用前对您的笔记进行完整备份!

建议备份方式:

  • 使用 Obsidian 的备份插件
  • 手动复制整个 Vault 文件夹
  • 使用 Git 进行版本控制

为什么需要这个插件?

Linter 插件使用正则表达式处理空格,但正则无法正确区分 ** 是开始标记还是结束标记,导致:

  • 可能在加粗内部添加空格:**文本**** 文本 **(渲染失败)
  • 无法修复已有的内部空格问题

本插件使用 状态机算法,100% 正确处理所有加粗/斜体场景。

功能特性

✅ 本插件负责(Linter 做不到的)

功能效果
清理加粗内部空格** 文本 ****文本**
清理斜体内部空格* 文本 **文本*
中文与加粗之间添加空格中文**加粗**中文 **加粗**
中文与斜体之间添加空格中文*斜体*中文 *斜体*

❌ 交给 Linter 处理

  • 中文与英文之间的空格
  • 中文与数字之间的空格
  • 其他 Markdown 格式化

配合 Linter 使用 ⭐

配置步骤

  1. 安装并启用本插件
  2. 打开 Linter 设置
  3. 找到 Custom Commands 选项
  4. 添加命令:
    Smart Spacing for Chinese: Fix all spacing (Chinese/Bold/Italic)
    
  5. 现在每次 Linter 格式化时,会自动调用本插件

推荐的 Linter 设置

关闭 Linter 中与加粗相关的正则规则(如果有),让本插件全权处理加粗空格。

可用命令

命令说明
Fix all spacing (Chinese/Bold/Italic)修复所有加粗/斜体空格问题
Fix bold spacing only只修复加粗相关问题
Fix all spacing (silent)静默修复,不显示通知(适合自动化)

设置选项

选项默认说明
清理加粗/斜体内部空格** text ****text**
中文与加粗之间添加空格中文**加粗**中文 **加粗**
英文与加粗之间添加空格通常不需要
中文与斜体之间添加空格中文*斜体*中文 *斜体*
跳过代码块保护 ``` 内的内容
跳过行内代码保护 `code` 内的内容

安装

手动安装

cd .obsidian/plugins/obsidian-smart-spacing
npm install
npm run build

重启 Obsidian,在设置中启用插件。

技术实现

本插件使用 状态机 (State Machine) 而非正则表达式:

遇到 ** 时:
  如果当前不在加粗状态 → 这是开始标记 → 检查前面是否需要加空格
  如果当前在加粗状态   → 这是结束标记 → 检查后面是否需要加空格

这保证了:

  1. 绝不会在 ** 内部添加空格
  2. 正确处理连续加粗、嵌套等复杂情况

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.