Markdown 复选框和任务列表
以 [ ] 开头的列表项会变成空复选框,以 [x] 开头的是已勾选的复选框。本文介绍任务列表的写法、常见错误,以及哪些应用可以直接点击勾选。
简短回答
Markdown 怎么写复选框?
在列表符号后面写方括号:- [ ] 任务 是空复选框,- [x] 任务 是已勾选的复选框。任务列表来自 GitHub 风格 Markdown,GitHub、GitLab、Obsidian 和大多数编辑器都支持。
Markdown
- [x] 确定标题
- [ ] 写初稿
- [ ] 请人审阅显示效果
- 确定标题
- 写初稿
- 请人审阅
任务列表的写法和示例
任务就是开头带方括号的普通列表项,列表的写法在这里都适用。
未完成和已完成
方括号里写空格表示未完成,写 x 表示已完成,大写的 X 也可以。
Markdown
- [ ] 未完成的任务
- [x] 已完成的任务
- [X] 同样已完成显示效果
- 未完成的任务
- 已完成的任务
- 同样已完成
有序任务列表
方括号也可以写在数字后面,适合必须按顺序完成的步骤。
Markdown
1. [x] 备份数据库
2. [ ] 执行迁移
3. [ ] 检查日志显示效果
- 备份数据库
- 执行迁移
- 检查日志
嵌套任务
把任务缩进到另一个任务下面,拆成更小的步骤。
Markdown
- [ ] 新网站上线
- [x] 写更新说明
- [ ] 更新截图显示效果
- 新网站上线
- 写更新说明
- 更新截图
带格式和链接的任务
方括号后面的文字可以包含加粗、链接和删除线。
Markdown
- [x] ~~修复登录问题~~
- [ ] 审阅[合并请求](https://example.com/pull/42)
- [ ] **发布** 2.0 版显示效果
-
修复登录问题 - 审阅合并请求
- 发布 2.0 版
复选框不显示的写法
方括号里要有空格或 x,方括号后面要有空格,而且这一行必须是列表项。
Markdown
- [] 方括号里是空的
- [x]方括号后面没有空格
[ ] 没有列表符号显示效果
- [] 方括号里是空的
- [x]方括号后面没有空格
[ ] 没有列表符号
GitLab:不再需要的任务
GitLab 增加了第三种状态 [~],表示不再需要的任务。
Markdown
- [x] 写代码
- [~] 翻译文档
- [ ] 发布仅适用于 GitLab。其他 Markdown 应用的显示效果不同,因此不提供预览。
各平台的复选框支持
遵循 GitHub 风格 Markdown 的应用都能显示复选框,能否点击取决于应用和页面。
| 应用 | 支持情况 | 说明 |
|---|---|---|
| GitHub | 支持 | Issue、PR 和评论里的复选框可以点击,文件里的只能看。 |
| GitLab | 支持 | Issue 和合并请求里可以点击,[~] 表示不再需要的任务。 |
| Obsidian | 支持 | 阅读视图和实时预览里都可以点击。 |
| Notion | 有差异 | 输入 [] 会生成待办块。 |
| Discord | 不支持 | 方括号原样显示。 |
| Slack | 不支持 | 消息不支持复选框。 |
常见问题
为什么复选框不显示?
检查这一行是否以
- 等列表符号开头,方括号里是否有空格或 x([] 无效),] 后面是否有空格,以及应用是否支持 GitHub 风格 Markdown。复选框可以点击吗?
在 GitHub 和 GitLab 的 Issue、Pull Request 和评论里可以,点击会直接修改文字。在渲染后的文件和大多数预览里,复选框只能看不能点。
可以用大写的 X 吗?
可以,
[X] 和 [x] 都表示已完成。任务可以嵌套或编号吗?
可以。把任务缩进到另一个任务下面就是嵌套,写成
1. [ ] 就是有序任务。列表外面能放复选框吗?
Markdown 只在列表项里生成复选框。列表外面可以直接输入 ☐ 和 ☑ 这两个字符。
Notion、Discord、Slack 支持复选框吗?
Notion 输入
[] 会生成待办块。Discord 和 Slack 没有复选框,方括号会原样显示。GitHub 怎样统计任务?
GitHub 会统计 Pull Request 描述里的复选框,并在 Pull Request 列表里显示类似“1 of 3 tasks”的进度。
任务列表生成什么 HTML?
每个任务都是以
<input type="checkbox" disabled> 开头的列表项,已完成的任务会多一个 checked。