Markdown 教程
一个 markdown 示例展示了如何编写 markdown 文件。本文档整合了核心语法和扩展(GMF)。
块状元素
段落与换行
段落
HTML标签: <p>
一行或多行空行。(空行是指只包含空格或制表符的行,也被视为空行。)
代码:
This will beinline.
This is second paragraph.预览:
这将是 内线。
这是第二段。
换行
HTML标签: <br />
在一行的末尾加上两个或更多空格。
代码:
This will be notinline.预览:
这不会 是内线的。
头部
Markdown 支持两种头部样式,分别是 Setext 和 atx。
正文
HTML 标签: <h1>, <h2>
使用 等号 (=) 作为 <h1>,使用 短横线 (-) 作为 <h2> 来“下划线”,数量不限。
代码:
This is an H1=============This is an H2-------------预览:
这是 H1
这是 H2
atx
HTML 标签: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
在行首使用 1-6 个 井号 (#),对应 <h1> - <h6>。
代码:
# This is an H1## This is an H2###### This is an H6预览:
这是 H1
这是 H2
这是 H6
可选地,你可以“关闭”atx 风格的标题。关闭的哈希不需要与开启标题时使用的井号数量匹配。
代码:
# This is an H1 ### This is an H2 ##### This is an H3 ######预览:
这是 H1
这是 H2
这是 H3
引用块
HTML标签: <blockquote>
Markdown 使用电子邮件风格的 > 字符来表示块引用。如果你在每行前都加上 > 并且强制换行,效果最好。
代码:
> This is a blockquote with two paragraphs, 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.预览:
This is a blockquote with two paragraphs. 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 允许你偷懒,只需在硬换行段落的第一行前加上 >。
代码:
> This is a blockquote with two paragraphs. 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.预览:
This is a blockquote with two paragraphs. 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.
通过添加额外级别的 >,引用可以嵌套(即在引用中的引用)。
代码:
> This is the first level of quoting.>> > This is nested blockquote.>> Back to the first level.预览:
这是第一层引用。
这是嵌套引用。
回到第一层。
引用块可以包含其他 Markdown 元素,包括标题、列表和代码块。
代码:
> ## This is a header.>> 1. This is the first list item.> 2. This is the second list item.>> Here's some example 代码:>> return shell_exec("echo $input | $markdown_script");预览:
这是一个标题。
- 这是第一个清单项目。
- 这是第二个清单项目。
这里有一些示例代码:
return shell_exec("echo $input | $markdown_script");
列表
Markdown 支持有序(编号)和无序(项目符号)列表。
无序
HTML标签: <ul>
无序列表使用 星号(*)、加号(+) 和 连字符(-)。
代码:
* Red* Green* Blue预览:
- 红色
- 绿色
- 蓝色
等价于:
代码:
+ Red+ Green+ Blue以及:
代码:
- Red- Green- Blue有序列表
HTML标签: <ol>
有序列表使用数字后跟句点:
代码:
1. Bird2. McHale3. Parish预览:
- 鸟类
- 麦克黑尔
- 教区
有可能不小心触发有序列表,通过写类似这样的内容:
代码:
1986. What a great season.预览:
- 多么精彩的赛季。
你可以用 反斜杠转义 () 句号:
代码:
1986\. What a great season.预览:
1986. 多么精彩的赛季。
凹陷
引用
要在列表项中插入引用块,需要缩进引用块的 > 分隔符:
代码:
* A list item with a blockquote:
> This is a blockquote > inside a list item.预览:
-
一个带有引用块的列表项目:
这是一个引用 在一个清单项里。
代码块
要在列表项中放置代码块,代码块需要缩进两次——8 个空格或两个制表符:
代码:
* A list item with a code block:
<code goes here>预览:
-
一个带有代码块的列表项:
<code goes here>
嵌套列表
代码:
* A * A1 * A2* B* C预览:
- A
- A1
- A2
- B
- C
代码块
HTML标签: <pre>
将代码块的每一行至少缩进 4 个空格 或 1 个制表符。
代码:
This is a normal paragraph:
This is a code block.预览:
这是一段正常的段落:
This is a code block.代码块会一直继续,直到它遇到未缩进的行(或文章的结尾)。
在代码块中,和号 (&) 和尖括号 (< 和 >) 会自动转换为 HTML 实体。
代码:
<div class="footer"> © 2004 Foo Corporation </div>预览:
<div class="footer"> © 2004 Foo Corporation</div>接下来的部分是“围栏代码块”和“语法高亮”是扩展,你可以用另一种方式来编写代码块。
围栏代码块
只需将你的代码用 ``` 包起来(如下所示),就不需要缩进四个空格了。
代码:
Here's an example:
```function test() { console.log("notice the blank line before this function?");}```预览:
举个例子:
function test() { console.log("notice the blank line before this function?");}语法高亮
在你的围栏区块中,添加一个可选的语言标识符,我们会通过语法高亮来处理 (支持语言)。
代码:
```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 个分隔符 用于分隔表头。
代码:
| Left | Center | Right ||:-----|:------:|------:||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 "标题")
标题是可选的。
代码:
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.预览:
这是一个 示例 内联链接。
这个链接 没有标题属性。
如果你引用的是同一服务器上的本地资源,可以使用相对路径:
代码:
See my [About](/about/) page for details.预览:
查看我的关于页面以获取详细信息。
参考
你可以预定义链接引用。格式如下:[id]: URL "Title"
标题也是可选的。然后你引用链接时,格式如下:[链接文本][id]
代码:
[id]: http://example.com/ "Optional Title Here"This is [an example][id] reference-style link.预览:
[id]: http://example.com/ “可选标题在此”
这是 [一个示例][id] 引用风格链接。
即:
- 方括号中包含链接标识符(不区分大小写,可选择性地从左边距缩进最多三个空格);
- 后跟冒号;
- 后跟一个或多个空格(或制表符);
- 后跟链接的 URL;
- 链接 URL 可选择性地用尖括号括起。
- 可选择性地后跟链接的标题属性,标题属性用双引号或单引号括起,或用括号括起。
以下三个链接定义是等效的:
代码:
[foo]: http://example.com/ "Optional Title Here"[foo]: http://example.com/ 'Optional Title Here'[foo]: http://example.com/ (Optional Title Here)[foo]: <http://example.com/> "Optional Title Here"使用一组空白的方括号,链接文本本身作为名称。
代码:
[Google]: http://google.com/[Google][]预览:
强调
HTML 标签: <em>, <strong>
Markdown 将**星号()和划线(_)**视为强调的指示。一个分隔符为<em>;_double delimiters_为 <strong>。
代码:
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__预览:
单个星号
单个下划线
双星号
双下划线
但是,如果你在 * 或 _ 周围加上空格,它会被视为字面上的星号或下划线。
你可以使用反斜杠对它进行转义:
代码:
\*this text is surrounded by literal asterisks\*预览:
*这段文字被字面上的星号包围*
代码
HTML标签: <code>
用 **反引号 (`) ** 包裹它。
代码:
Use the `printf()` function.预览:
使用 printf() 函数。
要在代码片段中包含一个字面上的反引号字符,你可以使用 多个反引号 作为起始和结束分隔符:
代码:
``There is a literal backtick (`) here.``预览:
There is a literal backtick (`) here.
围绕代码片段的反引号定界符可以包含空格——在开头之后一个,在结尾之前一个。这允许你在代码片段的开头或结尾放置字面反引号字符:
代码:
A single backtick in a code span: `` ` ``
A backtick-delimited string in a code span: `` `foo` ``预览:
代码段中的单个反引号:`
代码段中由反引号分隔的字符串:`foo`
图片
HTML标签: <img />
Markdown 使用一种图像语法,其目的是类似链接的语法,允许两种样式:内联和引用。
内联
内联图像语法如下所示:
Title 是可选的。
代码:

预览:


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

删除线
HTML 标签:<del>
它是一个扩展。
GFM 添加了用于删除线文本的语法。
代码:
~~Mistaken text.~~预览:
发错了短信。
其他
自动链接
Markdown 支持一种快捷方式来创建 URL 和电子邮件地址的“自动”链接:只需将 URL 或电子邮件地址用尖括号括起来。
代码:
<http://example.com/>
<address@example.com>预览:
GFM会自动链接标准网址。
代码:
https://github.com/emn178/markdown预览:
https://github.com/emn178/markdown
反斜杠转义
Markdown 允许你使用反斜杠转义来生成在 Markdown 格式语法中本会有特殊含义的字符。
代码:
\*literal asterisks\*预览:
*字面上的星号*
Markdown 为以下字符提供反斜杠转义:
代码:
\ backslash` backtick* asterisk_ underscore{} curly braces[] square brackets() parentheses# hash mark+ plus sign- minus sign (hyphen). dot! exclamation mark内联 HTML
对于任何 Markdown 语法未涵盖的标记,你只需直接使用 HTML 本身。无需在前面加前缀或使用分隔符来表示你从 Markdown 切换到 HTML;直接使用标签即可。
代码:
This is a regular paragraph.
<table> <tr> <td>Foo</td> </tr></table>
This is another regular paragraph.预览:
这是一个普通的段落。
| 棪 |
这是另一个普通段落。
请注意,Markdown 格式语法 不会在块级 HTML 标签内被处理。
与块级 HTML 标签不同,Markdown 语法 会在行内标签内被处理。
代码:
<span>**Work**</span>
<div> **No Work**</div>预览:
工作
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时








