MDUtil

Markdown 复选框和任务列表

以 [ ] 开头的列表项会变成空复选框,以 [x] 开头的是已勾选的复选框。本文介绍任务列表的写法、常见错误,以及哪些应用可以直接点击勾选。

简短回答

Markdown 怎么写复选框?

在列表符号后面写方括号:- [ ] 任务 是空复选框,- [x] 任务 是已勾选的复选框。任务列表来自 GitHub 风格 Markdown,GitHub、GitLab、Obsidian 和大多数编辑器都支持。

Markdown
- [x] 确定标题
- [ ] 写初稿
- [ ] 请人审阅

显示效果

  • 确定标题
  • 写初稿
  • 请人审阅

任务列表的写法和示例

任务就是开头带方括号的普通列表项,列表的写法在这里都适用。

未完成和已完成

方括号里写空格表示未完成,写 x 表示已完成,大写的 X 也可以。

Markdown
- [ ] 未完成的任务
- [x] 已完成的任务
- [X] 同样已完成

显示效果

  • 未完成的任务
  • 已完成的任务
  • 同样已完成

有序任务列表

方括号也可以写在数字后面,适合必须按顺序完成的步骤。

Markdown
1. [x] 备份数据库
2. [ ] 执行迁移
3. [ ] 检查日志

显示效果

  1. 备份数据库
  2. 执行迁移
  3. 检查日志

嵌套任务

把任务缩进到另一个任务下面,拆成更小的步骤。

Markdown
- [ ] 新网站上线
  - [x] 写更新说明
  - [ ] 更新截图

显示效果

  • 新网站上线
    • 写更新说明
    • 更新截图

带格式和链接的任务

方括号后面的文字可以包含加粗、链接和删除线。

Markdown
- [x] ~~修复登录问题~~
- [ ] 审阅[合并请求](https://example.com/pull/42)
- [ ] **发布** 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。