Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年创建。它的设计理念是让人们使用易读易写的纯文本格式编写文档,然后转换成结构化的 HTML。如今,Markdown 已成为技术文档、博客写作、README 文件的事实标准。本文将系统讲解 Markdown 的核心语法,并介绍实用的转换技巧。

Markdown 的历史与应用场景

诞生背景

2004 年,John Gruber 与 Aaron Swartz 合作设计了 Markdown。他们希望创建一种格式,既能以纯文本形式直接阅读,又能轻松转换为 HTML。这种"所见即所得"的设计理念使 Markdown 在技术社区迅速流行。

主要变体

随着 Markdown 的普及,出现了多种扩展变体:

变体 特点 应用场景
CommonMark 标准化规范 通用文档
GFM 支持表格、任务列表 GitHub 项目
MDX 支持 JSX 组件 React 文档
R Markdown 支持 R 代码执行 数据分析报告

应用场景

Markdown 广泛应用于以下领域:

  • 技术文档:API 文档、开发指南、README 文件
  • 博客写作:Hugo、Jekyll、Hexo 等静态网站生成器
  • 笔记应用:Notion、Obsidian、Typora
  • 协作平台:GitHub、GitLab、Confluence

基础语法详解

标题

Markdown 使用 # 符号定义标题级别,支持 1-6 级标题:

code
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

另一种写法是使用下划线(仅支持一级和二级):

code
一级标题
========

二级标题
--------

段落与换行

段落之间用空行分隔。如需在段落内换行,可以在行尾添加两个空格,或使用 <br> 标签。

文本强调

语法 效果 说明
*斜体*_斜体_ 斜体 单个星号或下划线
**粗体**__粗体__ 粗体 两个星号或下划线
***粗斜体*** 粗斜体 三个星号
~~删除线~~ 删除线 两个波浪线
`行内代码` 代码 反引号包裹

列表

无序列表使用 -*+

code
- 项目一
- 项目二
  - 子项目 A
  - 子项目 B
- 项目三

有序列表使用数字加点:

code
1. 第一步
2. 第二步
3. 第三步

任务列表(GFM 扩展):

code
- [x] 已完成任务
- [ ] 待完成任务
- [ ] 另一个待办事项

链接与图片

链接语法

code
[链接文本](URL "可选标题")
[QubitTool](https://qubittool.com "在线工具箱")

引用式链接适合长文档管理:

code
[链接文本][引用标识]

[引用标识]: URL "可选标题"

图片语法与链接类似,只需在前面加 !

code
![替代文本](图片URL "可选标题")

引用

使用 > 创建引用块,可以嵌套:

code
> 这是一段引用文本。
> 可以跨越多行。
>
> > 这是嵌套引用。

分隔线

使用三个或更多的 -*_ 创建分隔线:

code
---
***
___

高级语法

代码块

行内代码使用反引号包裹:

code
使用 `npm install` 安装依赖

代码块使用三个反引号,可指定语言实现语法高亮。支持的语言标识包括:javascriptpythonjavagorustsqlbashjsonyamlhtmlcss 等。

表格

使用 |- 创建表格,对齐方式由 : 的位置决定:

code
| 左对齐 | 居中对齐 | 右对齐 |
|:-------|:--------:|-------:|
| 内容1  | 内容2    | 内容3  |
  • :--- 左对齐
  • :---: 居中
  • ---: 右对齐

脚注

code
这是一段带有脚注的文本[^1]。

[^1]: 这是脚注的内容。

HTML 与 Markdown 互转

在 Markdown 中使用 HTML

Markdown 支持直接嵌入 HTML 标签,这在需要更精细控制时非常有用:

html
<div align="center">
  <img src="image.png" width="300">
</div>

<details>
<summary>点击展开</summary>
这里是折叠的内容。
</details>

常用的 HTML 增强功能:

用途 HTML 代码
居中图片 <div align="center">...</div>
折叠内容 <details><summary>...</summary>...</details>
键盘按键 <kbd>Ctrl</kbd> + <kbd>C</kbd>
上标下标 H<sub>2</sub>Ox<sup>2</sup>

HTML 转 Markdown

将现有的 HTML 内容转换为 Markdown 是常见需求,特别是在迁移博客或整理文档时。使用 HTML 转 Markdown 工具 可以自动完成这项工作。

转换示例

HTML 代码 <h1>标题</h1><p>这是<strong>重要</strong>的文字。</p> 会被转换为:

code
# 标题

这是**重要**的文字。

Markdown 转 HTML

当需要将 Markdown 内容发布到不支持 Markdown 的平台时,可以使用 Markdown 转 HTML 工具 进行转换。这在以下场景特别有用:

  • 发送富文本邮件
  • 在传统 CMS 中发布内容
  • 生成静态 HTML 页面
  • 嵌入到其他应用程序中

扩展语法

数学公式(LaTeX)

许多 Markdown 解析器支持 LaTeX 数学公式:

  • 行内公式:$E = mc^2$
  • 块级公式:使用 $$ 包裹,如 $$\sum_{i=1}^{n} x_i$$

流程图(Mermaid)

GFM 和部分编辑器支持 Mermaid 流程图语法,可以用文本描述绘制流程图、时序图、甘特图等。

实用技巧与最佳实践

编写规范

  1. 标题层级:保持标题层级连续,不要跳级
  2. 空行使用:在标题、列表、代码块前后添加空行
  3. 链接管理:长文档使用引用式链接,便于维护
  4. 图片优化:添加有意义的 alt 文本,提升可访问性

常见问题解决

特殊字符转义:使用反斜杠转义 Markdown 特殊字符,如 \*这不是斜体\*

表格内换行:使用 <br> 标签在表格单元格内换行。

推荐工具

为了提高 Markdown 编写效率,推荐使用专业的在线工具:

总结

Markdown 以其简洁的语法和强大的表现力,成为现代文档编写的首选格式。掌握本文介绍的基础语法和高级技巧,配合 QubitTool 的 Markdown 工具集,你可以高效地创建专业的技术文档、博客文章和项目说明。

无论是日常笔记还是正式文档,Markdown 都能让你专注于内容本身,而不是繁琐的格式调整。开始使用 Markdown,体验纯文本写作的魅力吧!