Markdown 语法完全指南:从入门到精通

一份全面的Markdown语法教程,包含基础语法、高级特性以及HTML元素的样式展示(本文由deepseek生成,主要是为了方便自己使用)

Markdown 语法完全指南:从入门到精通

什么是 Markdown?

Markdown 是一种轻量级标记语言,由 John Gruber 于2004年创建。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML。本文是一份完整的 Markdown 教程,将带你从基础到进阶,掌握所有常用语法。

核心优势:

  • 📝 专注写作:无需关心排版格式
  • 🔄 平台通用:GitHub、博客、笔记软件都支持
  • 📱 纯文本:任何编辑器都能打开
  • 🔧 可转换:轻松转为 HTML、PDF 等格式

基础语法

标题语法

标题是文档结构的骨架,Markdown 提供了六级标题,对应 HTML 的 <h1><h6> 标签。

语法示例:

1
2
3
4
5
6
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

实际效果:

一级标题

二级标题

三级标题

四级标题

五级标题

六级标题

段落与换行

段落由一个或多个连续的文本行组成,段落之间通过空行分隔。

语法示例:

1
2
3
4
5
这是第一段落。Markdown 中的段落不需要特殊标记,
只需要在段落之间用空行分隔即可。

这是第二段落。如果你想要手动换行(<br>标签),
可以在行末添加两个空格然后回车。

实际效果:

这是第一段落。Markdown 中的段落不需要特殊标记,只需要在段落之间用空行分隔即可。

这是第二段落。如果你想要手动换行(
标签),
可以在行末添加两个空格然后回车。

文本强调

语法示例:

1
2
3
4
- *斜体* 或 _斜体_
- **粗体** 或 __粗体__
- ***粗斜体*** 或 ___粗斜体___
- ~~删除线~~

实际效果:

  • 斜体斜体
  • 粗体粗体
  • 粗斜体粗斜体
  • 删除线

列表

无序列表

语法示例:

1
2
3
4
5
6
7
8
- 项目1
- 项目2
  - 子项目2.1
  - 子项目2.2
- 项目3

* 也可以用星号
+ 或者加号

实际效果:

  • 项目1
  • 项目2
    • 子项目2.1
    • 子项目2.2
  • 项目3

有序列表

语法示例:

1
2
3
4
5
1. 第一步
2. 第二步
   1. 第二步的子步骤
   2. 第二步的另一个子步骤
3. 第三步

实际效果:

  1. 第一步
  2. 第二步
    1. 第二步的子步骤
    2. 第二步的另一个子步骤
  3. 第三步

链接

语法示例:

1
2
3
4
5
6
7
8
9
[普通链接](https://www.example.com)

[带标题的链接](https://www.example.com "鼠标悬停时显示的标题")

<https://www.example.com> 或 <email@example.com>

[引用式链接][1]

[1]: https://www.example.com "可选标题"

实际效果:

图片

语法示例:

1
2
3
4
5
![替代文本](https://via.placeholder.com/150 "可选标题")

![带引用的图片][logo]

[logo]: https://via.placeholder.com/150 "Logo"

实际效果: 替代文本

引用

语法示例:

1
2
3
4
5
6
> 这是一段引用文本。
> 可以跨越多行。
>
> > 嵌套引用
>
> **注意:** 引用内可以使用其他 Markdown 语法。

实际效果:

这是一段引用文本。 可以跨越多行。

嵌套引用

注意: 引用内可以使用其他 Markdown 语法。

代码

语法示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
行内代码:使用 `console.log('Hello World')` 输出。

代码块:

```javascript
function greet(name) {
    return `Hello, ${name}!`;
}
console.log(greet('World'));
```

实际效果:

行内代码:使用 console.log('Hello World') 输出。

代码块:

1
2
3
4
function greet(name) {
    return `Hello, ${name}!`;
}
console.log(greet('World'));

分隔线

语法示例:

1
2
3
4
5
使用三个或更多的星号、减号或下划线创建分隔线:

---
***
___

实际效果:





进阶语法

表格

语法示例:

1
2
3
4
5
| 左对齐 | 居中对齐 | 右对齐 |
|:-------|:--------:|-------:|
| 单元格1 | 单元格2  | 单元格3 |
| 文本    | 文本     | 文本    |
| 较长文本 | 较长文本 | 较长文本 |

实际效果:

左对齐居中对齐右对齐
单元格1单元格2单元格3
文本文本文本
较长文本较长文本较长文本

脚注

语法示例:

1
2
3
4
5
这里有一个脚注[^1],这里还有一个[^2]。

[^1]: 这是第一个脚注的内容。
[^2]: 第二个脚注可以包含多行内容。
    缩进两格可以继续写。

实际效果:

这里有一个脚注1,这里还有一个2

任务列表

语法示例:

1
2
3
4
5
- [x] 已完成任务
- [ ] 未完成任务
- [ ] 待办事项1
  - [x] 子任务1(已完成)
  - [ ] 子任务2

实际效果:

  • 已完成任务
  • 未完成任务
  • 待办事项1
    • 子任务1(已完成)
    • 子任务2

定义列表

语法示例:

1
2
3
4
5
6
Markdown
:   一种轻量级标记语言,由 John Gruber 创建。

HTML
:   超文本标记语言,是构建网页的标准语言。
    CSS 和 JavaScript 通常与 HTML 一起使用。

实际效果:

Markdown
一种轻量级标记语言,由 John Gruber 创建。
HTML
超文本标记语言,是构建网页的标准语言。 CSS 和 JavaScript 通常与 HTML 一起使用。

自动链接

语法示例:

1
2
3
网址自动转换:https://www.example.com

邮箱自动转换:contact@example.com

实际效果: 网址自动转换:https://www.example.com

邮箱自动转换:[email protected]

转义字符

语法示例:

1
2
3
4
5
想要显示特殊字符时,使用反斜杠转义:

\*不会被解析为强调\*
\[不会成为链接\]
\`不会成为代码\`

实际效果: *不会被解析为强调*

\[不会成为链接\]

`不会成为代码`


HTML 元素样式展示

Markdown 完全兼容 HTML,可以在 Markdown 文档中直接使用 HTML 标签。

文本格式化标签

语法示例:

1
2
3
4
<p>这是一个普通的段落。</p>
<p><strong>加粗文本</strong><em>斜体文本</em> 可以通过HTML实现。</p>
<p><ins>插入文本</ins><del>删除文本</del> 可以表示修订。</p>
<p><small>小号文本</small><mark>高亮文本</mark> 也很常用。</p>

实际效果:

这是一个普通的段落。

加粗文本斜体文本 可以通过HTML实现。

插入文本删除文本 可以表示修订。

小号文本高亮文本 也很常用。

上标和下标

语法示例:

1
2
水分子:H<sub>2</sub>O
爱因斯坦质能方程:E = mc<sup>2</sup>

实际效果:

水分子:H2O
爱因斯坦质能方程:E = mc2

键盘和变量标签

语法示例:

1
2
<kbd>Ctrl</kbd> + <kbd>C</kbd> 复制文本。
<var>变量名</var> 表示变量。

实际效果:

Ctrl + C 复制文本。
变量名 表示变量。

缩写和定义

语法示例:

1
2
3
<abbr title="Cascading Style Sheets">CSS</abbr> 用于样式设计。

<dfn>Markdown</dfn> 是一种轻量级标记语言。

实际效果:

CSS 用于样式设计。

Markdown 是一种轻量级标记语言。

引用和引文

语法示例:

1
2
3
<cite>《设计模式》</cite> 是一本经典的编程书籍。

<q>引用文本</q> 用于行内引用。

实际效果:

《设计模式》 是一本经典的编程书籍。

引用文本 用于行内引用。

地址和联系信息

语法示例:

1
2
3
4
<address>
    作者:张三<br>
    邮箱:<a href="mailto:[email protected]">[email protected]</a>
</address>

实际效果:

作者:张三
邮箱:[email protected]

最佳实践与技巧

代码块语法高亮

在代码块后指定语言,可以获得语法高亮:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
```python
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
```

```javascript
// 斐波那契数列
const fibonacci = (n) => {
    if (n <= 1) return n;
    return fibonacci(n-1) + fibonacci(n-2);
};
```

实际效果:

1
2
3
4
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
1
2
3
4
5
// 斐波那契数列
const fibonacci = (n) => {
    if (n <= 1) return n;
    return fibonacci(n-1) + fibonacci(n-2);
};

内嵌 HTML 的高级用法

1
2
3
4
5
6
7
8
<div style="background-color: #f0f0f0; padding: 10px; border-radius: 5px;">
    <h4 style="color: #333;">自定义样式块</h4>
    <p style="color: #666;">这个区块使用了内联CSS样式。</p>
    <ul>
        <li>可以包含任何HTML元素</li>
        <li>支持自定义样式</li>
    </ul>
</div>

实际效果:

自定义样式块

这个区块使用了内联CSS样式。

  • 可以包含任何HTML元素
  • 支持自定义样式

表格的高级用法

1
2
3
4
5
6
| 特性 | 语法 | 示例 | 优先级 |
|:-----|:----:|:----:|-------:|
| 标题 | `#` | # H1 | 最高 |
| 列表 | `-` | - 项目 | 高 |
| 链接 | `[]()` | [文本](url) | 中 |
| 图片 | `![]()` | ![alt](src) | 低 |

实际效果:

特性语法示例优先级
标题## H1最高
列表-- 项目
链接[]()文本
图片![]()alt

复杂列表嵌套

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
1. **前端开发**
   - HTML5
     * 语义化标签
     * 表单增强
   - CSS3
     1. Flexbox布局
     2. Grid布局
   - JavaScript
     * ES6+新特性
     * 框架
       + React
       + Vue
       + Angular

2. **后端开发**
   - Python
     * Django
     * Flask
   - Java
     * Spring Boot
     * Hibernate

实际效果:

  1. 前端开发

    • HTML5
      • 语义化标签
      • 表单增强
    • CSS3
      1. Flexbox布局
      2. Grid布局
    • JavaScript
      • ES6+新特性
      • 框架
        • React
        • Vue
        • Angular
  2. 后端开发

    • Python
      • Django
      • Flask
    • Java
      • Spring Boot
      • Hibernate

常见问题解答

Q1: Markdown 文件应该使用什么扩展名?

A: 通常使用 .md.markdown 扩展名。

Q2: 如何在不同平台保持样式一致?

A: Markdown 关注内容结构,样式依赖于具体的渲染器。要保证一致性,可以使用标准语法,并配合 CSS 样式表。

Q3: Markdown 支持图片尺寸调整吗?

A: 标准 Markdown 不支持,但可以使用 HTML 的 <img> 标签:

1
<img src="image.jpg" width="300" height="200" alt="描述">

Q4: 如何在表格中换行?

A: 可以使用 HTML 的 <br> 标签:

1
2
3
| 列1 | 列2 |
|-----|-----|
| 第一行<br>第二行 | 内容 |

Q5: 如何创建目录?

A: 一些平台自动生成目录,也可以手动创建:

1
2
3
4
- [一、什么是 Markdown?](#一什么是-markdown)
- [二、基础语法](#二基础语法)
  - [1. 标题语法](#1-标题语法)
  - [2. 段落与换行](#2-段落与换行)

总结

本教程涵盖了 Markdown 的核心语法和高级特性,包括:

  • 基础语法:标题、段落、强调、列表、链接、图片、引用、代码
  • 进阶语法:表格、脚注、任务列表、定义列表、自动链接
  • HTML 元素:各种文本格式化标签、特殊元素的使用
  • 最佳实践:代码高亮、复杂嵌套、高级表格技巧

掌握这些语法后,你可以:

  • 编写结构清晰的文档和笔记
  • 创建美观的自述文件和文档
  • 在 GitHub、GitLab 等平台上高效协作
  • 使用静态站点生成器(如 Hugo、Jekyll)构建博客

记住,Markdown 的核心理念是让写作更专注于内容本身,而不是格式。随着练习,你会发现自己能越来越流畅地使用这些语法。


Happy Markdown Writing! 📝


  1. 这是第一个脚注的内容。 ↩︎

  2. 第二个脚注可以包含多行内容。 缩进两格可以继续写。 ↩︎

comments powered by Disqus