1. Markdown 是什么?
Markdown 由 John Gruber 和 Aaron Swartz 在 2004 年创建,是一种轻量级标记语言,旨在让用户以纯文本的方式编写格式化文档,同时保持易读性和易写性。它的设计理念是“内容与格式分离”,用户只需使用简单的标记符号(如 #、* 等)即可定义标题、列表、链接等格式,生成的文档可以轻松转换为 HTML、PDF 或其他格式。
特点:
简单易学:语法直观,学习曲线平缓。
跨平台支持:几乎所有现代编辑器和平台(如 GitHub、Jupyter Notebook、Notion、VS Code)都支持 Markdown。
可读性强:即使不渲染,Markdown 源文件也易于阅读。
灵活性:可以嵌入 HTML 代码,扩展功能。
用途广泛:常用于技术文档、博客、README 文件、笔记整理等。
应用场景:
编程相关:GitHub README、Jupyter Notebook 文档、API 文档。
写作:博客(如 Hugo、Jekyll)、技术文章。
笔记:Obsidian、Notion 等工具中的知识管理。
学术:撰写论文草稿或实验报告。
2. Markdown 的基础语法
以下是 Markdown 的核心语法,涵盖了最常用的格式化功能。我会逐一讲解,并提供示例代码和渲染效果的说明。
2.1 标题(Headers)
Markdown 使用 # 符号定义标题,# 的数量表示标题的层级(1 到 6 级,类似于 HTML 的 <h1> 到 <h6>)。
语法:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
渲染效果:
# 一级标题 → 大号标题(相当于 <h1>)
## 二级标题 → 稍小号标题(相当于 <h2>)
以此类推。
注意:
# 后需加一个空格。
标题常用于文档结构化,清晰划分内容层次。
替代语法(仅限一级和二级标题):
一级标题
========
二级标题
--------
这种方式较少使用,但仍被支持。
2.2 段落和换行(Paragraphs and Line Breaks)
Markdown 的段落由一行或多行文本组成,段落之间用空行分隔。
语法:
这是一个段落。可以在一行内写很多内容,换行不会影响渲染。
这是另一个段落。
渲染效果:
每个段落会被渲染为 HTML 的 <p> 标签。
段内换行(按 Enter)不会产生新段落,除非有空行。
换行:
在行尾添加两个或更多空格并按 Enter,可以强制换行(不产生新段落)。
语法:
第一行 (两个空格)
第二行
渲染效果:
第一行
第二行
2.3 强调(Emphasis)
Markdown 支持文本的加粗和斜体,用于强调内容。
语法:
斜体:用单个 * 或 _ 包裹文本。
加粗:用两个 * 或 _ 包裹文本。
加粗斜体:用三个 * 或 _ 包裹文本。
*斜体* 或 _斜体_
**加粗** 或 __加粗__
***加粗斜体*** 或 ___加粗斜体___
渲染效果:
斜体(<em>)
加粗(<strong>)
加粗斜体(<strong><em>)
注意:
不要在 * 或 _ 与文本之间加空格,否则无效。
尽量保持 * 和 _ 风格一致(例如,全程用 *)。
2.4 列表(Lists)
Markdown 支持有序列表和无序列表,类似于 HTML 的 <ol> 和 <ul>。
无序列表(Unordered Lists)
使用 *、- 或 + 作为列表项的标记。
语法:
- 项目 1
- 项目 2
- 子项目 2.1
- 子项目 2.2
* 项目 3
+ 项目 4
渲染效果:
项目 1
项目 2
子项目 2.1
子项目 2.2
项目 3
项目 4
注意:
标记后需加空格。
子列表通过缩进(通常 2 或 4 个空格)实现。
有序列表(Ordered Lists)
使用数字加点号(如 1.)定义列表项。
语法:
1. 第一项
2. 第二项
1. 子项 2.1
2. 子项 2.2
3. 第三项
渲染效果:
第一项
第二项
子项 2.1
子项 2.2
第三项
注意:
数字可以不按顺序(如全写 1.),渲染时会自动递增。
子列表同样通过缩进来嵌套。
2.5 链接(Links)
Markdown 支持插入超链接,分为内联链接和引用链接。
内联链接
语法:
[链接文字](URL "可选标题")
示例:
[访问 GitHub](https://github.com "GitHub 首页")
渲染效果:
访问 GitHub
注意:
URL 可以是完整地址(如 https://)或相对路径。
可选标题("...")在鼠标悬停时显示,部分渲染器支持。
引用链接
将链接定义放在文档其他位置,避免正文冗长。
语法:
这是一个[链接][id]。
[id]: https://github.com "GitHub 首页"
渲染效果:
与内联链接相同,但正文更简洁。
自动链接
直接写入 URL 或邮箱地址,会自动转为链接。
语法:
https://github.com
<user@example.com>
渲染效果:
https://github.com
user@example.com
2.6 图片(Images)
图片语法与链接类似,但前面加 !。
语法:

示例:

渲染效果:
显示图片,替代文本 在图片加载失败时显示。
可选标题 在鼠标悬停时显示(视渲染器而定)。
注意:
图片URL可以是本地路径或网络地址。
引用风格的图片链接也支持,类似引用链接。
2.7 代码(Code)
Markdown 支持内联代码和代码块,用于展示程序代码或命令。
内联代码
用单个反引号(`)包裹代码。
语法:
使用 `print("Hello, World!")` 输出文本。
渲染效果:
使用 print("Hello, World!") 输出文本。
代码块
用三个反引号(“ ““`)或三个波浪号(~~~)包裹多行代码,可指定语言以启用语法高亮。
语法:
```python
def hello():
print("Hello, World!")
**渲染效果**:
```python
def hello():
print("Hello, World!")
注意:
常见语言(如 python、javascript、html)会被高亮显示。
缩进代码块(每行前加 4 个空格或 1 个制表符)是另一种方式,但较少使用。
2.8 引用(Blockquotes)
用于引用文本,常用于强调或标注出处。
语法:
> 这是一段引用。
> 可以在多行延续。
>
> - 引用中可以嵌套列表
> - 或者其他格式
渲染效果:
这是一段引用。
可以在多行延续。引用中可以嵌套列表
或者其他格式
注意:
> 后需加空格。
多段引用只需在段首加 >,空行分隔段落。
2.9 分隔线(Horizontal Rules)
用于分隔内容,增强文档结构。
语法:
---
***
____
渲染效果:
一条水平线(<hr>)。
注意:
三者效果相同,需独占一行,前面无空格。
符号之间可以有空格(如 - - -)。
2.10 表格(Tables)
Markdown 支持简单的表格,部分扩展(如 GitHub Flavored Markdown)增强了功能。
语法:
| 列1 | 列2 | 列3 |
|-----|-----|-----|
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |
渲染效果:
| 列1 | 列2 | 列3 |
|---|---|---|
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |
对齐方式:
通过在分隔线中添加冒号(:)控制对齐。
语法:
| 左对齐 | 居中 | 右对齐 |
|:-------|:----:|-------:|
| 内容1 | 内容2 | 内容3 |
渲染效果:
| 左对齐 | 居中 | 右对齐 |
|---|---|---|
| 内容1 | 内容2 | 内容3 |
注意:
列宽会自动调整,管道符(|)不必对齐。
表格在某些渲染器中可能不支持,需确认环境。
2.11 转义字符(Escaping Characters)
若需显示 Markdown 特殊字符(如 *、#),使用反斜杠()转义。
语法:
* 不会变成斜体
# 不会变成标题
渲染效果:
不会变成斜体
不会变成标题
常见转义字符:
*, _, #, (, ), [, ], <, >, , “`, !, |, ., :
2.12 脚注(Footnotes)
部分 Markdown 扩展支持脚注,用于补充说明。
语法:
这是一个句子[^1]。
[^1]: 这是脚注内容。
渲染效果:
这是一个句子1。
注意:
脚注标识(如 [^1])可以是任意唯一字符串。
脚注定义可以放在文档任意位置。
2.13 任务列表(Task Lists)
GitHub Flavored Markdown 支持任务列表,用于待办事项。
语法:
- [x] 已完成任务
- [ ] 未完成任务
渲染效果:
已完成任务
未完成任务
注意:
[x] 表示选中,[ ] 表示未选中。
仅在支持 GFM 的环境(如 GitHub)有效。
3. Markdown 的使用场景与工具
3.1 常用工具
编辑器:
VS Code:支持 Markdown 预览和插件(如 Markdown All in One)。
Typora:所见即所得的 Markdown 编辑器,适合初学者。
Obsidian:知识管理和笔记工具,基于 Markdown。
Notion:支持 Markdown 导入/导出。
平台:
GitHub:README、Issues、Pull Requests 使用 Markdown。
GitLab、Bitbucket:类似 GitHub。
Jupyter Notebook:支持 Markdown 单元格。
Hexo/Jekyll:博客框架,文章用 Markdown 编写。
在线工具:
Dillinger:在线 Markdown 编辑器。
StackEdit:支持云同步的 Markdown 编辑器。
3.2 实际使用建议
项目文档:在 GitHub 编写 README.md,使用标题、列表、代码块展示项目信息。
学习笔记:用 Typora 或 Obsidian 整理课程笔记,结合表格和代码块记录算法或代码片段。
博客写作:用 Markdown 撰写技术文章,发布到 Hugo 或 Medium。
实验报告:用 Markdown 编写结构化报告,导出为 PDF 或 HTML。
4. Markdown 的扩展与限制
4.1 扩展
许多平台对 Markdown 进行了扩展,增加了功能:
GitHub Flavored Markdown (GFM):
支持任务列表、表格、自动链接、删除线(~~文本~~)。
支持代码块语言高亮。
Pandoc Markdown:
支持复杂的脚注、定义列表、数学公式(LaTeX)。
可转换为多种格式(如 PDF、Word)。
R Markdown:
结合 R 语言,用于数据分析报告。
支持动态生成图表和代码输出。
Obsidian Markdown:
支持双向链接([[页面]])、嵌入文件。
4.2 限制
标准不统一:不同平台支持的语法略有差异(如表格、脚注)。
复杂格式支持有限:如高级排版、动态内容需依赖 HTML 或扩展。
依赖渲染器:Markdown 文件需通过工具或平台渲染为 HTML 或其他格式。
解决方法:
使用支持 GFM 的工具(如 GitHub、VS Code)以获得最广泛兼容性。
借助 Pandoc 转换复杂文档。
嵌入 HTML 或 CSS 实现高级格式化。
5. 学习 Markdown 的建议
以下是学习和应用 Markdown 的具体建议:
快速上手:
花 30 分钟阅读本文的语法部分,尝试在 Typora 或 VS Code 中练习。
参考 GitHub 的 Mastering Markdown。
实践项目:
为你的 AI 项目(如机器学习模型)写一个 README.md,包含项目简介、安装步骤、代码示例。
在 Jupyter Notebook 中用 Markdown 单元格记录实验过程。
工具集成:
安装 VS Code 的 Markdown 插件(如 Markdown Preview Enhanced)。
尝试 Obsidian 管理学习笔记,构建知识图谱。
进阶学习:
学习 GFM 和 Pandoc Markdown,掌握表格、脚注、数学公式。
探索 R Markdown 或 Quarto,用于学术报告或数据可视化。
常见问题处理:
语法不生效:检查空格、缩进,或确认平台支持。
渲染差异:在目标平台(如 GitHub)预览效果。
复杂需求:嵌入 HTML 或使用扩展工具。
6. 示例:完整的 Markdown 文档
以下是一个综合示例,展示 Markdown 在 AI 项目文档中的应用:
# 项目:手写数字识别
## 概述
本项目使用 **卷积神经网络 (CNN)** 实现 MNIST 手写数字识别,基于 *PyTorch* 框架。
## 安装
1. 安装 Python 3.8+。
2. 安装依赖:
```bash
pip install torch torchvision
模型结构
| 层 | 参数 |
|---|---|
| Conv2D | 32 filters, 3×3 |
| MaxPooling | 2×2 |
| Dense | 128 units, ReLU |
代码示例
import torch.nn as nn
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.conv1 = nn.Conv2d(1, 32, 3)
self.pool = nn.MaxPool2d(2, 2)
self.fc1 = nn.Linear(32 * 13 * 13, 128)
self.fc2 = nn.Linear(128, 10)
结果
模型在 MNIST 测试集上达到 98.5% 的准确率。
参考资料
PyTorch 官方文档
MNIST 数据集
渲染效果:
结构清晰,包含标题、段落、列表、表格、代码块、引用和链接。
适合作为 GitHub 项目的 README 文件。
7. 总结
Markdown 是一种简单而强大的标记语言,特别适合技术文档和笔记整理。其核心语法(标题、列表、链接、代码等)易于掌握,扩展功能(如 GFM、Pandoc)进一步增强了灵活性。你可以通过 Markdown 高效记录实验、撰写文档和分享成果。
下一步行动:
下载 Typora 或 VS Code,创建一个简单的 Markdown 文件,尝试本文介绍的语法。
为你的 AI 项目写一个 README.md,上传到 GitHub。
探索 Pandoc 或 Obsidian,提升 Markdown 的高级用法。
这是脚注内容。 ↩︎
















暂无评论内容