Markdown 语法

警告
本文最后更新于 2020-02-12,文中内容可能已过时。

Markdown 由 Aaron Swartz 和 John Gruber 共同设计

作者中的 Aaron Swartz 是天才程序员,著名社交网站 Reddit 的联合创始人,14 岁参与 RSS 1.0 规格标准的制订,致力于网络信息开放。在 2011 年 7 月 19 日,因被指控从 MIT 和 JSTOR 下载 480 万篇学术论文并以免费形式上传于网络被捕,2013 年 1 月自杀身亡,年仅 26 岁。

Aaron Swartz

Markdown 的优点很多,下面稍微列举一下

  • 易读(看起开舒服)、易写(语法简单)、易更改 (纯文本),处处体现着极简主义的影子。
  • 兼容 HTML,可以转换为 HTML 格式发布。
  • 跨平台使用。
  • 越来越多的网站支持 Markdown。

具体的 Markdown 语法主要分为如下几部分:标题,段落,引用,代码块,列表,加粗与斜体,分割线与删除线,链接,图片。

标题的定义有两种形式

  1. 使用 =- 标记一级和二级标题。

    一级标题使用 =========
    二级标题使用 ---------

  2. 使用#,可表示 1-6 级标题。

    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    ###### 六级标题

:一般习惯从二级标题开始使用,因为一级标题对于多数文章来说,字体都显得有点过大

段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。

在段落的每行或者只在第一行使用符号 >,如

1
> 区块引用   

效果:

区块引用

在每行起始添加 4 个空格或者一个制表符,注意要和普通段落间存在空行。最常用围墙式代码块,即使用 3 个连续的反单引号把一段文字包围起来表示代码块,这样可以避免每行代码开头都添加 4 个空格,写法如下

1
2
3
4
5
​```
let i = 100;
let j = 200;
console.log(i + j);
​```

使用围墙式代码块还有有个额外的功能:可以指定编程语言类别,让其中的代码实现语法高亮,方法是在第一行反单引号后面写上语言种类的名称,写法如下

1
2
3
4
5
​```javascript
let i = 100;
let j = 200;
console.log(i + j);
​```

效果如下:

1
2
3
let i = 100;
let j = 200;
console.log(i + j);

行内也可以对较短的字符标记代码,方法是使用两个反单引号,比如

1
行中`短代码`高亮

效果为:
行中短代码高亮

使用 ·+、或 - 标记无序列表,符号后需添加一个空格才能继续书写文字

  • 第一项
  • 第二项

使用数字并辅以. 标记有序列表,

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

在强调内容两侧分别加上 * 或者_,一个符号为斜体,两个为粗体,如:

1
2
*斜体*,_斜体_    
**粗体**,__粗体__

效果:

斜体
粗体粗体

分割线最常使用就是三个或以上 -,还可以使用 *_。删除线则是句子前后加两个波浪号 ~~

链接可以由两种形式生成:行内式参考式
行内式语法为:

1
[书葬的github](https://github.com/shuzang)

效果:

书葬的 github

参考式语法为:

1
2
3
4
[书葬的github][1]    
[书葬的github][2]    
[1]:https://github.com/shuzang   
[2]:https://github.com/shuzang   

效果:

书葬的 github
书葬的 github

添加图片的形式和链接相似,只需在链接的基础上前方加一个 !。如文章开头 Azron Swartz 图片使用如下语句

1
![Aaron Swartz](https://laregledujeu.org/files/2013/01/Aaron_Swartz.jpg)

除以上基本语法外,还有一些常用扩展语法,主要是因为在一些特定场景下某些需求无法满足,其中有一些如待办事项和表格等使用非常频繁,因此在这里介绍,其它少用的扩展语法在其它文章里介绍。

使用 - [ ]- [x],效果如下

  • 未选
  • 已选

相当于反转义作用,使 Markdown 语法符号成为普通符号。

| 表示表格纵向边界,表头和表内容用 - 隔开,并可用: 进行对齐设置,两边都有: 则表示居中,若不加: 则默认左对齐。

1
2
3
| 姓名 | 角色 |
| ---- | ---- |
| 书藏 | 作者 |

以上语句效果如下

姓名角色
书藏作者

修改代码块的缩进,方法是选择多行代码,然后按 Tab 键增加缩进,按 Shift + Tab 键减少缩进。

文字的缩进有两种办法

  1. 使用表示空格的特殊字符   
  2. 输入法半角改全角,然后连续键入两个空格(半角改全角的快捷键为 Shift+Space

Emoji 是否支持要看主题,github 是肯定支持的。关于 emoji 符号查找表可以查看 emoji cheat sheet

公式的语法规则基本和 Latex 相同,可参见常用数学符号的 LaTeX 表示方法

主要也分为行内和区块两种,行内公式使用单个美元符 $ 包围,区块使用两个美元符,比如

1
2
3
4
5
$2^2$

$$
\frac{2}{3}
$$

效果如下(当然还要看渲染引擎是否支持,本博客支持显示数学公式)

222^2

23 \frac{2}{3}

不论是对公式的编辑,还是平时的使用,经常会遇到一些数学符号、希腊字母等特殊的字符,这些字符可以直接键入其命名实体或十进制代码而无需转义符 \ 包含就能显示,对照表见文末,一个简单的例子如下。

1
2
3
字符:希腊字母阿尔法
命名实体表示:Φ
十进制编码表示:Φ

效果为 Φ

注 1:命名实体和十进制编码后的分号是整体的一部分,不是分隔符

注 2:有需要参考更多的 Markdown 基础语法Markdown 扩展语法

由于书写的文本最终还是要转换成 HTML 页面,所以实际上可以使用一些 HTML 的语法来辅助书写

使用 </br> 可以替代作为空行插入

写法如下

1
<center>这一行需要居中</center>

效果如下

这一行需要居中
### 上下标

写法如下

1
2
H<sub>2</sub>O
爆米<sup>TM</sup>

效果如下

H2O

爆米 TM

写法如下

1
2
3
<font color="#FF0000"> 红色 </font> 
<font size=6> size=6 </font> 
<font size=5 color="#FF0000"> size=5的红色</font>

效果如下

红色 size=6 size=5 的红色

原始图片规格不一,展示出来的效果往往很不好,使用 HTML 的语法可以定制图片的某些属性。以上面的创始人 Aaron Swartz 的图片为例,我们控制其大小

1
<img src="https://laregledujeu.org/files/2013/01/Aaron_Swartz.jpg" width="512" height="384" />

通过将多张图片放在一个一行多列的表格中,线宽设置为 0, 可以让这些图片并排显示,代码如下

1
2
3
4
<table><tr>
<td><img src="http://bimgs.plmeizi.com/images/bing/2019/OHR.BeaujolaisRegion_ZH-CN1585928268_1920x1080.jpg" alt="风景1" style="zoom: 67%;" /></td>
<td><img src="http://bimgs.plmeizi.com/images/bing/2020/OHR.MalhamStars_ZH-CN4163177154_1920x1080.jpg" alt="风景2" style="zoom: 67%;" /></td>
</tr></table>

效果如下

风景1风景2

先定义一个锚

1
<span id="jump">Hello World</span>

然后使用 markdown 语法即可跳转到锚所在之处

1
[XXXX](#jump)

比如数学公式部分点击文末可以跳转到附录

普通字符

特殊符号命名实体十进制编码
空格&nbsp;&#160;
全角空格&emsp;&#12288;
&apos;&#39;
"&quot;&#34;
(&#40;
)&#41;
<&lt;&#60;
>&gt;&#62;
[&#91;
]&#93;
{&#123;
}&#125;
´&acute;&#180;
°&deg;&#176;
®&reg;&#174;
©&copy;&#169;

数学符号

特殊符号命名实体十进制编码
&le;&#8804;
&ge;&#8805;
&asymp;&#8773;
&ne;&#8800;
&cap;&#8745;
&cup;&#8746;
&ang;&#8736;
&infin;&#8734;
±&plusmn;&#177;
&radic;&#8730;
&sum;&#8722;
&int;&#8747;
Δ&Delta;&#916;

希腊字母

特殊符号命名实体十进制编码
Φ&Phi;&#934;
Ω&Omega;&#937;
α&alpha;&#945;
β&beta;&#946;
γ&gamma;&#947;
δ&delta;&#948;
ε&epsilon;&#949;
ζ&zeta;&#950;
η&eta;&#951;
θ&theta;&#952;
λ&lambda;&#955;
μ&mu;&#956;
ξ&xi;&#958;
π&pi;&#960;
ρ&rho;&#961;
σ&sigma;&#963;
φ&phi;&#966;
ψ&psi;&#968;
ω&omega;&#969;
&part;&#8706;
&empty;&#8709;

1 Github-Markdown

2 Set table column width via Markdown

[3] Markdown 资源列表

支付宝
微信
0%