作者:浪浪山齐天大圣
描述:全面详细的Markdown语法教程,涵盖基础语法到高级技巧的完整指南
前言
Markdown是一种轻量级标记语言,由John Gruber在2004年创建。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。Markdown已经成为程序员、技术写作者和内容创作者的首选工具。
本文将全面介绍Markdown的所有语法特性,从基础语法到高级技巧,帮助你完全掌握这门标记语言。
一、基础语法
1.1 标题(Headers)
Markdown支持两种标题语法:Setext和ATX。
ATX风格标题(推荐)
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
Setext风格标题
一级标题
========
二级标题
--------
注意事项:
- ATX风格标题在
#后面需要加空格 - 标题级别最多支持6级
- 建议在标题前后各留一个空行
1.2 段落和换行
段落
段落之间用一个或多个空行分隔。
这是第一个段落。
这是第二个段落。
换行
在行尾添加两个或多个空格,然后按回车键。
这是第一行
这是第二行
1.3 强调
斜体
*斜体文本*
_斜体文本_
粗体
**粗体文本**
__粗体文本__
粗斜体
***粗斜体文本***
___粗斜体文本___
**_粗斜体文本_**
*__粗斜体文本__*
删除线
~~删除线文本~~
1.4 列表
无序列表
- 项目1
- 项目2
- 项目3
* 项目1
* 项目2
* 项目3
+ 项目1
+ 项目2
+ 项目3
有序列表
1. 第一项
2. 第二项
3. 第三项
嵌套列表
1. 第一项
- 子项目1
- 子项目2
2. 第二项
1. 子项目1
2. 子项目2
1.5 链接
内联链接
[链接文本](URL "可选标题")
[百度](https://www.baidu.com "百度搜索")
引用链接
[链接文本][引用标识]
[引用标识]: URL "可选标题"
自动链接
<https://www.example.com>
<email@example.com>
1.6 图片
内联图片


引用图片
![替代文本][图片引用]
[图片引用]: 图片URL "可选标题"
1.7 代码
行内代码
使用`代码`来标记行内代码
代码块
使用三个反引号包围代码块:
```
代码内容
```
指定语言的代码块
```python
def hello_world():
print("Hello, World!")
```
1.8 引用
> 这是一个引用
>
> 这是引用的第二段
> 这是第一级引用
>> 这是第二级引用
>>> 这是第三级引用
1.9 分隔线
---
***
___
- - -
* * *
二、表格语法
2.1 基本表格
| 表头1 | 表头2 | 表头3 |
|-------|-------|-------|
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |
2.2 对齐方式
| 左对齐 | 居中对齐 | 右对齐 |
|:-------|:--------:|-------:|
| 内容1 | 内容2 | 内容3 |
| 内容4 | 内容5 | 内容6 |
2.3 表格中的格式
| 功能 | 语法 | 示例 |
|------|------|------|
| 粗体 | `**文本**` | **粗体** |
| 斜体 | `*文本*` | *斜体* |
| 代码 | `` `代码` `` | `代码` |
| 链接 | `[文本](URL)` | [链接](https://example.com) |
三、高级语法
3.1 任务列表
- [x] 已完成任务
- [ ] 未完成任务
- [x] 另一个已完成任务
- [ ] 另一个未完成任务
3.2 脚注
这是一个脚注的例子[^1]。
这是另一个脚注[^note]。
[^1]: 这是第一个脚注的内容。
[^note]: 这是命名脚注的内容。
3.3 定义列表
术语1
: 定义1
术语2
: 定义2a
: 定义2b
3.4 缩写
*[HTML]: Hyper Text Markup Language
*[W3C]: World Wide Web Consortium
HTML 规范由 W3C 维护。
3.5 上标和下标
上标:X^2^
下标:H~2~O
3.6 高亮文本
==高亮文本==
3.7 键盘按键
按 [[Ctrl]]+[[C]] 复制文本。
四、扩展语法
4.1 数学公式
行内公式
这是行内公式:$E = mc^2$
块级公式
$$
\frac{n!}{k!(n-k)!} = \binom{n}{k}
$$
4.2 流程图(Mermaid)
```mermaid
graph TD
A[开始] --> B{判断条件}
B -->|是| C[执行操作1]
B -->|否| D[执行操作2]
C --> E[结束]
D --> E
### 4.3 时序图
```markdown
```mermaid
sequenceDiagram
participant A as 用户
participant B as 服务器
A->>B: 发送请求
B-->>A: 返回响应
### 4.4 甘特图
```markdown
```mermaid
gantt
title 项目进度
dateFormat YYYY-MM-DD
section 阶段1
任务1 :done, des1, 2023-01-01,2023-01-06
任务2 :active, des2, 2023-01-07, 3d
section 阶段2
任务3 : des3, after des2, 5d
任务4 : des4, after des3, 5d
## 五、HTML支持
Markdown支持内嵌HTML标签:
```markdown
<div align="center">
<img src="image.jpg" width="300" alt="居中图片">
</div>
<table>
<tr>
<td>单元格1</td>
<td>单元格2</td>
</tr>
</table>
<details>
<summary>点击展开</summary>
这里是隐藏的内容。
</details>
六、转义字符
使用反斜杠\来转义特殊字符:
\* 不是斜体
\# 不是标题
\[不是链接\]
\`不是代码\`
需要转义的字符:
\ 反斜杠
` 反引号
* 星号
_ 下划线
{} 大括号
[] 方括号
() 圆括号
# 井号
+ 加号
- 减号
. 英文句号
! 感叹号
七、最佳实践
7.1 文档结构
-
使用有意义的标题层次
- 一个文档只有一个一级标题
- 标题层次不要跳跃(如从二级直接到四级)
-
保持一致的格式
- 统一使用相同的列表标记
- 统一使用相同的强调语法
-
适当使用空行
- 标题前后留空行
- 段落之间留空行
- 代码块前后留空行
7.2 可读性优化
-
合理使用强调
- 不要过度使用粗体和斜体
- 重要内容才使用强调
-
代码格式化
- 行内代码用于变量名、函数名等
- 代码块用于完整的代码示例
- 指定代码语言以获得语法高亮
-
链接优化
- 使用有意义的链接文本
- 避免使用"点击这里"等无意义文本
7.3 兼容性考虑
-
标准语法优先
- 优先使用标准Markdown语法
- 扩展语法要考虑平台支持
-
测试渲染效果
- 在目标平台测试渲染效果
- 确保在不同设备上的显示效果
八、常用工具推荐
8.1 编辑器
- Typora:所见即所得的Markdown编辑器
- Mark Text:实时预览的Markdown编辑器
- VS Code:配合Markdown插件使用
- Obsidian:知识管理和Markdown编辑
8.2 在线工具
- Dillinger:在线Markdown编辑器
- StackEdit:功能丰富的在线编辑器
- Markdown Live Preview:实时预览工具
8.3 转换工具
- Pandoc:文档格式转换工具
- GitBook:文档发布平台
- Docsify:文档网站生成器
九、平台特性
9.1 GitHub Flavored Markdown (GFM)
- 支持任务列表
- 支持表格
- 支持删除线
- 支持代码语法高亮
- 支持自动链接
9.2 优快云平台特性
- 支持数学公式
- 支持流程图
- 支持目录生成
- 支持代码高亮
- 支持自定义样式
9.3 其他平台
不同平台对Markdown的支持程度不同,使用时需要注意:
- 简书:支持基础语法和数学公式
- 知乎:支持基础语法,部分扩展语法
- 掘金:支持GFM和部分扩展语法
- 博客园:支持基础语法和代码高亮
十一、Markdown文件转换与导出
Markdown文件通常需要转换为其他格式(如HTML、PDF、Word等)以便于分享、打印或发布。以下是一些常用的工具和方法:
11.1 使用Pandoc
Pandoc是一个强大的通用文档转换器,支持多种输入和输出格式,是Markdown转换的首选工具。
安装Pandoc
- macOS/Linux:
brew install pandoc # macOS sudo apt-get install pandoc # Debian/Ubuntu - Windows:
从Pandoc官网下载安装包。
常用转换命令
-
Markdown转HTML:
pandoc input.md -o output.html若要包含样式,可以指定CSS文件:
pandoc input.md -o output.html --css=style.css -
Markdown转PDF:
Pandoc通常需要LaTeX发行版(如TeX Live或MiKTeX)来生成PDF。pandoc input.md -o output.pdf若要自定义PDF样式,可以创建LaTeX模板:
pandoc input.md -o output.pdf --template=mytemplate.latex -
Markdown转Word (docx):
pandoc input.md -o output.docx -
Markdown转EPUB:
pandoc input.md -o output.epub
11.2 使用在线转换工具
有许多在线工具提供Markdown到其他格式的转换服务,例如:
- Dillinger: 提供Markdown编辑和导出HTML、PDF等功能。
- MarkdowntoPDF: 专注于Markdown到PDF的转换。
11.3 使用编辑器内置功能
许多Markdown编辑器(如Typora、VS Code、Obsidian)都内置了导出功能:
- Typora: 支持导出为PDF、HTML、Word、图片等格式。
- VS Code: 配合Markdown插件,可以预览并导出为HTML或PDF。
- Obsidian: 可以通过插件导出为PDF或HTML。
十二、更多实用技巧
12.1 目录(Table of Contents)
许多Markdown渲染器支持自动生成目录。通常,你只需要在文档中添加 [TOC] 或 {{TOC}}(具体取决于平台)即可。
12.2 注释
Markdown本身没有官方的注释语法,但可以通过一些技巧实现:
- HTML注释:
<!-- 这是一个HTML注释,在渲染时不会显示 --> - 链接引用注释:
[//]: # (这是一个链接引用注释,在渲染时不会显示)
12.3 嵌入外部内容
某些平台支持嵌入外部内容,如YouTube视频、Tweet等。这通常通过特定的语法或HTML <iframe> 实现。
12.4 自定义CSS样式
如果你将Markdown转换为HTML,可以通过自定义CSS文件来控制最终的显示效果。
<link rel="stylesheet" href="custom.css">
十三、版本控制与协作
Markdown文件非常适合与Git等版本控制系统配合使用,因为它们是纯文本文件,易于进行版本比较和合并。
- Git: 使用Git管理Markdown文档的版本历史。
- GitHub/GitLab: 在这些平台上,Markdown文件会被自动渲染,方便团队协作和文档分享。
十四、Q&A
Q1: 为什么我的表格显示不正确?
A: 检查以下几点:
- 表头和内容行的列数是否一致
- 分隔行是否正确(至少三个短横线)
- 管道符
|是否正确对齐
Q2: 如何在代码块中显示反引号?
A: 使用四个反引号包围三个反引号:
代码内容
Q3: 为什么链接无法正常工作?
A: 检查以下几点:
- URL是否完整(包含协议如http://或https://)
- 方括号和圆括号是否正确配对
- 特殊字符是否需要转义
Q4: 如何在列表中包含多个段落?
A: 使用适当的缩进:
1. 第一项
这是第一项的第二段。
2. 第二项
Q5: 数学公式不显示怎么办?
A: 确认平台是否支持数学公式,如果支持,检查:
- 公式语法是否正确
- 是否使用了正确的分隔符( 或 或 或$)
- 特殊字符是否需要转义
结语
Markdown作为一种简洁而强大的标记语言,已经成为技术文档、博客写作和知识管理的标准工具。通过掌握本文介绍的语法和技巧,你可以高效地创建格式优美、结构清晰的文档。
记住,好的Markdown文档不仅仅是语法的正确使用,更重要的是内容的组织和表达。多练习、多实践,你会发现Markdown的魅力远不止于此。
在实际使用中,建议从基础语法开始,逐步掌握高级特性。不同平台对Markdown的支持程度不同,要根据具体使用场景选择合适的语法特性。
希望这份完整的Markdown语法指南能够帮助你在技术写作的道路上更进一步!如果你有任何问题或建议,欢迎在评论区交流讨论。让我们一起在技术分享的路上越走越远!
关注我,获取更多技术干货! 👍
1762

被折叠的 条评论
为什么被折叠?



