iPhone 18 Pro / Pro Max 和 折叠屏 iPhone Duo 使用体验
iPhone 18 Pro / Pro Max 和 折叠屏 iPhone Duo 使用体验
title: Markdown 语法测试文档 author: 编辑器测试套件 version: 1.0 tags:
- markdown
- test
- syntax date: 2026-09-30
Markdown 语法全量测试
用途:把本文完整粘贴进编辑器,对照「源码 / 预览 / 导出 HTML / 导出 PDF」是否一致。 约定:每个小节标题后有「期望效果」一行,便于人工验收。
目录
- 01. 标题
- 02. 段落与换行
- 03. 强调
- 04. 引用
- 05. 列表
- 06. 任务列表
- 07. 链接
- 08. 图片
- 09. 代码
- 10. 表格
- 11. 分割线
- 12. 脚注
- 13. 转义
- 14. 原始 HTML
- 15. 定义列表
- 16. 删除线 / 高亮 / 上下标
- 17. 数学公式
- 18. 图表(Mermaid)
- 19. 提示块 / Callout
- 20. 目录与锚点
- 21. Emoji 与特殊字符
- 99. 边界与回归用例
01. 标题
期望效果:ATX 与 Setext 两种标题都能渲染;h1–h6 层级正确;闭合井号被忽略。
ATX 一级标题
ATX 二级标题
ATX 三级标题
ATX 四级标题
ATX 五级标题
ATX 六级标题
Setext 一级
Setext 二级
带闭合井号的六级
标题里有 行内代码 和 加粗 以及 链接
02. 段落与换行
期望效果:空行分段;单换行在 CommonMark 下应合并为一行(除非两空格或 \ 硬换行)。
这是第一段。同一段里的 这一行如果没有两个空格或反斜杠,预览里应和上一行连在一起。
这是第二段,和上一段之间有空行。
硬换行(行尾两个空格)下一行应换行: 这是硬换行后的一行。
反斜杠硬换行 这也应换行。
中文标点测试:你好,世界!「引号」『书名』——破折号…省略号(全角)(半角).
很长一行用于测试软换行与横向滚动:Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 中文夹杂 English 以及 1234567890 连续数字与超长URL https://example.com/very/long/path?query=1&foo=bar#hash
03. 强调
期望效果:斜体、粗体、粗斜体、下划线(若支持)、互相嵌套不串味。
单星号斜体 和 单下划线斜体
双星号粗体 和 双下划线粗体
粗斜体 和 粗斜体
粗体里有 斜体 再回来
斜体里有 粗体 再回来
删除线(GFM)
这是 中文加粗 和 中文斜体,中间不要多空格。
未闭合应保持原样或按解析器规则降级:*未闭合斜体
**代码里的星号不应加粗**
04. 引用
期望效果:多层引用、引用内列表/代码/标题均可。
一级引用。
同一引用的第二段。
一级
二级
三级
回到一级
引用里的标题
- 引用里的列表 A
- 引用里的列表 B
console.log('blockquote + fence')嵌套引用里的 加粗 和
code
05. 列表
期望效果:有序/无序、多级缩进、松散/紧凑、列表中嵌套段落和代码。
无序:
- 减号一项
- 减号二项
- 二级
- 三级
- 二级
- 加号一项
- 星号一项
有序:
- 第一
- 第二
- 二级 2.1
- 二级 2.2
- 起始编号可以不是 1(有的实现会尊重 10)
紧凑列表:
- one
- two
- three
松散列表(项之间空行):
-
第一项
第一项的续段,应缩进属于该项。
-
第二项
print("列表里的代码块")
混合:
-
有序开始
- 里面套无序
- 再一项
-
回来有序
- 再套有序
- 有的解析器允许这种混写
06. 任务列表
期望效果:复选框可渲染;若编辑器可交互,勾选不应破坏源码其它部分。
- 已完成
- 大写 X 也应视为完成(GFM)
- 未完成
- 嵌套已完成
- 嵌套未完成
- 任务项里有 加粗 和
code以及 链接
- 有序任务(部分实现支持)
- 有序未完成
07. 链接
期望效果:行内、引用式、自动链接、标题 tip、相对路径。新标签需 HTML,见本节末。
行内:Example
带 title:Example
快捷引用:shortcut
自动链接:https://example.com 和 user@example.com
URL 直接写出:https://example.com/path?q=1&b=2#frag
空链接与残缺(回归): 有文字无地址 [坏括号](https://example.com
新标签打开(HTML,标准 MD 无此语法):
新标签打开 example.com
08. 图片
期望效果:能显示;alt / title 正确;失败时有占位;和链接组合可用。
行内:
引用式:
"引用式图片"
图片即链接:
残缺图片(应显示 alt 或破损图标):

空 alt:
09. 代码
期望效果:行内代码保留反引号内容;围栏代码有语言高亮;缩进代码块生效;围栏内的 MD 不被解析。
行内:const x = 1 以及中文 打印('你好')
多个反引号:代码里有 `反引号`
缩进代码块(4 空格):
def indented(): return True 围栏无语言:
plain text
**这里不该加粗**
- 这里不该变列表
JavaScript:
function greet(name) {
const msg = `Hello, ${name}!`
console.log(msg)
return { ok: true, name }
}
Python:
from typing import Optional
def fib(n: int) -> list[int]:
a, b = 0, 1
out = []
for _ in range(n):
out.append(a)
a, b = b, a + b
return out
TypeScript:
type User = { id: string; name?: string }
const u: User = { id: "1" }
JSON:
{
"ok": true,
"items": [1, 2, 3],
"nested": { "a": "b" }
}
Bash:
#!/usr/bin/env bash
set -euo pipefail
echo "hello" | awk '{print toupper($0)}'
Diff:
- old line
+ new line
HTML 作为代码(不应被当 HTML 执行):
<script>alert('xss?')</script>
<img src=x onerror=alert(1)>
围栏里再写围栏(外层用更多反引号):
```js
console.log('nested fence')
```
行内与围栏混排:函数 foo() 如下:
foo()
10. 表格
期望效果:对齐、空单元格、单元格内强调/代码/链接、管道符转义。
| 左对齐 | 居中 | 右对齐 | 默认 |
|---|---|---|---|
| a | b | c | d |
| 粗体 | 斜体 | code | 链 |
| 中文 | 日本語 | 한글 | emoji ✅ |
| 空左 | 空右留白 |
单元格里的管道(应转义或用 HTML):
| 表达式 | 含义 |
|---|---|
| `a | b` |
| a | b |
不对齐的残表(看容错):
| A | B |
|---|---|
| 1 | 2 |
只有表头:
| Only | Header |
|---|
11. 分割线
期望效果:三种写法都变成 <hr>,且不要把前面标题吃掉。
12. 脚注
期望效果:若支持 GFM/扩展脚注,角标可跳转;不支持则原样显示。
重复引用同一脚注应指向同一处1。
13. 转义
期望效果:反斜杠后的标记字符按字面显示。
*不斜体* _不斜体_ **不粗体**
# 不是标题
- 不是列表
[不是链接](https://example.com)
`不是代码`
1. 不是有序列表
\ 反斜杠本身
14. 原始 HTML
期望效果:允许的标签渲染;危险脚本应被转义或过滤;target=_blank 可用。
普通标签:Ctrl + S sub sup
换行:第一行第二行
详情折叠:
折叠里的 Markdown 有的实现会解析,有的不会。
新标签链接:
HTML 新标签
居中(若未禁 style):
注释不应显示:
XSS 回归(预览里不应弹窗):
15. 定义列表
期望效果:部分方言(PHP Markdown Extra / pandoc / kramdown)支持。不支持则显示为普通段落。
Markdown : 一种轻量标记语言
编辑器 : 用来写和预览 Markdown 的工具 : 可以有源码模式与所见即所得
16. 删除线 / 高亮 / 上下标
期望效果:按编辑器声明的方言渲染;不支持则保留源码。
删除线
==高亮(部分实现)==
H2O 与 19^th^(pandoc 风格)
H2O 与 19th(HTML)
++插入/下划线(部分实现)++
17. 数学公式
期望效果:若集成 KaTeX/MathJax,行内与块级公式正确;否则保留美元符号。
行内:质能方程 ,以及 。
块级:
可能冲突的美元:价格是 10,不应被当成公式(看实现是否要求空格/闭合)。
18. 图表(Mermaid)
期望效果:若支持 mermaid,图能出来;否则显示为代码块。
flowchart LR
A[源码] --> B{解析器}
B -->|CommonMark| C[AST]
B -->|GFM| D[AST + 扩展]
C --> E[渲染]
D --> E
sequenceDiagram
participant U as 用户
participant E as 编辑器
participant P as 预览
U->>E: 输入 Markdown
E->>P: 更新 AST
P-->>U: 渲染结果
19. 提示块 / Callout
期望效果:按你们实现的语法渲染。下列几种都写上,看哪一种生效。
!!! note 标题 这是 mkdocs-style admonition。
[!NOTE] GitHub style alert: NOTE
[!TIP] GitHub style alert: TIP
[!IMPORTANT] GitHub style alert: IMPORTANT
[!WARNING] GitHub style alert: WARNING
[!CAUTION] GitHub style alert: CAUTION
:::info 部分编辑器的容器语法 :::
20. 目录与锚点
期望效果:自动生成的 heading id 稳定;中文标题可跳转;重复标题有去重后缀。
重复标题测试 重复标题测试
自定义锚点(部分实现 {#id}):
自定义 ID {#custom-id}
21. Emoji 与特殊字符
期望效果:emoji 原样或短码替换;零宽字符不破坏加粗;RTL 文本不把布局撑坏。
短码(若支持)::smile: :rocket: :warning:
字符:✅ ❌ ⚠️ 中 文 ✨ 😊 🔥
组合:加粗✅ 和 code🚫
RTL:العربية עברית
零宽连接:加粗字(中间无隐藏字符)
特殊空格与不可见字符附近的强调:斜体
版权符号 © ® ™ ± × ÷ ≠ ≤ ≥ ∞
99. 边界与回归用例
99.1 标题与列表混淆
#不是标题(井号后无空格)
-# 也不是标题
99.2 列表与代码缩进
-
列表项
这 6 个空格:有的解析器当成代码,有的当成续行。
99.3 引用结束边界
引用结束下一行不应再引用 这一行应是普通段落。
99.4 强调边界(CommonMark 左右侧规则)
abc 中间斜体
abc 中间粗体
中文斜体中文
file_name.txt 中的下划线不应变成斜体
foo_bar_baz
* 和 ** 单独出现
99.5 未闭合与交错
**加粗 *交错 _再交错
99.6 链接括号与空格
链接(b) 后面括号不应吞进 URL
99.7 表格与列表相邻
| A | B |
|---|---|
| 1 | 2 |
- 表后列表应独立
99.8 代码围栏未闭合
const dangling = true
这段到文末如果没闭合,看编辑器是否吞掉后续内容。
### 99.9 仅空白与空文档附近
上面有意留一个「看起来像未闭合围栏」的用例。若你的解析器会把后文全部吃进代码块,请把本小节当作失败用例。
下面重新开始一段正常文本:围栏容错测试结束。
### 99.10 主题切换 / 暗色模式用对比色
**粗体** *斜体* ~~删除~~ `code` [链接](https://example.com)
| 浅色应可读 | 深色应可读 |
| --- | --- |
| #333 on #fff | #eee on #111 |
### 99.11 拷贝粘贴与 Windows 换行
本文件使用 LF。若从 Windows 粘贴出现 CR+LF,列表和代码块缩进不应错乱。
### 99.12 超大单元格 / 长单词
| 短 | 长 |
| --- | --- |
| ok | SupercalifragilisticexpialidociousSupercalifragilisticexpialidocious |
### 99.13 YAML / Front matter 回归
文件开头的 `---` 是 front matter。正文中的 `---` 应是分割线,不应再次开启 front matter。
---
正文分割线之后的文字。
### 99.14 导出检查清单
- [ ] 预览与源码滚动同步(若有)
- [ ] 撤销/重做不丢光标
- [ ] 输入 `**` 时输入法中文不打断
- [ ] 粘贴富文本转 MD 是否符合预期
- [ ] 导出 HTML 后外链是否带 `rel`
- [ ] 导出 PDF 分页时表格/代码不被截断
- [ ] 暗色模式下对比度
- [ ] 大文档(本文件 x10)输入不卡
---
## 验收速查
| 模块 | 通过标准 |
| --- | --- |
| 标题 | h1–h6 + Setext 都对 |
| 段落 | 空行分段,硬换行生效 |
| 强调 | 嵌套正确,文件名下划线不加斜体 |
| 列表 | 三级嵌套、松散项、混合类型 |
| 任务 | 复选框渲染,嵌套可用 |
| 链接 | 行内/引用/自动/锚点 |
| 图片 | 显示或优雅失败 |
| 代码 | 围栏内 MD 不解析,高亮可选 |
| 表格 | 对齐、空单元格、管道 |
| HTML | 安全过滤脚本,允许的标签可用 |
| 公式 / Mermaid | 按产品范围:支持则渲染,不支持则降级为源码 |
测试结束。
ddd
d