mobile wallpaper 1
mobile wallpaper 2
mobile wallpaper 3
mobile wallpaper 4
2480 字
7 分钟
Markdown 教程
2025-01-20

Markdown 教程#

一个 Markdown 示例,展示如何编写 Markdown 文件。本文档涵盖了核心语法和扩展语法(GMF)。

块级元素#

段落与换行#

段落#

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. 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 元素,包括标题、列表和代码块。

代码:

> ## 这是一个标题。
>
> 1. 这是第一个列表项。
> 2. 这是第二个列表项。
>
> 这是一些示例代码:
>
> return shell_exec("echo $input | $markdown_script");

预览:


这是一个标题。#

  1. 这是第一个列表项。
  2. 这是第二个列表项。

这是一些示例代码:

return shell_exec("echo $input | $markdown_script");

列表#

Markdown 支持有序(编号)和无序(项目符号)列表。

无序列表#

HTML 标签:<ul>

无序列表使用星号(*)加号(+)短横线(-)

代码:

* 红色
* 绿色
* 蓝色

预览:


  • 红色
  • 绿色
  • 蓝色

等价于:

代码:

+ 红色
+ 绿色
+ 蓝色

以及:

代码:

- 红色
- 绿色
- 蓝色

有序列表#

HTML 标签:<ol>

有序列表使用数字后跟句点:

代码:

1. 鸟
2. McHale
3. Parish

预览:


  1. McHale
  2. Parish

有时可能会意外触发有序列表,例如这样写:

代码:

1986. 多么美好的赛季。

预览:


  1. 多么美好的赛季。

你可以使用**反斜杠转义(\)**句点:

代码:

1986\. 多么美好的赛季。

预览:


1986. 多么美好的赛季。


缩进#

引用块#

要在列表项中放置引用块,引用块的 > 分隔符需要缩进:

代码:

* 一个包含引用块的列表项:
> 这是一个引用块
> 在列表项内部。

预览:

  • 一个包含引用块的列表项:

    这是一个引用块 在列表项内部。


代码块#

要在列表项中放置代码块,代码块需要缩进两次——8 个空格两个制表符

代码:

* 一个包含代码块的列表项:
<代码放在这里>

预览:

  • 一个包含代码块的列表项:

    <代码放在这里>

嵌套列表#

代码:

* A
* A1
* A2
* B
* C

预览:


  • A
    • A1
    • A2
  • B
  • C

代码块#

HTML 标签:<pre>

将块中的每行至少缩进 4 个空格1 个制表符

代码:

这是一个普通段落:
这是一个代码块。

预览:


这是一个普通段落:

这是一个代码块。

代码块会一直持续到遇到未缩进的行(或文章结尾)。

在代码块内,& 符号(&)和**尖括号(< 和 >)**会自动转换为 HTML 实体。

代码:

<div class="footer">
&copy; 2004 Foo Corporation
</div>

预览:


<div class="footer">
&copy; 2004 Foo Corporation
</div>

以下章节”围栏代码块”和”语法高亮”是扩展语法,你可以用另一种方式编写代码块。

围栏代码块#

只需将代码包裹在 ``` 中(如下所示),就不需要缩进四个空格。

代码:

这是一个示例:
```
function test() {
console.log("注意这个函数前面的空行了吗?");
}
```

预览:


这是一个示例:

function test() {
console.log("注意这个函数前面的空行了吗?");
}

语法高亮#

在围栏代码块中,添加可选的语言标识符,我们会对其进行语法高亮处理(支持的语言)。

代码:

```ruby
require '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

预览:


左对齐居中右对齐
aaabbbccc
dddeeefff
AB
123456
AB
1245

行内元素#

链接#

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][]

预览:


Google


强调#

HTML 标签:<em><strong>

Markdown 将**星号(*)下划线(_)**视为强调指示符。单个分隔符表示 <em>双分隔符表示 <strong>

代码:

*单星号*
_单下划线_
**双星号**
__双下划线__

预览:


单星号

单下划线

双星号

双下划线


但如果你用空格包围 * 或 _,它将被视为字面量的星号或下划线。

你可以使用反斜杠转义:

代码:

\*这段文字被字面量星号包围\*

预览:


*这段文字被字面量星号包围*


代码#

HTML 标签:<code>

使用**反引号(`)**包裹。

代码:

使用 `printf()` 函数。

预览:


使用 printf() 函数。


要在代码段中包含字面量反引号字符,可以使用多个反引号作为开头和结尾的分隔符:

代码:

``这里有一个字面量反引号 (`)。``

预览:


这里有一个字面量反引号 (`)。


代码段的反引号分隔符中可以包含空格——开头后一个,结尾前一个。这允许你在代码段的开头或结尾放置字面量反引号字符:

代码:

代码段中的单个反引号:`` ` ``
代码段中的反引号分隔字符串:`` `foo` ``

预览:


代码段中的单个反引号:`

代码段中的反引号分隔字符串:`foo`


图片#

HTML 标签:<img />

Markdown 使用类似于链接语法的图片语法,支持两种样式:行内和引用。

行内#

行内图片语法如下:![替代文本](URL "标题")

标题是可选的。

代码:

![替代文本](/path/to/img.jpg)
![替代文本](/path/to/img.jpg "可选标题")

预览:


替代文本
替代文本
替代文本
可选标题

即:

  • 一个感叹号:!;
  • 后跟一组方括号,包含图片的 alt 属性文本;
  • 后跟一组圆括号,包含图片的 URL 或路径,以及可选的用双引号或单引号包围的 title 属性。

引用#

引用样式图片语法如下:![替代文本][id]

代码:

[img id]: https://s2.loli.net/2024/08/20/5fszgXeOxmL3Wdv.webp "可选 title 属性"
![替代文本][img id]

预览:


替代文本
可选 title 属性

删除线#

HTML 标签:<del>

这是一个扩展语法。

GFM 添加了删除线文本的语法。

代码:

~~错误的文本。~~

预览:


错误的文本。


其他#

自动链接#

Markdown 支持一种快捷样式来为 URL 和电子邮件地址创建”自动”链接:只需用尖括号包围 URL 或电子邮件地址。

代码:

<http://example.com/>
<address@example.com>

预览:


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

这是另一个普通段落。


请注意,Markdown 格式语法不会在块级 HTML 标签内处理

与块级 HTML 标签不同,Markdown 语法会在行内级标签内处理

代码:

<span>**有效**</span>
<div>
**无效**
</div>

预览:


有效

**无效**
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Markdown 教程
https://github.com/emn178/markdown
作者
emn178
发布于
2025-01-20
许可协议
Unlicensed

部分信息可能已经过时

目录