2025年11月17日星期一
常见 Markdown 错误及避坑指南
在将Markdown导出为图片或发布到CMS之前,先运行这个全面的质量检查清单。这些问题会导致格式损坏、读者困惑和视觉输出不一致。
问题: 标记符后缺少空格
❌ ##没有空格的标题
✅ ## 带空格的正确标题
为什么重要: 没有空格的话,Markdown处理器无法识别标题,会将其渲染为普通文本。
最佳实践:
- 始终使用
#、##、###(井号+空格+文本) - 保持逻辑的标题层级(不要跳级)
- 在标题前后留空行
问题: 项目符号不一致或缺少空行
❌ * 项目1
- 项目2
+ 项目3
段落前没有空行
✅ * 项目1
* 项目2
* 项目3
空行将列表与段落分隔
嵌套列表:
* 主项目
* 嵌套项目(2个空格缩进)
* 另一个嵌套项目
* 回到主级别
问题: 不同代码类型使用了错误语法
❌ `单行代码应该使用反引号`
❌ ```python
print('这是正确的')
✅ 单行代码使用反引号
✅ ```python
print('这是正确的')
内联代码 vs 代码块:
- 单个反引号
像这样用于内联代码 - 三个反引号用于多行代码块
- 为语法高亮添加语言标识符
问题: 管道符对齐错误
❌ |列1|列2|
|---|---|
|值1|值2|
✅ | 列 1 | 列 2 |
| --- | --- |
| 值 1 | 值 2 |
技巧:
- 在管道字符周围添加空格以提高可读性
- 保持分隔行与标题行对齐
- 数字使用右对齐:
|---:|
问题: 替代文本或标题属性错误
❌ 
✅ 
❌ [链接文本](url)
✅ [链接文本](url "可选标题")
最佳实践:
- 始终为图像包含描述性的替代文本
- 使用标题属性提供额外上下文
- 在需要时转义URL中的特殊字符
问题: 未转义的特殊字符
❌ *使用星号的强调*
❌ _使用下划线的下划线_
✅ \*使用转义星号的强调\*
✅ \_使用转义下划线的下划线\_
需要转义的常见字符:
\*(星号)\_(下划线)- ``` (反引号)
\\(反斜杠)\#(井号)
问题: Markdown中存在不必要的HTML
❌ <div>自定义HTML</div>
✅ 尽可能使用纯Markdown
❌ <span style="color: red">红色文本</span>
✅ 为特定需求接受有限的HTML
指导原则:
- 优先使用纯Markdown语法
- 只有在Markdown无法实现所需格式时才使用HTML
- 在不同平台上测试HTML渲染
问题: 引用格式错误或嵌套不当
❌ > 没有空行的引用
普通文本
✅ > 带空行的正确引用
普通文本
> > 嵌套引用
> 仍在嵌套引用中
回到主引用
问题: 使用了错误的分隔符字符
❌ --------------------
✅ ---
✅ ***
✅ ___
问题: 行尾符不一致或尾随空格
解决方案:
- 统一使用 LF (\n) 行尾符
- 删除行尾的尾随空格
- 使用显示空白字符的文本编辑器
问题: 引用式链接损坏
❌ [链接文本]
[链接文本]: /url
✅ [链接文本]
[链接文本]: /url
问题: 复选框语法不一致
❌ [x] 已完成
[ ] 待处理
- [ ] 错误的项目类型
✅ - [x] 已完成
- [ ] 待处理
- [ ] 错误的项目类型
问题: 定义列表格式错误
❌ 术语: 没有适当间距的定义
✅ 术语
: 带冒号的正确定义
另一个术语
: 另一个定义
问题: 缺少或损坏的脚注
❌ 这里有脚注的文本[^1]
没有脚注定义
✅ 这里有脚注的文本[^1]
[^1]: 这是脚注定义
问题: 表情符号渲染不一致
最佳实践:
- 测试不同平台上的表情符号渲染
- 为关键表情符号考虑使用HTML实体
- 为平台特定表情符号准备备用文本
在导出到Markdown2Image或发布之前:
- [ ] 检查所有标题是否具有适当空格
- [ ] 验证列表一致性和缩进
- [ ] 确认代码块使用正确语法
- [ ] 测试表格对齐和格式
- [ ] 验证所有链接和图像
- [ ] 检查转义的特殊字符
- [ ] 删除不必要的HTML
- [ ] 验证正确的引用嵌套
- [ ] 检查水平线格式
- [ ] 清理空白字符和行尾
- [ ] 测试引用式链接
- [ ] 验证任务列表格式
- [ ] 检查定义列表
- [ ] 验证脚注
- [ ] 测试表情符号渲染
- Markdown检查工具:
markdownlint、remark-lint - 预览编辑器: Typora、Mark Text、VS Code with Markdown preview
- 在线验证器: Markdown实时预览网站
- 导出测试: 首先在目标平台中测试
修复这些问题后,在纯文本查看器中预览Markdown,然后再导出到Markdown2Image。这确保跨平台干净、可预测的结果,并在视觉内容中保持专业质量。
记住:好的Markdown不仅仅是关于什么有效——它是关于什么是可维护的、可读的,并在不同工具和平台上保持一致的。