这是一篇专门用于测试 Markdown 渲染效果的文章。无论你使用的是 CommonMark、GitHub Flavored Markdown (GFM)、还是其他扩展方言,本文都涵盖了最全面的语法测试用例。
Markdown 的设计目标是易读易写,其语法灵感来源于纯文本电子邮件的格式。本文不仅展示各种语法元素,还说明了它们的使用场景和最佳实践。
文本格式
Markdown 支持多种内联文本格式:
这是粗体(使用 ** 或 __ 包裹),这是斜体(使用 * 或 _ 包裹),这是粗斜体(同时使用两者),这是删除线(使用 ~~ 包裹),这是行内代码(使用反引号包裹)。
强调嵌套
你可以嵌套不同的格式:这是粗体中的_斜体_,这是斜体中的粗体。
转义字符
如果需要显示 Markdown 语法字符本身,可以使用反斜杠转义:*这不是斜体*,`这不是代码`。
标题层级
Markdown 支持六级标题,使用 # 的数量表示层级:
三级标题
三级标题常用于文章的主要小节。
四级标题
四级标题用于更细分的子节。
五级标题
五级标题用于细节描述。
六级标题
六级标题是最深层级,一般用于列表项内的标题。
列表
无序列表
无序列表使用 -、+ 或 * 作为标记符:
- 第一项:这是列表的第一项
- 第二项:包含子列表
- 嵌套项 1:使用两个空格缩进
- 嵌套项 2:可以继续嵌套
- 更深嵌套:三层缩进
- 混合使用不同标记符也可以
- 第三项:回到第一层
有序列表
有序列表使用数字加句点:
- 第一步:准备工作
- 第二步:执行操作
- 子步骤 A:检查环境
- 子步骤 B:执行命令
- 第三步:验证结果
任务列表
GitHub Flavored Markdown 支持任务列表:
- 已完成任务:设置开发环境
- 已完成任务:编写核心代码
- 未完成任务:编写单元测试
- 未完成任务:部署到生产环境
- 已完成任务:编写文档
引用块
引用块用于引用他人的话或强调重要内容:
这是一段普通的引用块。引用块可以包含多行内容, 每一行都以
>开头。这是嵌套引用块。在引用中再引用,形成层级结构。 这在回复邮件或讨论中非常常见。
回到第一层引用,继续你的论述。
引用块中的其他元素
注意:引用块中可以包含其他 Markdown 元素。
- 比如列表项
- 比如
行内代码- 比如 链接
# 甚至可以包含代码块
代码块
代码块是技术文章的核心。Markdown 支持多种方式展示代码。
Python
"""返回问候语。"""
return f
=
return f
=
Rust
JavaScript
Go
package main
JSON
SQL
-- 获取已发布的文章列表
SELECT
p.id,
p.title,
p.slug,
p.summary,
p.published_at,
u.username as author
FROM posts p
JOIN users u ON p.author_id = u.id
WHERE p.status = 'published'
AND p.deleted_at IS NULL
ORDER BY p.published_at DESC
LIMIT 20;Bash
#!/bin/bash
# 脚本:备份数据库
BACKUP_DIR="./backups"
TIMESTAMP=
FILENAME="backup_.sql"
if [; then
else
行内代码高亮
你也可以在段落中使用行内代码,比如 git status、:wq、<Route>、<Suspense>。
表格
Markdown 表格使用管道符 | 和连字符 - 构建:
基础表格
| 语言 | 类型 | 内存管理 | 并发模型 | 适用场景 |
|---|---|---|---|---|
| Rust | 系统级 | 所有权系统 | Fearless Concurrency | 高性能系统、嵌入式 |
| Go | 系统级 | 垃圾回收 | Goroutine + Channel | 云原生、微服务 |
| Python | 高级动态 | 垃圾回收 (GIL) | 多进程/异步IO | 数据科学、Web开发 |
| JavaScript | 高级动态 | 垃圾回收 | 事件循环 + Promise | Web前端、Node.js |
| C++ | 系统级 | 手动/RAII | 线程 + 锁 | 游戏引擎、高频交易 |
| Zig | 系统级 | 显式分配 | 线程 | 系统工具、嵌入式 |
对齐方式
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| 内容 1 | 内容 2 | 内容 3 |
| A | B | 100 |
| 长文本示例 | 居中显示 | 999.99 |
水平线
水平线用于分隔文章的不同部分:
链接
Markdown 支持多种链接格式:
行内链接
GitHub - 世界上最流行的代码托管平台。
相对链接 - 链接到网站首页。
带标题的链接 - 鼠标悬停显示标题。
引用式链接
图片


HTML 内嵌
某些场景下,你可能需要直接使用 HTML:
提示: 这是使用 HTML 创建的自定义样式块。当 Markdown 的表达能力不足时,可以直接嵌入 HTML。但请注意,这会降低内容的可移植性。
特殊字符
Markdown 和 HTML 实体:
- 版权符号:© 2024 Yggdrasil
- 注册商标:Markdown®
- 商标符号:GitHub™
- 长破折号:这是—一个长破折号
- 短破折号:这是–一个短破折号
- 省略号:等等…
脚注
脚注是学术写作中常用的功能^1。你可以在同一条注释中引用多个脚注[^2][^3]。
[^3]: Markdown 的脚注语法在不同的渲染引擎中支持程度不同。
数学公式(LaTeX)
许多现代 Markdown 渲染引擎支持通过 MathJax 或 KaTeX 渲染 LaTeX 数学公式。
行内公式
行内公式使用单个美元符号包裹: 是爱因斯坦著名的质能方程。欧拉公式 被誉为最美的数学公式。
块级公式
块级公式使用双美元符号或反斜杠方括号:
矩阵与分段函数
A = \\begin{bmatrix} a\_{11} & a\_{12} & a\_{13} \\ a\_{21} & a\_{22} & a\_{23} \\ a\_{31} & a\_{32} & a\_{33} \\end{bmatrix}
f(n) = \\begin{cases} n/2 & \\text{if } n \\text{ is even} \\ 3n+1 & \\text{if } n \\text{ is odd} \\end{cases}
常用数学符号测试
| 运算符 | LaTeX | 渲染效果 |
|---|---|---|
| 分数 | \frac{a}{b} | |
| 上标 | x^2 | |
| 下标 | x_i | |
| 根号 | \sqrt{x^2 + y^2} | |
| 极限 | \lim_{x \to \infty} | |
| 偏导 | \frac{\partial f}{\partial x} |
Mermaid 图表
Mermaid 是许多 Markdown 平台支持的图表绘制语法,可以直接在 Markdown 中创建流程图、时序图、类图等。
流程图
graph LR
A[开始] --> B{判断条件}
B -->|条件成立| C[执行操作]
B -->|条件不成立| D[结束]
C --> D
时序图
sequenceDiagram
participant C as Client
participant S as Server
participant D as Database
C->>S: HTTP Request
S->>D: SQL Query
D-->>S: Query Result
S-->>C: HTTP Response
类图
classDiagram
class Animal {
+String name
+makeSound()
}
class Dog {
+fetch()
}
class Cat {
+climb()
}
Animal <|-- Dog
Animal <|-- Cat
支持的图表类型
| 图表类型 | 用途 | 语法关键词 |
|---|---|---|
| 流程图 | 展示流程和决策 | graph TD/LR |
| 时序图 | 展示交互过程 | sequenceDiagram |
| 类图 | 展示类关系 | classDiagram |
| 甘特图 | 项目进度 | gantt |
| 饼图 | 比例展示 | pie |
| ER 图 | 实体关系 | erDiagram |
复杂表格与嵌套元素
Markdown 表格可以表达相当复杂的结构,尤其是在支持 HTML 的渲染器中。
跨列与复杂对齐
| 功能模块 | 子功能 | 状态 | 优先级 | 预计工时 |
|---|---|---|---|---|
| 用户管理 | 用户注册 | ✅ | 高 | 8h |
| 用户管理 | 登录认证 | ✅ | 高 | 16h |
| 内容管理 | 文章发布 | ⚠️ | 中 | 24h |
| 内容管理 | 评论系统 | ❌ | 低 | 40h |
| 数据分析 | 访问统计 | ❌ | 中 | 32h |
表格内使用 Markdown
| 特性 | 语法示例 | 渲染效果说明 |
|---|---|---|
| 行内代码 | fmt.Println() | 使用反引号包裹代码 |
| 链接 | [Google](https://google.com) | 创建可点击链接 |
| 强调 | **粗体** 和 *斜体* | 粗体 和 斜体 |
| 删除线 | ~~删除~~ | |
| 表情符号 | :rocket: | 🚀 |
复杂嵌套列表示例
- 项目初始化
- 创建仓库
- 初始化 Git:
git init - 添加远程仓库:
git remote add origin <url>
- 初始化 Git:
- 配置环境
- 安装 Node.js
-
安装依赖:
npm install - 配置环境变量
- 开发阶段
注意:开发过程中要遵循团队的代码规范。
- 编码
- 编写核心功能
- 添加单元测试
- 运行测试:
npm test- 代码审查 - 创建 Pull Request - 等待审查 - 合并到主分支 - 部署上线
- 构建生产版本
- 部署到服务器
- 监控系统状态
定义列表
一些 Markdown 扩展支持定义列表(HTML <dl>):
- 术语 1
- 这是术语 1 的定义。定义列表在学术文档和技术文档中很有用。
- 术语 2
- 这是术语 2 的第一个定义。
- 术语可以有多个定义。
折叠块
GFM 支持使用 HTML <details> 标签创建可折叠内容:
点击展开:高级配置选项
注意:修改配置后需要重启服务才能生效。
