清单生成

一行写一项,本页把它转成 Markdown 勾选框、打印清单、HTML 复选框或 CSV、JSON,复制或下载都能直接用。

解析口径:按换行切分,去掉每项首尾空白,跳过空行,不去重。示例是 8 项会议清单,Markdown 每项前缀「- [ ] 」占 6 个字符。

使用方法

清单生成只做「把一行行文字变成可勾选的清单」这一件事,四步:

  1. 在左侧文本框里一行写一项,演示默认是 8 项会议准备清单。空行会被自动跳过,项首项尾的空格也会去掉。
  2. 在「输出格式」里选一种:Markdown 勾选框、纯文本、HTML 复选框、CSV 或 JSON。
  3. 点「生成清单」,右侧输出框立刻换成对应格式的内容;也可以直接按 Ctrl 加回车触发(输入框里回车留给换行)。
  4. 点「复制结果」整段拷走,或点「下载文件」按格式存成 .md、.txt、.html、.csv、.json。

页面打开时输出框已经预置了 Markdown 版本,所以你能立刻看清生成结果长什么样,再决定要不要换格式。

清单生成能解决什么

它解决「清单在不同地方要写成不同样子」这件事,三类场景最常见:

  • 写进笔记软件:用 Markdown 格式输出,粘进支持任务列表的编辑器就是可点的小方框,勾选状态会跟着文档走。
  • 打印出来手写打勾:用纯文本格式输出,每项前面带序号,打印后拿笔画勾最顺手。
  • 贴进富文本或邮件:用 HTML 格式输出,收到的是一排真正的复选框,比贴一堆短横线整齐得多。

它不做三件事:不保存清单(关掉页面就没了,请先复制)、不按截止日期排序、不会自动补全内容。你的清单长什么样,完全由你输入的那几行决定。

原理和变量

① 一行一项是怎么解析的:按换行符切分整个文本,逐行去掉首尾空白后判空,空行直接丢弃。所以粘贴一段带空行的文字不会产生空清单项。前后顺序就是输出顺序,本页不做任何排序。

② Markdown 的勾选框写法:未完成写 - [ ] 项,已完成写 - [x] 项,方括号里那个字符决定初始状态。GitHub、语雀、Obsidian 等绝大多数编辑器都能把它渲染成可点击的方框,这也是本页默认格式。

③ 纯文本格式为什么还带方括号:输出形如 1. [ ] 项,序号方便口头念出第几项,方括号留给你手写打勾。它不带任何标记语法,粘到哪里都不会被当作格式解析,适合当打印稿。

④ HTML 格式输出的是什么:一段 <ul> 列表,每一项是 <li><input type="checkbox"> 项</li>。粘进富文本编辑器会变成真正的复选框控件,可以直接在网页或邮件里勾。

⑤ CSV 与 JSON 怎么转义:CSV 每行是「序号,状态,内容」,如果内容里出现逗号或双引号,整格用双引号包裹并把内部的双引号写成两个,这是 RFC 4180 的规定。JSON 用标准的字符串转义处理换行和引号,并且不带 BOM——因为带 BOM 的 JSON 会让部分解析器报错,而 CSV 带 BOM 才能让表格软件正确识别中文。

⑥ 边界与上限:项数上限 200 项,单项上限 200 个字符,超出会被截断并在提示里写明。清单内容不做去重,同样的两项写两遍就会输出两遍——这通常是你想要的,因为同名待办可能是两件不同的事。全部为空时点生成会提示「请先写至少一行内容」,不会给你一份空清单。

完整示例

演示清单是 8 项会议准备事项:确认会议时间与地点、准备投影与转接线、打印 10 份议程、提前 15 分钟到场、记录待办与责任人、会后 24 小时内发纪要、确认下次会议时间、归档本次会议材料。八项正文合计 72 个字符,加上 Markdown 每项 6 个字符的前缀 48 个,再算上 7 个换行符,总共 127 个字符。

同一批内容换成别的格式:

  • 纯文本:每项前缀是「序号 + 点 + 空格 + [ ] + 空格」,第 1 到第 9 项占 7 个字符,第 10 项起序号变成两位、占 8 个字符。8 项下来是 135 个字符,比 Markdown 多的那 8 个字符,正好来自每行多出来的那一位序号。
  • HTML:每项外面套 <li> 与 </li>、中间再加一个复选框标签,8 项合计 345 个字符,是 Markdown 的两倍多,这是标记语言的常态。它输出成一行,粘到富文本编辑器里才会展开成列表。
  • 把某一项前面的空格改成小写 x,那一项在 Markdown 里就显示为已完成;纯文本与 HTML 格式不带勾选状态,改不动。

项数越多差距越明显:18 项时 Markdown 是 259 个字符、纯文本 286 个字符、HTML 已经涨到 737 个字符。所以清单只要不追求网页控件,Markdown 永远是体积最小的选择。

输入范围与对照表

下表按项数从 1 到 18 列出三种主要格式的字符数,前 12 行直接展开,余下 6 行点「加载更多」。统计用的是示例里那 18 项文字本身,所以换一批内容数字会变,但增长趋势一样:

18 档项数下三种输出格式的字符数(Markdown 与纯文本按每项一行计、含换行符,HTML 输出为单行;前 12 行展开,余下 6 行点「加载更多」)
清单项数Markdown 字符纯文本字符HTML 字符
1151651
2303292
34649134
46367177
57883218
697103263
7112119304
8127135345
9140149384
10152163422
11164177460
12178193500

输入范围:项数 1 到 200 项,单项内容 1 到 200 个字符,整个文本框建议不超过 2 万个字符以免卡顿。纯文本那一列从第一项起就比 Markdown 多 1 个字符,因为它的前缀多了一个序号;到第 10 项序号变成两位,每行再多 1 个,差距进一步拉大。HTML 那一列从第一项起就远远领先,因为它要把每项都包进标签里。

结果边界和舍入

三条边界,用之前先知道:

  • 不保存也不同步:清单只存在于当前页面,刷新就回到默认示例。要留档必须点复制或下载,本页不写浏览器存储,也不做云端同步。
  • 不做缩进与多级清单:所有项都是同一层级,靠行首空格做的缩进会在解析时被去掉。需要多级结构请改用支持嵌套的编辑器直接写,或者先选 Markdown 格式生成后再手动补两个空格。
  • CSV 与 JSON 的差别是有意的:CSV 导出带 BOM,因为 Excel 与 WPS 靠它识别 UTF-8 中文;JSON 导出不带 BOM,因为带 BOM 的 JSON 用代码读取时会在开头多出三个看不见的字节,导致解析失败。两者都不是可以随意互换的选项。

常见问题

清单内容会上传吗?

不会。解析与格式转换都在浏览器里完成,清单不会离开你的设备,关掉页面就没有了。

Markdown 里怎么表示已完成?

把方括号里的空格改成小写 x,写成「- [x] 项」。大多数笔记软件的预览会把有 x 的那项显示为划掉的可点方框。

为什么 CSV 带 BOM 而 JSON 不带?

CSV 带 BOM 是为了让表格软件正确认出中文编码;JSON 不带 BOM 是因为代码读取时会把它当成多余字符而解析失败。这是两种格式各自的规矩。

空行和缩进会被保留吗?

都不会。空行在解析时直接跳过,行首行尾的空白会被去掉,所以输出永远是一列齐平的清单项。

能生成多级嵌套清单吗?

不能。本页只做单层清单。需要缩进层级请先生成 Markdown,再到编辑器里手动给从属项补两个空格。

最多支持多少项?

200 项,单项 200 个字符。超出的部分会被截断并给出提示,避免结果过长导致复制出错。

重复的项目会去重吗?

不会。写两遍就输出两遍。同名待办常常是两件不同的事,所以本页把去重交给你自己决定。

下载的文件名是什么?

按格式自动带后缀:Markdown 是 .md、纯文本是 .txt、HTML 是 .html、CSV 是 .csv、JSON 是 .json,文件名统一叫我的清单。

相关工具