什么是 Markdown #
简介 #
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。Markdown 由 John Gruber 于 2004 年创建,现在已经成为世界上最流行的标记语言之一。
设计理念 #
Markdown 的设计哲学是:
Markdown 的目标是实现「易读易写」。可读性是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,不会看起来像被标签或格式指令所标记。
核心原则 #
| 原则 | 说明 |
|---|---|
| 简洁 | 语法简单,符号直观 |
| 可读 | 源码本身就是易读的文档 |
| 兼容 | 可以嵌入 HTML 代码 |
| 通用 | 可转换为多种格式 |
Markdown 的历史 #
text
2004年 ─── John Gruber 创建 Markdown
│
│ 与 Aaron Swartz 合作开发
│
2012年 ─── GitHub Flavored Markdown (GFM) 发布
│
│ 添加表格、任务列表等扩展
│
2014年 ─── CommonMark 规范发布
│
│ 标准化 Markdown 语法
│
至今 ─── 广泛应用于各类平台
Markdown 变体 #
原始 Markdown #
John Gruber 创建的原始版本,定义了基础语法。
CommonMark #
标准化的 Markdown 规范,解决了原始版本的歧义问题。
GitHub Flavored Markdown (GFM) #
GitHub 扩展的 Markdown,增加了:
- 表格语法
- 任务列表
- 删除线
- 自动链接
- 代码高亮
其他变体 #
| 变体 | 特点 |
|---|---|
| Markdown Extra | 支持表格、脚注、定义列表 |
| MultiMarkdown | 支持元数据、脚注、表格 |
| Pandoc Markdown | 学术写作,支持公式、引用 |
| Obsidian Markdown | 双向链接、嵌入内容 |
Markdown vs 其他格式 #
与 Word 对比 #
| 特性 | Markdown | Word |
|---|---|---|
| 文件格式 | 纯文本 | 二进制 |
| 版本控制 | 容易 | 困难 |
| 学习曲线 | 低 | 中 |
| 排版能力 | 基础 | 强大 |
| 跨平台 | 完美 | 需要软件 |
与 HTML 对比 #
html
<!-- HTML 写法 -->
<h1>标题</h1>
<p>这是一个<strong>重要</strong>的段落。</p>
<ul>
<li>列表项一</li>
<li>列表项二</li>
</ul>
markdown
# 标题
这是一个**重要**的段落。
- 列表项一
- 列表项二
Markdown 更简洁,更易读写。
与 LaTeX 对比 #
| 特性 | Markdown | LaTeX |
|---|---|---|
| 适用场景 | 通用文档 | 学术论文 |
| 数学公式 | 部分支持 | 完整支持 |
| 学习难度 | 低 | 高 |
| 排版精度 | 中 | 高 |
Markdown 的工作原理 #
text
┌─────────────────┐
│ Markdown 源码 │
│ (纯文本文件) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Markdown 解析器 │
│ (Parser) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ HTML/CSS/其他 │
│ (渲染输出) │
└─────────────────┘
解析过程 #
- 词法分析 - 识别 Markdown 语法元素
- 语法分析 - 构建文档结构树
- 渲染输出 - 转换为目标格式
文件扩展名 #
Markdown 文件通常使用以下扩展名:
.md- 最常用.markdown- 完整形式.mdown- 较少使用
应用场景 #
技术文档 #
markdown
# API 文档
## 接口说明
### 请求参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| id | string | 是 | 用户ID |
### 返回示例
\`\`\`json
{
"code": 200,
"data": {}
}
\`\`\`
博客文章 #
markdown
# 我的学习笔记
今天学习了 Markdown 的基础语法...
## 要点总结
1. 标题使用 # 号
2. 列表使用 - 或数字
3. 强调使用 ** 或 _
项目 README #
markdown
# 项目名称
简短描述项目功能。
## 安装
npm install package-name
## 使用
import { hello } from 'package-name'
下一步 #
现在你已经了解了 Markdown 是什么,接下来学习 标题语法 开始实际编写!
最后更新:2026-03-24