什么是 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/其他   │
│   (渲染输出)      │
└─────────────────┘

解析过程 #

  1. 词法分析 - 识别 Markdown 语法元素
  2. 语法分析 - 构建文档结构树
  3. 渲染输出 - 转换为目标格式

文件扩展名 #

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