Markdown 教程
这是一个展示如何编写 Markdown 文件的示例。本文整合了核心语法和扩展(GMF)。
块级元素
段落和换行
段落
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 使用电子邮件风格的 大于号(>) 字符来进行引用。最好对文本进行硬换行,并在每一行前加一个 > 。
代码:
> 这是一个包含两个段落的引用块。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. 鸟2. McHale3. Parish预览:
- 鸟
- 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/)没有标题属性。预览:
这是一个示例链接。
这个链接没有标题属性。
如果你引用的是同一服务器上的本地资源,可以使用相对路径:
代码:
详情请参阅我的[关于页面](/about/)。预览:
详情请参阅我的关于页面。
引用链接
你可以预先定义链接引用。格式如下:[id]: URL "标题"
标题也是可选的。然后用以下格式引用链接:[链接文本][id]
代码:
[id]: http://example.com/ "可选标题"这是一个[id]引用式链接。预览:
这是一个id引用式链接。
也就是说:
- 包含链接标识符的方括号(不区分大小写,可选使用最多三个空格从左边界缩进);
- 后面跟着一个冒号;
- 后面跟着一个或多个空格(或制表符);
- 后面跟着链接的 URL;
- 链接 URL 可以选择用尖括号包围;
- 可选地,后面跟着链接的标题属性,可以用双引号、单引号或括号括起来。
以下三个链接定义是等价的:
代码:
[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 或路径,以及可选的双引号或单引号括起来的选择性标题属性。
引用链接
引用式图片语法如下:![Alt 文本][id]
代码:
[img id]: https://s2.loli.net/2024/08/20/5fszgXeOxmL3Wdv.webp "可选标题属性"![Alt 文本][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>**生效**</span>
<div> **不生效**</div>预览:
生效
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时






粤公网安备44200102445710号