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

Markdown 教程#

这是一篇 Markdown 示例文章,演示常用语法以及 GitHub Flavored Markdown(GFM)的扩展能力。

块级元素#

段落与换行#

段落#

HTML 标签:<p>

一个或多个空行会分隔段落。只包含空格或制表符的行也会被视为空行。

代码:

这一行会和下一行
显示在同一个段落中。
这是第二个段落。

预览:


这一行会和下一行 显示在同一个段落中。

这是第二个段落。


换行#

HTML 标签:<br />

在一行末尾添加两个或更多空格,可以强制换行。

代码:

这一行会
被强制换行。

预览:


这一行会
被强制换行。


标题#

Markdown 支持 Setext 和 atx 两种标题写法。

Setext#

HTML 标签:<h1><h2>

使用等号(=)表示一级标题,使用短横线(-)表示二级标题。

代码:

一级标题
========
二级标题
--------

预览:


一级标题#

二级标题#


atx#

HTML 标签:<h1><h6>

在行首使用 1 到 6 个井号(#),对应一级到六级标题。

代码:

# 一级标题
## 二级标题
###### 六级标题

预览:


一级标题#

二级标题#

六级标题#

你也可以在 atx 标题末尾添加井号作为闭合标记,末尾井号数量不必和开头一致。

代码:

# 一级标题 #
## 二级标题 ##
### 三级标题 ######

预览:


一级标题#

二级标题#

三级标题#


引用#

HTML 标签:<blockquote>

Markdown 使用类似邮件的 > 字符表示引用。为了便于阅读,可以在引用段落的每一行前面都添加 >

代码:

> 这是一段包含两个段落的引用。
> 第一段可以写较长的内容。
>
> 这是引用中的第二个段落。

预览:


这是一段包含两个段落的引用。 第一段可以写较长的内容。

这是引用中的第二个段落。


引用可以嵌套,只需要增加更多层 >

代码:

> 这是第一层引用。
>
> > 这是嵌套引用。
>
> 回到第一层引用。

预览:


这是第一层引用。

这是嵌套引用。

回到第一层引用。


引用中也可以包含标题、列表和代码块等其他 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. 第二项
3. 第三项

预览:


  1. 第一项
  2. 第二项
  3. 第三项

如果一行以类似 1986. 的内容开头,可能会被识别为有序列表。可以使用反斜杠转义句点。

代码:

1986\. 这是一个很棒的年份。

预览:


1986. 这是一个很棒的年份。


列表中的引用#

如果要在列表项中放入引用,需要缩进引用标记。

代码:

* 包含引用的列表项:
> 这是列表项中的引用。
> 第二行引用内容。

预览:


  • 包含引用的列表项:

    这是列表项中的引用。 第二行引用内容。


列表中的代码块#

如果要在列表项中放入缩进代码块,代码块需要再缩进一层,通常是 8 个空格或 2 个制表符。

代码:

* 包含代码块的列表项:
<code goes here>

预览:


  • 包含代码块的列表项:

    <code goes here>

嵌套列表#

代码:

* 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>

表格是 GFM 扩展语法。使用竖线(|)分隔列,使用短横线(-)分隔表头和内容,使用冒号(:)控制对齐方式。

外侧竖线和对齐标记是可选的。用于分隔表头的每个单元格至少需要 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/) 没有标题属性。

预览:


这是一个 示例链接

这个链接 没有标题属性。


如果链接指向同一站点的本地资源,可以使用相对路径。

代码:

查看我的 [关于](/about/) 页面了解详情。

预览:


查看我的 关于 页面了解详情。


引用式链接#

可以先定义链接引用,格式为 [id]: URL "标题",其中标题同样是可选的。使用时写作 [链接文本][id]

代码:

[id]: http://example.com/ "可选标题"
这是一个 [示例链接][id]。

预览:


这是一个 示例链接


链接定义由下面几部分组成:

  • 方括号中的链接标识符,不区分大小写,最多可以从左侧缩进 3 个空格;
  • 一个冒号;
  • 一个或多个空格或制表符;
  • 链接 URL;
  • URL 可以选择使用尖括号包裹;
  • 可选的标题属性,可以使用双引号、单引号或括号包裹。

下面几种链接定义是等价的:

代码:

[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 "可选标题")

预览:


替代文本

替代文本


图片语法由下面几部分组成:

  • 一个感叹号 !
  • 一组方括号,里面是图片的替代文本;
  • 一组圆括号,里面是图片 URL 或路径,以及可选标题。

引用式图片#

引用式图片格式:![替代文本][id]

代码:

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

预览:


替代文本


删除线#

HTML 标签:<del>

删除线是 GFM 扩展语法。

代码:

~~这是一段被删除的文字。~~

预览:


这是一段被删除的文字。


其他语法#

自动链接#

Markdown 支持自动链接:将 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 支持转义下面这些字符:

代码:

\ 反斜杠
` 反引号
* 星号
_ 下划线
{} 花括号
[] 方括号
() 圆括号
# 井号
+ 加号
- 减号或短横线
. 英文句点
! 感叹号

行内 HTML#

对于 Markdown 语法没有覆盖的标记,可以直接使用 HTML。你不需要额外声明正在从 Markdown 切换到 HTML,只要直接写标签即可。

代码:

这是一个普通段落。
<table>
<tr>
<td>Foo</td>
</tr>
</table>
这是另一个普通段落。

预览:


这是一个普通段落。

Foo

这是另一个普通段落。


需要注意的是,块级 HTML 标签内部不会处理 Markdown 格式语法。

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

代码:

<span>**会生效**</span>
<div>
**不会生效**
</div>

预览:


会生效

**不会生效**
分享

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

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

部分信息可能已经过时

目录