Buu 如何处理 Markdown 标题前后的空行
Decision(决策)
Buu 的 Markdown 默认规则是:标题前后保留一个空行。
Context(背景)
Buu 在阅读和编辑 Markdown 时,对“标题下面紧接正文、不留空行”的写法有明显不适感。与此同时,AI 在编辑 Markdown 时有时会加空行,有时不会,导致文档风格不稳定。
Criteria(准则)
- 规则要足够明确,方便 AI 执行
- 规则要优先保证可读性和视觉稳定性
- 规则最好和常见 Markdown 风格工具兼容
- 规则要能区分“语法是否必须”和“我自己要不要统一这样写”
Facts(事实)
- CommonMark / GFM 对
#标题不要求必须和周围内容用空行隔开。 - markdownlint 的 MD022 要求标题前后应有空行。
- 因此,标题前后空行不是 Markdown 语法硬要求,但属于常见风格规范。
Interpretation(解释)
- 对 Buu 来说,这已经不只是“可有可无的风格偏好”,而是应该固定下来的长期写作规则。
- 既然语法并不强制,而常见风格工具又支持这一写法,那么把它上升为本地规范最合适。
- 这样既能减少 AI 编辑时的摇摆,也能减少 Buu 看到不合口味格式时的摩擦。
Current Rule(当前规则)
- Markdown 标题前后默认保留一个空行。
- 文档开头的第一个标题上方不需要额外空行。
- 如果标题后面紧跟正文、列表、引用块、代码块,也先空一行再写内容。
- 如果是项目级长期文档,除了记在 llm-wiki,也应写进对应项目的写作规范、AGENTS 说明或 lint / formatter 配置里,避免只靠口头记忆。
Exceptions(例外)
- 极少数必须遵循外部生成器、特定模板或第三方格式输出约束的场景,可暂时不按此规则。
- 如果某个项目已有更高优先级的既定 Markdown 风格规范,则以项目规范为准,但最好显式记录差异。
Review Trigger(复核触发条件)
- 如果 Buu 改变对 Markdown 视觉风格的偏好
- 如果常用编辑器、lint 或发布链路对该规则产生明显冲突
- 如果 AI 在执行这一规则时仍频繁不稳定,需要把规则进一步机器化