markdown语法

1. 宗旨

Markdown 语法受到一些既有 text-to-HTML 格式的影响,可以直接以纯文本发布,实现「易读易写」

2. 兼容 HTML

Markdown 语法的目标是:成为一种适用于网络的书写语言

不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写

不需要额外标注这是 HTML 或是 Markdown;只要直接加标签就可以了

2.1. hexo中使用

在hexo中加载md文件时,使用的图标来自于 font awesome

2.1.1. to do list

1
2
<i class="fa fa-check-square"></i> 已完成
<i class="fa fa-square"></i> 未完成

已完成
未完成

2.1.2. 下载图标

1
2
3
<i class="fa fa-download"></i> 普通
<i class="fa fa-download fa-lg"></i> 变大 33%
<i class="fa fa-download fa-2x"></i> 两倍大

普通
变大 33%
两倍大

2.1.3. 标题样式

1
2
3
4
5
6
7
<div class="note default"><p>default</p></div>
<div class="note primary"><p>primary</p></div>
<div class="note success"><p>success</p></div>
<div class="note info"><p>info</p></div>
<div class="note warning"><p>warning</p></div>
<div class="note danger"><p>danger</p></div>
<div class="note danger no-icon"><p>danger no-icon</p></div>

default

primary

success

info

warning

danger

danger no-icon

2.2. 特殊字符自动转换

Markdown 可以自然地书写字符,需要转换的由它来处理好了

  • 版权符号 &copy; &cpoy;
  • AT&T 会自动转换为 AT&amp;T
  • 4 < 5 会自动转换为 4 &lt; 5

3. 区块元素

3.1. 标题

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式

类 Setext 形式是用底线的形式,利用 = (最高阶标题)和 - (第二阶标题),任何数量的 =- 都可以有效果

1
2
3
4
5
This is an H1
=============

This is an H2
-------------

类 Atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶

1
2
3
4
5
# 这是 H1

## 这是 H2

###### 这是 H6

3.2. 区块引用

Markdown 标记区块引用是使用类似 email 中用 > 的引用方式

1
> This is a blockquote with two paragraphs.

This is a blockquote with two paragraphs.

区块引用可以嵌套,只要根据层次加上不同数量的 >

1
2
> This is the first level of quoting.
> > This is nested blockquote.

This is the first level of quoting.

This is nested blockquote.

引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等

1
2
3
4
5
6
7
8
> ## 这是一个标题。
>
> 1. 这是第一行列表项。
> 2. 这是第二行列表项。
>
> 给出一些例子代码:
>
> return shell_exec("echo $input | $markdown_script");

3.3. 列表

Markdown 支持有序列表和无序列表

3.3.1. 无需列表

无序列表使用星号、加号或是减号作为列表标记

1
2
3
* red
+ blue
- green
  • red
  • blue
  • green

可以用html标记

1
2
3
4
5
<ul>
<li>red</li>
<li>blue</li>
<li>green</li>
</ul>
  • red
  • blue
  • green

3.3.2. 有序列表

有序列表则使用数字接着一个英文句点

1
2
3
1. red
2. blue
3. green
  1. red
  2. blue
  3. green

甚至可以用html标记

1
2
3
4
5
<ol>
<li>red</li>
<li>blue</li>
<li>green</li>
</ol>
  1. red
  2. blue
  3. green

3.4. 分隔线

在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西

1
2
3
4
5
6
7
8
9
* * *

***

*****

- - -

---------------------------------------





4. 区段元素

4.1. 链接

Markdown 支持两种形式的链接语法: 行内式和参考式两种形式

不管是哪一种,链接文字都是用 [方括号] 来标记

4.1.1. 行内式

1
This is [an example](http://example.com/ "Title") inline link.

This is an example inline link.

如果要链接到同样主机的资源,可以使用相对路径

1
See my [About](/about/) page for details.

4.1.2. 参考式

参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记

1
2
This is [an example][id] reference-style link.
[id]: http://example.com/ "Optional Title Here"

链接辨别标签可以有字母、数字、空白和标点符号,但是并不区分大小写

1
2
3
4
5
6
I get 10 times more traffic from [Google] [1] than from
[Yahoo] [2] or [MSN] [3].

[1]: http://google.com/ "Google"
[2]: http://search.yahoo.com/ "Yahoo Search"
[3]: http://search.msn.com/ "MSN Search"

隐式链接标记功能可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号

1
2
[Google][]
[Google]: http://google.com/

4.2. 强调

Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 *_ 包围的字词会被转成用 标签包围,用两个*_包起来的话,则会被转成

1
2
3
4
5
6
7
8
9
*斜体*

_斜体_

**粗体**

__粗体__

~~删除~~

如果要在文字前后直接插入普通的星号或底线,可以用反斜线:

1
\*this text is surrounded by literal asterisks\*

4.3. 代码

如果要标记一小段行内代码,可以用反引号把它包起来(``),例如:

1
Use the `printf()` function.

会产生:

1
<p>Use the <code>printf()</code> function.</p>

4.4. 代码块

1
2
```[language] [title] [url] [link-text]
`代码`

4.5. 表格

第二行的 ---: 表示了对齐方式,默认左对齐,还有右对齐和居中

1
2
3
4
|商品|数量|单价|
|-|-------:|:------:|
|苹果|10|\$1|
|电脑|1|\$1000|
商品 数量 单价
苹果 10 $1
电脑 1 $1000

4.6. 图片

Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式: 行内式和参考式

4.6.1. 行内式

1
2
3
![Alt text](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "Optional title")

4.6.2. 参考式

参考式的图片语法:

1
2
![Alt text][id]
[id]: url/to/image "Optional title attribute"

4.7. 自动链接

Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用方括号包起来, Markdown 就会自动把它转成链接

1
<http://example.com/>

Markdown 会转为:

1
<a href="http://example.com/">http://example.com/</a>

邮址的自动链接也很类似,只是 Markdown 会先做一个编码转换的过程,把文字字符转成 16 进位码的 HTML 实体,这样的格式可以糊弄一些不好的邮址收集机器人,例如:

1
<address@example.com>

Markdown 会转成:

1
2
3
4
<a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>

在浏览器里面,这段字串(其实是 [address@example.com](mailto:address@example.com))会变成一个可以点击的「address@example.com」链接

4.8. 页面内跳转

1
[点击跳转](#anchor)

4.9. 反斜杠

Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号

例如:用星号加在文字旁边的方式来做出强调效果,可以在星号的前面加上反斜杠

1
\*literal asterisks\*

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

1
2
3
4
5
6
7
8
9
10
11
12
\   反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号

5. 数学符号

使用 $ 表示,其中一个 $ 表示在行内,两个 $ 表示独占一行

支持 LaTeX 编辑显示支持,访问 MathJax 参考更多使用方法

常用的数学公式在线编译网站 https://latex.codecogs.com/eqneditor/editor.php

1
2
3
$\leqslant$ 小于等于
$\geqslant$ 小于等于
\frac{a}{b} a/b

$\leqslant$ $\geqslant$ $\frac{a}{b}$

本文结束  感谢您的阅读
  • 本文作者: Wang Ting
  • 本文链接: /zh-CN/2019/09/01/markdown语法/
  • 发布时间: 2019-09-01 23:52
  • 更新时间: 2023-04-15 21:40
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!