Markdown 教程
这个 Markdown 示例展示了如何编写 Markdown 文件。本文档集成了核心语法和扩展(GFM)。
块级元素
段落和换行
段落
HTML 标签:<p>
一个或多个空行。(只包含空格或制表符的行会被视为空行。)
代码:
这段文字将会在同一行。
这是第二个段落。预览:
这段文字将会 在同一行。
这是第二个段落。
换行
HTML 标签:<br />
以两个或多个空格结束一行。
代码:
这段文字将不会在同一行。预览:
这段文字将不会
在同一行。
标题
Markdown 支持两种风格的标题:Setext 和 atx。
Setext
HTML 标签:<h1>, <h2>
“下划线”形式,使用任意数量的等号 (=) 表示 <h1>,破折号 (-) 表示 <h2>。
代码:
这是一个 H1=============这是一个 H2-------------预览:
这是一个 H1
这是一个 H2
atx
HTML 标签:<h1>, <h2>, <h3>, <h4>, <h5>, <h6>
在行首使用 1-6 个井号 (#),对应 <h1> - <h6>。
代码:
# 这是一个 H1## 这是一个 H2###### 这是一个 H6预览:
这是一个 H1
这是一个 H2
这是一个 H6
(可选)你可以“闭合” atx 风格的标题。闭合的井号数量不需要匹配用于开启标题的井号数量。
代码:
# 这是一个 H1 ### 这是一个 H2 ##### 这是一个 H3 ######预览:
这是一个 H1
这是一个 H2
这是一个 H3
引用块
HTML 标签:<blockquote>
Markdown 使用类似电子邮件的 > 字符来进行块引用。如果你对文本进行硬换行,并在每一行前面放一个 >,效果看起来最好。
代码:
> 这是一个包含两个段落的引用块。Lorem ipsum dolor sit amet,> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.>> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse> id sem consectetuer libero luctus adipiscing.预览:
这是一个包含两个段落的引用块。Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
Markdown 允许你偷懒,只在硬换行段落的第一行前面放 >。
代码:
> 这是一个包含两个段落的引用块。Lorem ipsum dolor sit amet,consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisseid sem consectetuer libero luctus adipiscing.预览:
这是一个包含两个段落的引用块。Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
引用块可以嵌套(即引用块中包含引用块),只需添加额外级别的 >。
代码:
> 这是引用的第一层级。>> > 这是嵌套的引用块。>> 回到第一层级。预览:
这是引用的第一层级。
这是嵌套的引用块。
回到第一层级。
引用块可以包含其他 Markdown 元素,包括标题、列表和代码块。
代码:
> ## 这是一个标题。>> 1. 这是第一个列表项。> 2. 这是第二个列表项。>> 这里有一些示例代码:>> return shell_exec("echo $input | $markdown_script");预览:
这是一个标题。
- 这是第一个列表项。
- 这是第二个列表项。
这里有一些示例代码:
return shell_exec("echo $input | $markdown_script");
列表
Markdown 支持有序(编号)和无序(项目符号)列表。
无序列表
HTML 标签:<ul>
无序列表使用星号 (*)、加号 (+) 和连字符 (-)。
代码:
* 红色* 绿色* 蓝色预览:
- 红色
- 绿色
- 蓝色
等同于:
代码:
+ 红色+ 绿色+ 蓝色以及:
代码:
- 红色- 绿色- 蓝色有序列表
HTML 标签:<ol>
有序列表使用数字后跟一个英文句点:
代码:
1. Bird2. McHale3. Parish预览:
- Bird
- McHale
- Parish
有时写类似下面这样的话,可能会意外触发有序列表:
代码:
1986. 这是一个伟大的赛季。预览:
- 这是一个伟大的赛季。
你可以使用反斜杠转义 (\) 句点:
代码:
1986\. 这是一个伟大的赛季。预览:
1986. 这是一个伟大的赛季。
缩进
引用块
要将引用块放入列表项中,引用块的 > 分隔符需要缩进:
代码:
* 带有引用块的列表项:
> 这是一个在列表项 > 里面的引用块。预览:
-
带有引用块的列表项:
这是一个在列表项 里面的引用块。
代码块
要将代码块放入列表项中,代码块需要缩进两次 —— 8 个空格或两个制表符:
代码:
* 带有代码块的列表项:
<代码写在这里>预览:
-
带有代码块的列表项:
<代码写在这里>
嵌套列表
代码:
* A * A1 * A2* B* C预览:
- A
- A1
- A2
- B
- C
代码块
HTML 标签:<pre>
将代码块的每一行至少缩进 4 个空格或 1 个制表符。
代码:
这是一个普通段落:
这是一个代码块。预览:
这是一个普通段落:
这是一个代码块。一个代码块会一直持续,直到遇到没有缩进的行(或文章结尾)。
在代码块内,和号 (&) 和尖括号 (< 和 >) 会自动转换为 HTML 实体。
代码:
<div class="footer"> © 2004 Foo Corporation </div>预览:
<div class="footer"> © 2004 Foo Corporation</div>以下部分的“围栏代码块”和“语法高亮”是扩展功能,你可以使用其他方式来编写代码块。
围栏代码块
只需将你的代码包裹在 ``` 中(如下所示),你就不需要将其缩进四个空格。
代码:
这里是一个示例:
```function test() { console.log("注意到这个函数前面的空行了吗?");}```预览:
这里是一个示例:
function test() { console.log("注意到这个函数前面的空行了吗?");}语法高亮
在你的围栏代码块中,添加一个可选的语言标识符,我们将通过语法高亮来渲染它(支持的语言)。
代码:
```rubyrequire 'redcarpet'markdown = Redcarpet.new("Hello World!")puts markdown.to_html```预览:
require 'redcarpet'markdown = Redcarpet.new("Hello World!")puts markdown.to_html水平分割线
HTML 标签:<hr />
在单独的一行上放置三个或更多的连字符 (-)、星号 (*) 或下划线 (_)。你可以在连字符或星号之间使用空格。
代码:
* * *********- - ----------------------------------------___预览:
表格
HTML 标签:<table>
这是一个扩展功能。
使用竖线 (|) 分隔列,使用破折号 (-) 分隔表头,并使用冒号 (:) 进行对齐。
最外层的竖线 (|) 和对齐方式是可选的。每个单元格至少有 3 个分隔符用于分隔表头。
代码:
| 左对齐 | 居中对齐 | 右对齐 ||:-----|:------:|------:||aaa |bbb |ccc ||ddd |eee |fff |
A | B---|---123|456
A |B--|--12|45预览:
| 左对齐 | 居中对齐 | 右对齐 |
|---|---|---|
| aaa | bbb | ccc |
| ddd | eee | fff |
| A | B |
|---|---|
| 123 | 456 |
| A | B |
|---|---|
| 12 | 45 |
行内元素
链接
HTML 标签:<a>
Markdown 支持两种样式的链接:内联和引用。
内联
内联链接格式如下:[链接文本](URL "标题")
标题是可选的。
代码:
这是一个[内联链接示例](http://example.com/ "标题")。
[这个链接](http://example.net/)没有 title 属性。预览:
这是一个内联链接示例。
这个链接没有 title 属性。
如果你要引用同一台服务器上的本地资源,可以使用相对路径:
代码:
详情请参阅我的[关于](/about/)页面。预览:
详情请参阅我的关于页面。
引用
你可以预定义链接引用。格式如下:[id]: URL "标题"
标题也是可选的。然后你引用该链接,格式如下:[链接文本][id]
代码:
[id]: http://example.com/ "这里是可选的标题"这是一个[引用样式链接示例][id]。预览:
这是一个引用样式链接示例。
即:
- 包含链接标识符的方括号(不区分大小写,可以选择从左边距开始使用最多三个空格缩进);
- 后跟一个冒号;
- 后跟一个或多个空格(或制表符);
- 后跟链接的 URL;
- 链接 URL 可以(可选地)用尖括号括起来。
- (可选)后跟链接的 title 属性,用双引号或单引号括起来,或者用括号括起来。
以下三个链接定义是等效的:
代码:
[foo]: http://example.com/ "这里是可选的标题"[foo]: http://example.com/ '这里是可选的标题'[foo]: http://example.com/ (这里是可选的标题)[foo]: <http://example.com/> "这里是可选的标题"使用一组空的方括号时,链接文本本身被用作名称。
代码:
[Google]: http://google.com/[Google][]预览:
强调
HTML 标签:<em>, <strong>
Markdown 将星号 (*) 和下划线 (_) 视为强调的指示符。单个分隔符将变成 <em>;双分隔符将变成 <strong>。
代码:
*单星号*
_单下划线_
**双星号**
__双下划线__预览:
单星号
单下划线
双星号
双下划线
但是如果你用空格包围 * 或 _,它将被视为字面意义上的星号或下划线。
你可以使用反斜杠对其进行转义:
代码:
\*这段文字被字面意义上的星号包围\*预览:
*这段文字被字面意义上的星号包围*
代码
HTML 标签:<code>
使用反引号 (`) 将其包裹。
代码:
使用 `printf()` 函数。预览:
使用 printf() 函数。
要在代码段中包含字面意义的反引号字符,你可以使用多个反引号作为开启和关闭的分隔符:
代码:
``这里有一个字面意义上的反引号 (`)。``预览:
这里有一个字面意义上的反引号 (`)。
围绕代码段的反引号分隔符可以包含空格 —— 开启后一个,关闭前一个。这允许你在代码段的开头或结尾放置字面意义的反引号字符:
代码:
代码段中的单反引号:`` ` ``
代码段中用反引号分隔的字符串:`` `foo` ``预览:
代码段中的单反引号:`
代码段中用反引号分隔的字符串:`foo`
图片
HTML 标签:<img />
Markdown 使用类似于链接语法的图片语法,允许两种样式:内联和引用。
内联
内联图片语法如下:
标题是可选的。
代码:

预览:
即:
- 一个感叹号:!;
- 后跟一组方括号,包含图片的 alt 属性文本;
- 后跟一组括号,包含图片的 URL 或路径,以及一个可选的 title 属性,用双引号或单引号括起来。
引用
引用样式图片语法如下:![替代文本][id]
代码:
[img id]: https://s2.loli.net/2024/08/20/5fszgXeOxmL3Wdv.webp "可选标题属性"![替代文本][img id]预览:

删除线
HTML 标签:<del>
这是一个扩展功能。
GFM 添加了对文本添加删除线的语法。
代码:
~~错误的文本。~~预览:
错误的文本。
其他
自动链接
Markdown 支持一种创建 URL 和电子邮件地址的“自动”链接的快捷方式:只需用尖括号将 URL 或电子邮件地址括起来。
代码:
<http://example.com/>
<address@example.com>预览:
GFM 会自动链接标准 URL。
代码:
https://github.com/emn178/markdown预览:
https://github.com/emn178/markdown
反斜杠转义
Markdown 允许你使用反斜杠转义来生成字面字符,这些字符在 Markdown 的格式语法中原本具有特殊含义。
代码:
\*字面意义上的星号\*预览:
*字面意义上的星号*
Markdown 为以下字符提供了反斜杠转义:
代码:
\ 反斜杠` 反引号* 星号_ 下划线{} 花括号[] 方括号() 圆括号# 井号+ 加号- 减号 (连字符). 英文句点! 感叹号内联 HTML
对于未被 Markdown 语法覆盖的任何标记,你只需使用 HTML 本身。无需添加前缀或定界符来指示你要从 Markdown 切换到 HTML;你只需直接使用这些标签即可。
代码:
这是一个普通段落。
<table> <tr> <td>Foo</td> </tr></table>
这是另一个普通段落。预览:
这是一个普通段落。
| Foo |
这是另一个普通段落。
请注意,在块级 HTML 标签内不处理 Markdown 格式语法。
与块级 HTML 标签不同,Markdown 语法会在行内级 (span-level) 标签内进行处理。
代码:
<span>**工作**</span>
<div> **不工作**</div>预览:
工作
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时