Kaoyan fix-table-pipe
修复 Markdown 表格渲染问题,包括:(1) Callout 块内表格前缺少空行;(2) LaTeX 绝对值符号 $|f(x)|$ 中管道符被误解析为表格分隔符。**自动触发**:每次写入包含表格的文件后,自动检查表格格式是否符合 Obsidian Markdown 规范。手动触发:当用户提到"表格格式错误"、"表格显示异常"、"表格渲染问题"、"Callout 表格"时使用此 skill。
install
source · Clone the upstream repo
git clone https://github.com/Treasoni/kaoyan
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Treasoni/kaoyan "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/fix-table-pipe" ~/.claude/skills/treasoni-kaoyan-fix-table-pipe && rm -rf "$T"
manifest:
.claude/skills/fix-table-pipe/SKILL.mdsource content
自动触发机制
🔴 强制触发(自动检查)
每次使用 Write 或 Edit 工具修改包含表格的 .md 文件后,必须执行本技能进行格式检查!
检查时机:
- ✅ Write 工具写入包含表格的内容后
- ✅ Edit 工具修改了表格相关内容后
- ✅ 任何包含
格式的文件操作后| 列名 |
工作流程:
[Write/Edit 完成] ↓ [检查文件内容是否包含表格] ↓ [是] → 执行表格规范检查 → 修复问题 → 写回文件 [否] → 跳过检查
修复表格渲染问题
常见问题类型
问题 1:Callout 内表格前缺少空行 ⚠️ 最常见
症状:表格显示为纯文本,或列错位、内容丢失
原因:Callout 内的表格必须前面有空行才能正确渲染
# ❌ 错误 - 表格不会渲染 > **标题**: > | 列1 | 列2 | > |-----|-----| > | A | B | # ✅ 正确 - 表格会正确渲染 > **标题**: > > | 列1 | 列2 | > |-----|-----| > | A | B |
修复方法:在表格前添加
> 空行
问题 2:LaTeX 绝对值管道符冲突
症状:表格列数比预期多,内容被截断
原因:
$|x|$ 中的 | 被误认为表格分隔符
# ❌ 错误 | $|f(x)|$ 的值 | 说明 | # ✅ 正确 | $\vert f(x) \vert$ 的值 | 说明 |
修复方法:将
|...| 转换为 \vert...\vert
工作流程
自动检查模式(推荐)
触发条件:每次 Write/Edit 包含表格的文件后自动执行
检查清单:
- 识别文件中所有表格(查找
模式)| 列1 | 列2 | - 检查表格是否在 Callout 块内(前行有
)> - 检查 Callout 内表格前是否有空行
> - 检查表格内容是否包含
格式$|...|$ - 修复所有发现的问题
- 使用 Edit 工具写回文件
Step 1:识别问题
- 检查表格是否在 Callout 块内(行首有
)> - 检查 Callout 内表格前是否有空行
> - 检查表格内容是否包含
格式$|...|$
Step 2:修复 Callout 内表格空行问题
检测规则:
- 找到 Callout 块内的表格(以
开头的行)> | - 检查表格前一行是否为空行
> - 如果不是空行,在表格前插入
>
修复示例:
# 修复前 > **逐项转换**: > | 原来的 | 变成 | 说明 | # 修复后 > **逐项转换**: > > | 原来的 | 变成 | 说明 |
Step 3:修复管道符冲突
转换规则:
| 原始格式 | 转换后 |
|---|---|
| `$ | expr |
| `$$ | expr |
不处理的情况:
- 已使用
:\vert$\vert f(x) \vert$ - 已使用
:\left\right$\left| f(x) \right|$ - 代码块内
Step 4:写回文件
使用 Edit 工具更新文件,保持原有缩进和格式。
完整示例
输入(Callout 内表格缺少空行 + 管道符问题):
> [!example] 例题 > **表格**: > | $|f(x)|$ 的值 | 说明 | > |:---:|:---:| > | 1 | 正常 |
输出:
> [!example] 例题 > **表格**: > > | $\vert f(x) \vert$ 的值 | 说明 | > |:---:|:---:| > | 1 | 正常 |
注意事项
- 自动检查优先:每次 Write/Edit 包含表格的文件后,必须执行本技能
- 优先修复空行问题:Callout 内表格缺少空行是最常见的问题
- 保持 Callout 格式:空行必须是
而不是完全空行> - 批量处理:一次修复文件中所有类似问题
快速检查命令
在每次 Write/Edit 后,执行以下检查:
# 检查文件中是否有 Callout 内表格缺少空行 grep -n '> \|' "文件路径.md" | grep -v '^*>$'
与其他技能的协同
| 技能 | 协同场景 |
|---|---|
| mistake-book | 整理错题时,检查错题本中的表格格式 |
| obsidian-markdown | 创建包含表格的笔记时,自动检查表格格式 |
| kaoyan-math-notes | 生成数学笔记时,检查公式表格格式 |
版本: 2.0.0 - 增加自动触发机制