1. Markdown 是什么
1.1 定义与原理
Markdown 是一种轻量级标记语言,由 John Gruber 于 2004 年创建。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档。
核心原理:通过简单的符号标记文本结构,再通过解释器转换为格式化的内容(如 HTML、PDF 等)。
1.2 特性
- 轻量级:语法简单,学习成本低
- 跨平台:任何文本编辑器都能编写
- 可读性强:即使不渲染也易于阅读
- 扩展性强:支持 HTML 嵌入和多种扩展语法
1.3 应用场景
- 文档编写(README、API文档等)
- 博客和静态网站内容
- 技术文档和笔记
- 邮件撰写(部分客户端支持)
- 论坛和聊天软件的富文本支持
2.Markdown 语法速查表
2.1 基础语法(Standard Markdown)
功能 | 语法示例 | 说明 |
标题 | # H1 | 1-6个#对应1-6级标题 |
段落 | 文字之间空一行 | 用空行分隔段落 |
换行 | 行尾两个空格 + 回车 | 或使用<br>标签 |
粗体 | **bold** 或 __bold__ | |
斜体 | *italic* 或 _italic_ | |
删除线 | ~~删除文本~~ | |
无序列表 | - Item | 可用-/*/+,子项缩进2空格 |
有序列表 | 1. Item | 数字+点,子项缩进3空格 |
代码 | `行内代码` | |
代码块 | <br>```语言<br>代码<br>```<br> | 或每行缩进4空格 |
链接 | [text](URL "标题") | |
图片 |  | |
引用 | > 引用内容 | 可嵌套>> |
分割线 | --- 或 *** | 至少3个字符 |
2.2 扩展语法(CommonMark/GFM等)
功能 | 语法示例 | 说明 |
表格 | |列1|列2| | 对齐方式::---左对齐,---:右对齐 |
任务列表 | - [x] 完成 | GitHub Flavored Markdown 特有 |
行内HTML | <b>加粗</b> | 支持所有HTML标签 |
脚注 | 内容[^note] | |
定义列表 | 术语 | 部分解析器支持 |
Mermaid图表 | <br>```mermaid<br>graph TD;<br>A-->B<br>```<br> | 需支持mermaid的解析器 |
数学公式 | $E=mc^2$(行内) | LaTeX语法 |
高亮文本 | ==高亮== | 部分解析器支持 |
上标/下标 | ^上标^ / ~下标~ | 非标准语法 |
2.3 特殊符号转义
在符号前加\:
\* 不是斜体 \#
\[ \] \( \) \` \_ \{ \}
2.4 兼容性说明
语法 | 原始MD | CommonMark | GFM |
表格 | |||
任务列表 | |||
Mermaid | * | ||
数学公式 | * |
*注:需额外插件或解析器支持(如Typora、VS Code插件等)
2.5 实用工具推荐
- 编辑器:VS Code(+Markdown All in One插件)、Typora
- 校验工具:markdownlint
- 表格生成:Tables Generator
提示:不同平台(GitHub/GitLab/Docsify等)可能支持不同的扩展语法,使用时请参考具体平台的文档。
3. 基础语法详解
3.1 标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
等效写法(仅对一级和二级标题有效):
一级标题
========
二级标题
--------
3.2 段落与换行
- 段落:用一个或多个空行分隔
- 换行:行尾添加两个或多个空格,然后按回车
这是第一段(后面有两个空行)
这是第二段
这是同一段内换行(行尾有两个空格)
新的一行
3.3 强调
*斜体文本* 或 _斜体文本_
**粗体文本** 或 __粗体文本__
***粗斜体*** 或 ___粗斜体___
~~删除线~~
3.4 列表
无序列表
- 项目一
- 项目二
- 子项目一(缩进两个空格)
- 子项目二
* 也可以使用星号
+ 或者加号
有序列表
1. 第一项
2. 第二项
1. 子项一(缩进三个空格)
2. 子项二
3. 第三项
任务列表(GFM扩展)
- [x] 完成设计
- [ ] 编写代码
- [ ] 测试功能
3.5 链接与图片
[链接文本](URL "可选标题")

参考式链接:
[Google][1]
[1]: https://google.com "Google"
3.6 代码
行内代码:`code`
代码块:
```语言
代码内容
```
或每行缩进4个空格/1个制表符
3.7 表格
表1 表格语法示例
对齐方式 | 语法 | 示例 |
左对齐 | :--- | 左对齐内容 |
右对齐 | ---: | 右对齐内容 |
居中对齐 | :---: | 居中对齐 |
| 姓名 | 年龄 | 职业 |
|:-----|-----:|:-------:|
| 张三 | 28 | 工程师 |
| 李四 | 32 | 设计师 |
3.8 引用
> 这是引用内容
> 可以多行
> 嵌套引用
>> 第二层引用
3.9 分割线
---
或
***
或
___
4. 扩展语法
4.1 Mermaid 图表
```mermaid
graph TD
A[开始] --> B{条件}
B -->|是| C[执行操作]
B -->|否| D[结束]
```
支持图表类型:
- 流程图(graph)
- 序列图(sequenceDiagram)
- 甘特图(gantt)
- 类图(classDiagram)
- 状态图(stateDiagram)
- 饼图(pie)
4.2 数学公式(LaTeX)
行内公式:$E=mc^2$
块级公式:
$
\sum_{i=1}^n i = \frac{n(n+1)}{2}
$
4.3 脚注
这是一个脚注的例子[^note]
[^note]: 这里是脚注的内容
4.4 定义列表(部分实现)
术语一
: 定义一
术语二
: 定义二
4.5 任务列表(GitHub Flavored Markdown)
- [x] 任务一
- [ ] 任务二
- [ ] 任务三
5. HTML 混合使用
Markdown 支持内嵌 HTML,当需要复杂格式时可以使用:
<div style="color:red;border:1px solid #ccc;padding:10px">
这是HTML块
</div>
这是Markdown内容 <span style="color:blue">混合HTML行内元素</span>
6. 实用技巧与最佳实践
6.1 转义字符
使用反斜杠转义特殊字符:
\*这不是斜体\*
需要转义的字符:\ * _ {} [] () # + - . ! |
6.2 多级列表技巧
1. 一级
- 二级
* 三级
1. 四级
6.3 表格生成工具
推荐使用在线工具生成复杂表格:
- Tables Generator
- Markdown Tables
6.4 文档结构建议
# 文档标题
[TOC]
## 简介
...
## 功能特性
...
## 安装指南
...
## 使用示例
...
## API参考
...
## 常见问题
...
7. 各平台差异比较
表2 主流平台Markdown支持差异
功能 | 标准Markdown | GitHub | GitLab | VS Code | Typora |
表格 | 不支持 | ||||
任务列表 | 不支持 | ||||
流程图 | 不支持 | 插件 | |||
数学公式 | 不支持 | 插件 | |||
脚注 | 不支持 | 插件 | |||
定义列表 | 不支持 |
8. 工具推荐
8.1 编辑器
- VS Code + Markdown All in One 插件
- Typora(所见即所得)
- Obsidian(知识管理)
- Notion(在线协作)
8.2 转换工具
- Pandoc:万能文档转换
- Markdown Preview Enhanced:VS Code 插件
- GitBook:文档发布平台
8.3 校验工具
- markdownlint:语法检查
- Prettier:代码格式化
9. 学习路径
10. 应用案例
10.1 Python项目README示例
# 项目名称


项目简短描述。
## 功能特性
- 特性1
- 特性2
- 特性3
## 安装指南
```bash
pip install project-name
```
## 使用示例
```python
import project_name
# 示例代码
result = project_name.do_something()
print(result)
```
## API参考
### `do_something(param1: str, param2: int = 42) -> dict`
执行操作并返回结果。
**参数说明:**
- `param1`: 参数描述(必填)
- `param2`: 参数描述(可选,默认值=42)
**返回值:**
- 包含结果的字典
**使用示例:**
```python
result = do_something("测试", 10)
```
## 贡献指南
1. Fork本项目
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的修改 (`git commit -m '添加了AmazingFeature'`)
4. 推送分支 (`git push origin feature/AmazingFeature`)
5. 发起Pull Request
## 许可证
基于MIT许可证分发。详见`LICENSE`文件。
10.2 技术文档示例
# 系统架构设计
## 1. 概述
本文档描述XXX系统的整体架构设计。
## 2. 架构图
```mermaid
flowchart TD
A[客户端] --> B{API网关}
B --> C[用户服务]
B --> D[订单服务]
B --> E[支付服务]
C --> F[(用户数据库)]
D --> G[(订单数据库)]
```
## 3. 核心流程
### 3.1 下单流程
```mermaid
sequenceDiagram
participant C as Client
participant G as API Gateway
participant O as Order Service
participant P as Payment Service
C->>G: 提交订单
G->>O: 创建订单
O->>P: 发起支付
P-->>O: 支付结果
O-->>G: 订单状态
G-->>C: 订单确认
```
## 4. 数据库设计
表3 用户表结构
| 字段名 | 类型 | 描述 |
|------------|-------------|----------------|
| id | BIGINT | 主键 |
| username | VARCHAR(50) | 用户名 |
| email | VARCHAR(100)| 邮箱 |
| created_at | TIMESTAMP | 创建时间 |
## 5. API规范
### `POST /api/orders`
创建新订单
**请求示例:**
```json
{
"user_id": 123,
"items": [
{"product_id": 1, "quantity": 2}
]
}
```
**响应示例:**
```json
{
"order_id": "ORD123456",
"status": "created",
"total_amount": 99.98
}
```
11. 学习总结
Markdown 作为一种轻量级标记语言,已经成为现代文档编写的标准工具之一。通过本笔记,我们系统地学习了:
- 基础语法:标题、段落、列表、强调等基本元素
- 扩展功能:表格、图表、数学公式等高级特性
- 工具生态:编辑器、转换工具和校验工具
- 实践指南:文档结构、编写规范和实用技巧
关键收获:
- 纯文本格式的持久性和可移植性优势
- 简单语法背后的强大表达能力
- 与版本控制系统(如Git)完美配合
- 作为各种文档生成工具的基础格式
进阶方向:
- 学习Pandoc实现多格式转换
- 掌握静态网站生成器(如Hugo、Jekyll)
- 探索Obsidian等知识管理工具的高级用法
- 参与开源项目文档贡献实践
Markdown 的价值在于它的简单性和普遍性,使其成为技术人员和非技术人员都能受益的通用文档解决方案。
持续更新Python编程学习日志与技巧,敬请关注!