Smart Spacing for Chinese
pendingby jy324
Fix bold/italic spacing issues that Linter cannot handle. Removes internal spaces and adds proper external spaces.
Obsidian Smart Spacing Plugin
一个专注于处理 加粗/斜体 空格问题的 Obsidian 插件,设计为 Linter 插件的补充。
⚠️ 重要提示
本插件目前处于早期开发阶段,功能还不完善,可能导致文件内容丢失或损坏。强烈建议在使用前对您的笔记进行完整备份!
建议备份方式:
- 使用 Obsidian 的备份插件
- 手动复制整个 Vault 文件夹
- 使用 Git 进行版本控制
为什么需要这个插件?
Linter 插件使用正则表达式处理空格,但正则无法正确区分 ** 是开始标记还是结束标记,导致:
- 可能在加粗内部添加空格:
**文本**→** 文本 **(渲染失败) - 无法修复已有的内部空格问题
本插件使用 状态机算法,100% 正确处理所有加粗/斜体场景。
功能特性
✅ 本插件负责(Linter 做不到的)
| 功能 | 效果 |
|---|---|
| 清理加粗内部空格 | ** 文本 ** → **文本** |
| 清理斜体内部空格 | * 文本 * → *文本* |
| 中文与加粗之间添加空格 | 中文**加粗** → 中文 **加粗** |
| 中文与斜体之间添加空格 | 中文*斜体* → 中文 *斜体* |
❌ 交给 Linter 处理
- 中文与英文之间的空格
- 中文与数字之间的空格
- 其他 Markdown 格式化
配合 Linter 使用 ⭐
配置步骤
- 安装并启用本插件
- 打开 Linter 设置
- 找到 Custom Commands 选项
- 添加命令:
Smart Spacing for Chinese: Fix all spacing (Chinese/Bold/Italic) - 现在每次 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) 而非正则表达式:
遇到 ** 时:
如果当前不在加粗状态 → 这是开始标记 → 检查前面是否需要加空格
如果当前在加粗状态 → 这是结束标记 → 检查后面是否需要加空格
这保证了:
- 绝不会在
**内部添加空格 - 正确处理连续加粗、嵌套等复杂情况
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.