Markdown 列表生成器
选择列表类型、填入条目,即可复制排版规范的无序、有序或嵌套 Markdown 列表。全部计算都在你的浏览器本地完成。
Markdown 中怎么写列表?
无序列表在每行开头写 `-`、`*` 或 `+`,有序列表写 `1.`,符号后面必须跟一个空格。子项缩进两个空格即可形成嵌套。列表前要留一个空行,否则第一项会被上面的段落吞掉,整段挤在一起。
- 无序列表项
- 另一项
- 嵌套子项
1. 有序列表项
2. 第二项第一段渲染为包含一个缩进子项的无序列表 <ul>,第二段渲染为从 1 开始编号的有序列表 <ol>。
在线使用 Markdown 列表生成器
列表条目
参数设置
输出结果
Markdown 列表语法详解
Markdown 只有两种列表,但踩坑几乎都集中在三个细节上:符号后有没有空格、列表前有没有空行、以及子项到底缩进几格。
无序列表(项目符号)
行首使用连字符、星号或加号,后面跟一个空格。三种符号渲染出来完全一样,选定一种就要用到底——中途换符号会悄悄开启一个新列表。
- 安装命令行工具
- 执行数据迁移
- 部署应用
* 星号同样可用
+ 加号也可以前三行组成一个无序列表;后两行因为换了符号,会各自另起一个列表,而不是接在前面那个列表后面。
有序列表(编号)
写数字,加英文句点或右括号,再跟一个空格。解析器只读第一个数字,后面的编号会被自动重排——所以文档里常见每行都写 1. 的写法。
1. 克隆仓库
1. 安装依赖
1. 运行测试
5. 从五开始
6. 接着是六第一段虽然每行都写 1.,渲染出来仍是 1、2、3;第二段因为首项是 5,编号就从 5 开始。
嵌套列表与缩进
子项相对父项缩进,同一层级的所有条目必须保持相同缩进。无序列表下缩进两个空格即可;有序列表下建议缩进三个空格,让子项与父项正文对齐。同一个列表里千万不要混用 Tab 和空格。
- 前端
- 组件
- 按钮
- 后端
1. 前端
1. 组件
1. 按钮
2. 后端先是三层项目符号,再是三层编号,每一层嵌套都会从 1 重新开始计数。
有序与无序混排
嵌套不限于同一种列表。无序项里可以放有序子列表,反过来也成立——大纲和发布清单基本都是这样写的。
- 发布清单
1. 更新版本号
2. 打 tag
3. 发布包
- 发布之后
- 发公告
- 观察错误率外层是无序列表,第一项内部是有序子列表,第二项内部是无序子列表。
列表项中的段落与代码块
附加内容必须缩进到与该条目正文对齐,并且前面留一个空行,才会被算作这一项的内容。缩进不够时这段内容会直接终止列表,后面的条目会重新从 1 开始编号。
1. 安装依赖包
```bash
npm install mdutil
```
2. 引入后即可使用。两步的有序列表,第一步内部包含一段围栏代码块,代码块留在列表项里,不会把列表拦腰截断。
任务列表(复选框)
GitHub Flavored Markdown 在项目符号基础上扩展了复选框:符号、空格、[ ] 或 [x]、再一个空格,然后写正文。适合 Issue 模板、PR 描述和日常笔记。
- [x] 写完设计文档
- [ ] 团队评审
- [ ] 上线三个复选框条目,第一个已勾选。不支持该扩展的解析器会把方括号原样显示为普通文本。
各平台对 Markdown 列表的支持
基础的项目符号和编号到处都能用,差异集中在嵌套层数、任务列表和空行规则上。发布多层大纲之前最好先确认目标平台。
| 平台 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 完全支持 | 三种符号、任意层级嵌套以及 - [ ] 任务列表都可用,缩进两个空格即可。 |
| Discord | 部分支持 | 项目符号和 1. 编号可用,嵌套层数有上限,不支持任务列表复选框。 |
| Slack | 部分支持 | 输入框自带列表按钮,粘贴进去的 Markdown 列表语法不会被转换。 |
| Obsidian | 完全支持 | 所有列表类型加任务列表,回车还会自动续写下一项。 |
| Notion | 完全支持 | 输入「- 」或「1. 」会自动转成原生列表块,用 Tab 和 Shift+Tab 调整层级。 |
| 完全支持 | 项目符号和编号都可用,但列表前必须留空行,否则会并入上一段。 |
如何生成 Markdown 列表
选择列表类型
条目顺序有含义就选有序列表,只是并列罗列则选无序列表。
选择符号样式
无序列表可选连字符、星号或加号;有序列表可选数字、字母或罗马数字,搭配句点或右括号。
填写列表条目
在输入框中逐条编辑内容,用添加按钮增加条目,多余的条目可直接删除。
设置缩进
拖动嵌套层级滑块即可整体缩进;若目标解析器要求的缩进不是两个空格,可打开自定义缩进。
复制结果
复制生成的 Markdown;需要 <ul>、<ol> 标签时切换到 HTML 标签页,发布前先在预览里确认效果。
常见问题
Markdown 的有序列表和无序列表有什么区别?
无序列表用连字符、星号或加号作为符号,编译成 <ul>;有序列表用数字加句点或右括号,编译成 <ol>。顺序有含义时(比如安装步骤)用有序列表,只是并列罗列时用无序列表。
Markdown 怎么写嵌套列表?
把子项相对父项缩进,并让同一层级的所有条目保持完全一致的缩进。无序列表下缩进两个空格就够;有序列表下建议缩进三个空格,让子项与父项正文对齐。可以嵌套多层,也可以有序和无序混用。
Markdown 列表应该缩进几个空格?
无序列表每层缩进两个空格最稳妥,GitHub、Obsidian、Notion 和 Reddit 都认。有序列表下用三个空格,正好与符号后的正文对齐。连字符下缩进四个空格通常也可以,但同一个列表里绝对不要混用 Tab 和空格。
为什么我的 Markdown 列表渲染不正常?
常见原因有四个:列表和上一段之间没有空行,导致第一项被并入段落;符号后面漏了空格,-内容 只是普通文本,- 内容 才是列表;嵌套条目的缩进不一致;以及中途换了符号,解析器会悄悄开启第二个列表。
有序列表的数字必须按顺序写吗?
不必。Markdown 只读第一个数字来确定起始编号,后面的会自动重排。每行都写 1. 渲染出来同样是 1、2、3,这样在中间插入一步时不会让下面所有行都产生 diff。
怎样让有序列表从 1 以外的数字开始?
把首项写成目标数字即可,例如以 5. 开头的列表会渲染成 5、6、7。CommonMark 和 GitHub Flavored Markdown 都支持这个起始值,但少数较老的解析器会忽略它,仍然从 1 开始。
Markdown 有序列表能用字母或罗马数字吗?
标准 Markdown 不支持。a. 或 i. 这类符号在 CommonMark 眼里只是普通文本,输出仍是普通编号列表。确实需要字母或罗马数字时,用 CSS 的 list-style-type 属性,或直接写带 type 属性的 HTML <ol> 标签。
怎样在列表项里插入段落或代码块?
先空一行,再把内容缩进到与该条目正文对齐——连字符下缩进两个空格,有序列表下缩进三个空格。段落、围栏代码块、图片和表格都可以这样挂在条目内部;缩进不够就会终止列表。
Markdown 怎么写待办清单或复选框?
写符号、空格,然后是 [ ](未勾选)或 [x](已勾选),再空一格写正文。这是 GitHub Flavored Markdown 的扩展语法:GitHub、GitLab、Obsidian 和 VS Code 会渲染成可点击的复选框,只实现 CommonMark 的解析器则会把方括号原样显示。
Markdown 支持定义列表吗?
标准 Markdown 和 GitHub Flavored Markdown 都不支持。定义列表来自 PHP Markdown Extra、MultiMarkdown、Pandoc 等扩展:术语写一行,下一行以冒号加空格开头写释义。其他环境下只能直接写 <dl>、<dt>、<dd> 这些 HTML 标签。