Markdown 代码块未闭合排查

634 字
3 分钟
Markdown 代码块未闭合排查

Markdown 代码块未闭合排查#

Markdown 代码块少一个反引号,后面的整篇文章都可能变成代码样式。构建不一定失败,但页面阅读体验会明显坏掉。

技术博客里代码块很多,所以发布前检查代码围栏非常必要。

代码块基本写法#

```python
print("hello")
```

开头和结尾都要是三个反引号。开头可以带语言名,结尾不要带。

如何定位未闭合#

如果页面某一段之后全部变成等宽字体,通常就是前面某个代码块没有关闭。先从异常位置往上找最近的 ```。

Terminal window
rg -n "```" src/content/posts

批量检查思路#

可以写脚本统计每篇 Markdown 中反引号围栏数量。数量为奇数时,大概率存在未闭合代码块。

from pathlib import Path
for p in Path("src/content/posts").rglob("*.md"):
count = p.read_text(encoding="utf-8").count("```")
if count % 2:
print("odd fences", p, count)

容易混淆的情况#

  • 代码块内部展示 Markdown 代码块,需要换用四个反引号包裹。

  • 中文输入法把反引号打成其他符号。

  • 复制代码时只复制了开头,没有复制结尾。

实战复盘#

把《Markdown 代码块未闭合排查》写成可复用排查记录时,我会保留四类证据:原始现象、执行命令、关键输出、修复后的验证结果。少了其中任何一类,下次遇到类似问题都容易重新猜一遍。

排查类文章不要只写最终命令,还要写为什么先查这里。比如端口问题先看监听进程,Nginx 问题先分清 404 和 403,Python 环境问题先确认解释器路径。

如果修复动作有风险,例如杀进程、删文件、改服务配置,就应该写清回退方式。能恢复,才敢在服务器上操作。

最小验收样例#

验收《Markdown 代码块未闭合排查》时,我会保留一条修复前命令和一条修复后命令。前者证明问题存在,后者证明问题已经消失,而不是只凭浏览器或终端感觉判断。

如果这篇文章涉及服务器操作,还要记录当前路径、用户、服务名和关键配置文件。排查记录越能还原现场,下次遇到同类问题越不需要重新摸索。

小结#

Markdown 代码块错误通常很小,但影响很大。发布前做一次围栏数量检查,可以避免整页格式错乱。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Markdown 代码块未闭合排查
https://blog.tjcheng.cn/posts/backfill/2026-06-29/markdown-code-fence-error/
作者
TengJinCheng
发布于
2026-06-29
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
TengJinCheng
Hello, I'm Teng.
公告
欢迎来到TengJinCheng工作铺!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
157
分类
7
标签
114
总字数
109,939
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.4
文章许可
CC BY-NC-SA 4.0

文章目录