Markdown学习手册
Markdown学习手册
文档核心说明
本文档是面向 Markdown 学习者的标准化学习手册,整合了 Markdown 语法全教程与 MarkItDown 文档转换工具使用指南,覆盖从入门到进阶的全流程内容:
适用人群:Markdown 新手、技术写作者、文档处理从业者、RAG 开发人员
核心模块:Markdown 基础认知、核心语法、进阶语法、平台技巧、编辑工具、常见问题、MarkItDown 文档转换、企业级文档清洗方案
一、Markdown 基础入门
1.1 什么是 Markdown
Markdown 是 2004 年由 John Gruber 创造的轻量级纯文本标记语言,通过极简的符号标记,给普通文本赋予排版格式,最终渲染为富文本。文件后缀为 \.md 或 \.markdown,可被几乎所有文本编辑器打开。
它的核心理念是重内容、轻形式,不用鼠标点选排版按钮,打字的同时就能完成格式设置,学习成本极低,上手即用。
1.2 核心优势
纯文本兼容:文件体积极小,跨平台、跨设备无格式错乱问题,永远可以打开
语法极简:核心语法不超过 10 个,10 分钟即可掌握日常 90% 的使用场景
全平台适配:笔记、博客、技术文档、GitHub 仓库、公众号、论坛等全场景支持
兼容 HTML:原生语法不支持的效果,可直接嵌入 HTML 标签实现
生态丰富:配套编辑器、插件、工具极多,支持公式、流程图、思维导图等扩展能力
1.3 快速上手:第一个 md 文件
新建一个文本文档,将后缀名从
\.txt改为\.md用 Markdown 编辑器(推荐 VS Code、Typora、Obsidian)打开文件
输入以下内容,保存后即可看到渲染效果
1 | # 我的第一篇Markdown笔记 |
二、Markdown 核心基础语法(必学,全平台通用)
这部分是 Markdown 的通用语法,所有支持 Markdown 的平台 100% 兼容,是必须掌握的核心内容。
2.1 标题
用 \# 号标记 1-6 级标题,\# 数量对应标题级别,#后必须加空格,否则部分渲染器无法识别。
| 语法示例 | 渲染效果 | 说明 |
|---|---|---|
\# 一级标题 |
一级标题 | 最大字号,通常用于文档主标题 |
\#\# 二级标题 |
二级标题 | 用于大章节标题 |
\#\#\# 三级标题 |
三级标题 | 用于子章节标题 |
\#\#\#\# 四级标题 |
四级标题 | 用于小节标题 |
\#\#\#\#\# 五级标题 |
五级标题 | 用于细分内容 |
\#\#\#\#\#\# 六级标题 |
六级标题 | 最小字号,用于备注内容 |
补充:原生 Markdown 还支持用
=和\-标记一级 / 二级标题,仅作了解,不推荐使用。
2.2 段落与换行
这是新手最容易踩坑的语法,Markdown 对换行有严格的规则:
段落分隔:两个段落之间必须用一个空白行隔开(连续两次回车),否则会被识别为同一段落
强制换行:行尾添加2 个空格 + 1 次回车,即可在同一段落内换行,无需空白行
兼容换行:直接用 HTML 标签
\<br\>换行,全平台通用,无兼容性问题
示例:
1 | 这是第一个段落 |
2.3 文本格式
用简单符号包裹文本,实现常用的字体样式,符号与文本之间不要加空格。
| 语法示例 | 渲染效果 | 兼容性 |
|---|---|---|
\*\*加粗文本\*\* |
加粗文本 | 全平台通用 |
\*斜体文本\* |
斜体文本 | 全平台通用 |
\*\*\*加粗斜体\*\*\* |
加粗斜体 | 全平台通用 |
\~\~删除线文本\~\~ |
GFM 通用,原生 Markdown 不支持 | |
\<u\>下划线文本\</u\> |
下划线文本 | 全平台通用(HTML 兼容,原生无此语法) |
补充:斜体和加粗也可以用
\_替代\*,比如\_斜体\_、\_\_加粗\_\_,但推荐使用\*,避免和代码、变量名冲突,兼容性更好。
2.4 列表
分为无序列表、有序列表、嵌套列表,列表符号后必须加空格。
2.4.1 无序列表
用 \- / \* / \+ 加空格标记,推荐使用 \-,可读性和兼容性最佳。
1 | - 无序列表项1 |
2.4.2 有序列表
用 数字\. 空格 标记,数字顺序不影响最终渲染结果,渲染器会自动按顺序编号,懒人可以全写 1\.。
1 | 1. 有序列表项1 |
2.4.3 混合列表
有序列表和无序列表可以互相嵌套,只需控制好缩进即可,列表内还可以嵌套引用、代码块、图片等其他语法。
1 | 1. 前端开发学习 |
2.5 引用区块
用 \> 空格 标记引用内容,支持多层嵌套,也可以嵌套其他 Markdown 语法。
基础示例:
1 | > 这是一级引用内容 |
2.6 分割线
单独一行,输入3 个及以上的 \- / \* / \_,即可生成分割线,推荐使用 \-\-\-,可读性最佳。
注意:分割线必须单独占一行,前后最好留空白行,避免和二级标题混淆。
示例:
1 | --- |
2.7 链接与图片
2.7.1 链接
核心语法:\[链接显示文本\]\(链接地址 \&\#34;可选的链接标题\&\#34;\),鼠标悬浮在链接上会显示标题内容。
- 内联链接(最常用)
1 | [百度一下](https://www.baidu.com "百度搜索引擎") |
- 引用式链接(适合长链接,方便管理)
1 | 这是[Markdown官方教程][1],这是[GitHub官网][2] |
- 自动链接
用\<\>包裹网址 / 邮箱,自动转为链接,适合直接展示完整链接。
1 | <https://www.baidu.com> |
2.7.2 图片
核心语法:\\\,和链接语法相比,只是前面多了一个 \!。
图片地址可以是本地文件路径(相对 / 绝对路径),也可以是网络图片链接。
- 基础图片插入
1 |
- 图片加链接(点击图片跳转到指定网址)
1 | [](https://github.com) |
避坑提示:本地图片路径错误、网络图片链接失效,都会导致图片无法显示,推荐使用稳定的图床存储图片,避免路径失效。
2.8 代码与代码块
Markdown 对代码有极佳的支持,是技术文档、笔记的核心语法。
2.8.1 行内代码
用单个反引号 ` 包裹代码,适合在段落中插入短代码、变量名、命令等。
1 | Python中的打印函数是 `print("hello world")`,终端中查看文件列表用 `ls` 命令。 |
2.8.2 围栏代码块(推荐)
用 **3 个反引号 \*\* 包裹代码块,开头的 后可以标注编程语言,实现语法高亮,几乎所有平台都支持,是最常用的代码块写法。
示例:
1 | ```python |
1 | > 补充:支持几乎所有编程语言,只需把 `python` 替换为对应的语言名,比如 `java`、`javascript`、`c++`、`go`、`sql`、`bash` 等。 |
对齐规则:
:\-\-\-冒号在左边,左对齐(默认):\-\-\-:冒号在两边,居中对齐\-\-\-:冒号在右边,右对齐
三、Markdown 进阶语法(提升文档表现力)
这部分语法多为 GFM 扩展或主流编辑器支持,可按需学习,实现更丰富的文档效果。
3.1 任务列表(待办清单)
GFM 通用语法,GitHub、Obsidian、语雀等平台均支持,语法:\- \[ \] 内容 表示未完成,\- \[x\] 内容 表示已完成,括号内必须有空格,x 小写。
1 | ### 本周待办 |
3.2 目录自动生成
在文档开头输入 \[TOC\],编辑器会自动根据文档的标题层级,生成可跳转的目录,Typora、语雀、掘金等平台均支持,原生 Markdown 和 GitHub 不支持此语法。
GitHub 替代方案:可通过 VS Code 插件自动生成目录,或手动用内联链接锚定标题。
3.3 脚注
为文本添加注释说明,注释内容会自动渲染到文档末尾,支持点击跳转,主流编辑器均支持。
1 | 这是Markdown教程中的一个知识点[^1],还有一个补充说明[^2]。 |
3.4 上标与下标
| 语法示例 | 渲染效果 | 说明 |
|---|---|---|
x^2^ |
x² | GFM 上标语法,部分编辑器支持 |
H\~2\~O |
H₂O | GFM 下标语法,部分编辑器支持 |
\<sup\>上标内容\</sup\> |
上标内容 | HTML 语法,全平台通用 |
\<sub\>下标内容\</sub\> |
下标内容 | HTML 语法,全平台通用 |
3.5 文本高亮
用 == 包裹文本,实现背景高亮效果,GFM 扩展语法,Typora、Obsidian 等编辑器支持,部分平台需手动开启功能。
1 | 这是==高亮的重点内容==,需要特别注意。 |
3.6 定义列表
用于术语解释,Pandoc、Typora、MDN 等平台支持,语法如下:
1 | Markdown |
3.7 LaTeX 数学公式
主流 Markdown 编辑器均支持基于 KaTeX/MathJax 的 LaTeX 公式渲染,是写数学、科研笔记的核心功能。
- 行内公式:用
$包裹公式,嵌入在段落中
1 | 质能方程是 $E=mc^2$,一元二次方程的求根公式是 $x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$ |
- 块级公式:用
$$包裹公式,单独成行,居中展示
1 | $$ |
3.8 Mermaid 流程图 / 图表
Mermaid 是基于 Markdown 的图表绘制工具,支持流程图、时序图、甘特图、饼图、思维导图等,目前 VS Code、Typora、GitHub、语雀等主流平台均已原生支持。
基础流程图示例:
1 | ```mermaid |
1 | ### 3.9 HTML 内嵌语法 |
3.10 注释
用 HTML 注释语法 \<\!\-\- 注释内容 \-\-\>,注释内容仅在编辑时可见,渲染后不会显示在文档中。
1 | 这是正文内容,会正常显示 |
四、Markdown 平台技巧与排版规范
4.1 GitHub 专属语法
GitHub 是目前最主流的 Markdown 使用场景之一,除了 GFM 标准语法,还支持以下专属功能:
- 告警提示块
1 | > [!NOTE] |
表情符号
用:表情名:插入表情,比如:smile:😄、:star:⭐、:warning:⚠️,完整表情列表可参考GitHub Emoji Cheat Sheet。代码行高亮
在代码块的语言名后添加\{行号\},即可高亮指定代码行:
1 | ```python {1,3-4} |
1 | 4. **引用仓库内容** |
4.3 通用排版规范
遵循以下规范,可让你的 Markdown 文档在所有平台都有一致的排版效果,可读性拉满:
中文与英文、数字之间加一个空格,比如
Markdown 教程、2024 年中文标点使用全角,英文、代码、数字使用半角
标题、代码块、表格、引用、分割线前后,都留一个空白行
所有 Markdown 标记符号(
\#、\-、\*、\>等)后,必须加一个空格列表嵌套统一使用 1 个 Tab 或 4 个空格缩进,避免混用
尽量使用通用语法,减少平台专属的扩展语法,避免跨平台渲染错乱
4.4 常用快捷键速记
几乎所有 Markdown 编辑器都支持以下快捷键,大幅提升写作效率:
| 快捷键 | 功能 |
|---|---|
| Ctrl/Cmd + B | 选中文本加粗 |
| Ctrl/Cmd + I | 选中文本斜体 |
| Ctrl/Cmd + 数字 1-6 | 转为对应级别的标题 |
| Ctrl/Cmd + K | 插入链接 |
| Ctrl/Cmd + Shift + I | 插入图片 |
| Ctrl/Cmd + Shift + ` | 行内代码 |
| Ctrl/Cmd + Shift + K | 插入代码块 |
| Ctrl/Cmd + Shift + [ | 转为无序列表 |
| Ctrl/Cmd + Shift + ] | 转为有序列表 |
五、Markdown 编辑工具推荐
5.1 桌面端(首选)
| 工具 | 特点 | 适用人群 | 平台 |
|---|---|---|---|
| Typora | 所见即所得,颜值高,支持几乎所有 Markdown 语法,界面极简 | 普通用户、写作爱好者、学生 | Windows/Mac/Linux |
| VS Code | 免费开源,插件生态拉满,安装 Markdown 相关插件后功能无敌,支持代码、文档一体化 | 开发者、技术写作者 | Windows/Mac/Linux |
| Obsidian | 本地优先,双链笔记核心,插件生态极强,支持知识图谱,适合搭建个人知识库 | 知识管理爱好者、学生、研究者 | Windows/Mac/Linux |
| Notion | 块级编辑,支持 Markdown,团队协作、知识库、项目管理一体化 | 团队协作、个人知识库 | Windows/Mac/Web |
| 语雀 | 阿里出品,中文支持好,云端同步,团队协作能力强,支持知识库、博客 | 中文用户、团队协作 | Windows/Mac/Web |
5.2 在线编辑器
MdEditor:国内开源在线 Markdown 编辑器,功能全面,支持导出 PDF / 图片 / HTML
Dillinger:经典国外在线 Markdown 编辑器,界面简洁,支持云端同步
马克飞象:支持与印象笔记同步,适合印象笔记用户
GitHub Gist:代码片段分享工具,原生支持 Markdown,适合开发者分享文档
5.3 移动端
Obsidian 移动端:全平台同步,和桌面端功能一致,支持双链
语雀 APP:云端同步,移动端编辑体验优秀
幕布:大纲笔记工具,支持 Markdown 语法,一键生成思维导图
熊掌记:苹果生态专属,颜值高,Markdown 支持完善,适合苹果用户
5.4 实用插件推荐
VS Code:
Markdown All in One:一站式 Markdown 插件,快捷键、目录、自动补全全支持
Markdown Preview Enhanced:增强预览,支持公式、Mermaid、导出 PDF
Paste Image:一键粘贴图片到文档,自动生成相对路径
Chrome 浏览器:
Markdown Here:一键给邮件、公众号、论坛内容用 Markdown 排版
Markdown Viewer:直接在浏览器中预览本地.md 文件
六、Markdown 常见问题与避坑指南
6.1 为什么回车不换行?
原生 Markdown 中,单个回车会被识别为一个空格,不会换行。
解决方案 1:行尾加 2 个空格,再按回车
解决方案 2:连续按两次回车,生成新段落
解决方案 3:用 HTML 标签
\<br\>强制换行
6.2 为什么语法在 A 编辑器能用,B 编辑器不行?
Markdown 存在多个方言(标准 Markdown、GFM、Pandoc 等),基础语法全平台通用,进阶扩展语法存在兼容性差异。
- 解决方案:跨平台文档尽量使用通用基础语法,减少扩展语法;提前确认目标平台支持的语法规范。
6.3 图片不显示怎么办?
图片不显示 99% 的原因是路径错误或链接失效:
本地图片:检查相对路径 / 绝对路径是否正确,推荐把图片放在和 md 文件同级的 assets 文件夹,用相对路径引用
网络图片:检查链接是否可以正常访问,是否有防盗链限制,推荐使用稳定的公共图床 / OSS 存储图片
6.4 表格渲染错乱怎么办?
检查表头和分隔行的
\|数量是否一致,单元格数量是否对应检查分隔行的
\-\-\-是否正确,对齐符号:是否写在短横线两侧表格前后留空白行,避免和上文内容连在一起
推荐首尾都加上
\|,减少渲染异常
6.5 代码块语法高亮不生效?
检查 \
\\\后填写的语言名是否正确,比如python不能写成py`部分编辑器需要安装对应语言的语法高亮插件,安装后重启即可
原生缩进式代码块不支持语法高亮,必须使用围栏代码块 \
\\`
6.6 特殊符号显示异常 / 触发排版?
解决方案:在特殊符号前加反斜杠
\\进行转义,比如\#、\*、\(等常见坑:日期
2024\.05\.01会被识别为有序列表,需写成2024\.05\.01转义