Markdown 教程
这是一个 Markdown 示例,展示了如何编写 Markdown 文件。本文档整合了核心语法和扩展语法(GFM)。
块级元素
段落和换行
段落
HTML 标签:<p>
一个或多个空行。(空行是指只包含空格或制表符的行。)
代码:
这将与上一行在同一行。
这是第二段。预览:
这将与 上一行在同一行。
这是第二段。
换行
HTML 标签:<br />
在行末添加两个或更多空格。
代码:
这将不会与上一行在同一行。预览:
这将不会与
上一行在同一行。
标题
Markdown 支持两种标题样式:Setext 和 atx。
Setext
HTML 标签:<h1>、<h2>
使用等号(=) 作为 <h1> 下划线,连字符(-) 作为 <h2> 下划线,数量不限。
代码:
这是一级标题=============这是二级标题-------------预览:
这是一级标题
这是二级标题
atx
HTML 标签:<h1>、<h2>、<h3>、<h4>、<h5>、<h6>
在行首使用 1-6 个井号(#),分别对应 <h1> 到 <h6>。
代码:
# 这是一级标题## 这是二级标题###### 这是六级标题预览:
这是一级标题
这是二级标题
这是六级标题
你也可以选择”闭合” atx 样式的标题。闭合的井号不需要与开头的井号数量匹配。
代码:
# 这是一级标题 ### 这是二级标题 ##### 这是三级标题 ######预览:
这是一级标题
这是二级标题
这是三级标题
引用
HTML 标签:<blockquote>
Markdown 使用电子邮件风格的 > 字符来表示引用。如果手动换行并在每行前添加 >,效果最好。
代码:
> 这是一个包含两个段落的引用。这是一段示例文本,用于展示引用块的效果。> 你可以在这里填写实际的内容。引用块通常用于标注重要的引述或说明。>> 这是第二个段落。引用块可以包含多个段落,每个段落前都需要添加 `>` 符号。> 这样可以使引用内容在视觉上与正文区分开来。预览:
这是一个包含两个段落的引用。这是一段示例文本,用于演示引用块的写法。 你可以在这里填写实际内容。引用块通常用于标注重要的引述或说明。
这是第二个段落。引用块可以包含多个段落,每个段落前都需要添加
>符号。 这样可以使引用内容在视觉上与正文区分开来。
Markdown 允许你偷懒,只在硬换行段落的第一行前添加 >。
代码:
> 这是一个包含两个段落的引用。这是一段示例文本,用于演示引用块的写法。> 你可以在这里填写实际内容。引用块通常用于标注重要的引述或说明。
> 这是第二个段落。引用块可以包含多个段落,每个段落前都需要添加 `>` 符号。> 这样可以使引用内容在视觉上与正文区分开来。预览:
这是一个包含两个段落的引用。这是一段示例文本,用于演示引用块的写法。 你可以在这里填写实际内容。引用块通常用于标注重要的引述或说明。
这是第二个段落。引用块可以包含多个段落,每个段落前都需要添加
>符号。 这样可以使引用内容在视觉上与正文区分开来。
引用可以嵌套(即引用中的引用),通过添加更多层级的 > 实现。
代码:
> 这是第一层引用。>> > 这是嵌套的引用。>> 回到第一层。预览:
这是第一层引用。
这是嵌套的引用。
回到第一层。
引用可以包含其他 Markdown 元素,包括标题、列表和代码块。
代码:
> ## 这是一个标题。>> 1. 这是第一个列表项。> 2. 这是第二个列表项。>> 这里是一些示例代码:>> return shell_exec("echo $input | $markdown_script");预览:
这是一个标题。
- 这是第一个列表项。
- 这是第二个列表项。
这里是一些示例代码:
return shell_exec("echo $input | $markdown_script");
列表
Markdown 支持有序(编号)列表和无序(项目符号)列表。
无序列表
HTML 标签:<ul>
无序列表使用星号(*)、加号(+) 和连字符(-)。
代码:
* 红* 绿* 蓝预览:
- 红
- 绿
- 蓝
等同于:
代码:
+ 红+ 绿+ 蓝以及:
代码:
- 红- 绿- 蓝有序列表
HTML 标签:<ol>
有序列表使用数字后跟英文句点:
代码:
1. 鸟2. 麦克海尔3. 帕里什预览:
- 鸟
- 麦克海尔
- 帕里什
有时可能会意外触发有序列表,比如写类似这样的内容:
代码:
1986. 多么棒的赛季。预览:
- 多么棒的赛季。
你可以用反斜杠转义(\) 英文句点:
代码:
1986\. 多么棒的赛季。预览:
1986. 多么棒的赛季。
缩进
引用
要在列表项中放入引用,引用符号 > 需要缩进:
代码:
* 一个包含引用的列表项:
> 这是一个引用 > 在列表项内部。预览:
-
一个包含引用的列表项:
这是一个引用 在列表项内部。
代码块
要在列表项中放入代码块,代码块需要缩进两次——8 个空格或两个制表符:
代码:
* 一个包含代码块的列表项:
<code goes here>预览:
-
一个包含代码块的列表项:
<code goes here>
嵌套列表
代码:
* 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("notice the blank line before this function?");}```预览:
这是一个示例:
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 Tag: <table>
这是一个扩展语法。
用竖线 pipe (|) 分隔列, 用连字符 dashes (-) 分隔表头, 用冒号 colon (:) 表示对齐方式。
外侧的竖线 pipes (|) 和对齐方式是可选的。 每个单元格至少有 3 delimiters 来分隔表头。
代码:
| Left | Center | Right ||:-----|:------:|------:||aaa |bbb |ccc ||ddd |eee |fff |
A | B---|---123|456
A |B--|--12|45预览:
| Left | Center | Right |
|---|---|---|
| aaa | bbb | ccc |
| ddd | eee | fff |
| A | B |
|---|---|
| 123 | 456 |
| A | B |
|---|---|
| 12 | 45 |
Span Elements 行内元素
Links 链接
HTML 标签: <a>
Markdown 支持两种链接样式:行内和引用。
Inline 行内链接
行内链接格式如下: [Link Text](URL "Title")
标题是可选的。
代码:
这是一个 [示例](http://example.com/ "Title") 行内链接.
[这个链接](http://example.net/) 没有标题属性。预览:
这是一个 示例 行内链接。
这个链接 没有标题属性。
如果引用同一服务器上的本地资源,可以使用相对路径:
代码:
详情请查看我的 [关于](/about/) 页面。预览:
详情请查看我的 关于 页面。
Reference 引用链接
你可以预先定义链接引用。格式如下: [id]: URL "Title"
标题也是可选的。然后引用链接,格式如下: [Link Text][id]
代码:
[id]: http://example.com/ "可选标题"这是一个 [示例][id] 引用样式链接。预览:
这是一个 示例 引用样式链接。
即:
- 包含链接标识符的方括号 (不区分大小写, 可选择从左边距缩进最多三个空格);
- 后跟冒号;
- 后跟一个或多个空格(或制表符);
- f后跟链接的 URL;
- 链接 URL 可以选择用尖括号括起来.
- 链接 URL 可以选择用尖括号括起来.
以下三个链接定义是等价的:
代码:
[foo]: http://example.com/ "可选标题"[foo]: http://example.com/ '可选标题'[foo]: http://example.com/ (可选标题)[foo]: <http://example.com/> "可选标题"使用空的方括号,链接文字本身将作为名称。
代码:
[Google]: http://google.com/[Google][]预览:
Emphasis 强调
HTML 标签: <em>, <strong>
Markdown 将 星号 (*) 和 下划线 (_) 视为强调的指示符。 单个分隔符表示 表示 <em>; *双分隔符 表示 <strong>.
代码:
*单个星号*
_单个下划线_
**双星号**
__双下划线__预览:
单个星号
单个下划线
双星号
双下划线
但如果用空格包围 * 或 _ 它们将被视为普通的星号或下划线。
你也可以用反斜杠转义:
代码:
\*这段文字被普通星号包围\*预览:
*这段文字被普通星号包围*
Code 代码
HTML 标签: <code>
用 反引号 (`) 包裹。
代码:
使用 `printf()` 函数。代码:
使用 printf() 函数。
要在代码片段中包含字面反引号,可以使用 多个反引号 作为开始和结束分隔符:
代码:
``这里有一个字面反引号 (`) 。``预览:
这里有一个字面反引号 (`) here。
包围代码片段的反引号分隔符可以包含空格——开始后一个,结束前一个。这允许你在代码片段的开头或结尾放置字面反引号:
代码:
代码片段中的单个反引号: `` ` ``
代码片段中的反引号分隔字符串:`` `foo` ``预览:
代码片段中的单个反引号: `
代码片段中的反引号分隔字符串: `foo`
Images 图片
HTML 标签: <img />
Markdown 使用类似于链接的图片语法,支持两种样式:行内和引用。
Inline 行内图片
行内图片语法如下: 
标题是可选的。
代码:

预览:


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

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





