Markdown语法笔记

Markdown是一种轻量级的标记语言,语法简介明了,功能比纯文本更强,很适合写博客。
本文记录了Markdown的一些基本语法,以及在写博客时遇到的问题和解决方法。


文字加粗

使用两个**把需要加粗的文字夹起来即可
示例:**加粗文字测试**的显示效果为: 加粗文字测试


文字倾斜

使用两个*把需要倾斜的文字夹起来即可
示例:*倾斜文字测试*的显示效果为: 倾斜文字测试


文字删除线

使用两个~~把需要删除的文字夹起来即可
示例:~~文字删除线测试~~的显示效果为: 文字删除线测试


代码块

对于简单的代码框,使用反引号` (ESC下面那个键)夹起代码部分即可
示例:`print "Hello World"` 的显示效果为: print "Hello World"
提示:如果两个反引号中间的内容也包含反引号,则在最外层需要用两个连续反引号夹起来
比如上面显示的`print "Hello World"` ,实际上需要这么输入:`` `print “Hello World”` `` (注意有空格)

对于大段的代码块,在其首行前和尾行后各加上三个反引号`包起来即可
在首行的三个反引号```后面指明代码块中的语言,这样能够改进代码块的配色风格
示例:
```python
print “Hello” # 注释部分
print “World” # 注释部分
```
显示效果为:

1
2
print "Hello" # 注释部分
print "World" # 注释部分


标题

语法格式为:# 标题名称
其中#的数量是几个就表示几级标题,需要注意的是最后一个#和标题名称之间要有一个空格
示例:## 二级标题示例的显示效果为:

二级标题示例


区块引用

以右尖括号>开头的行,其后面的内容的表示引用部分
示例:>少无适俗韵,性本爱丘山。 —— 陶渊明《归园田居》的显示结果为

少无适俗韵,性本爱丘山。 —— 陶渊明《归园田居》

可以添加多个>实现引用的嵌套,其内部可以使用其它Markdown语法,示例如下:

不同编程语言的Hello World

C++:cout << "Hello World" << endl;
Java:System.out.print("Hello World");
Python:print "Hello World"


链接和图片

链接和图片的插入方式都比较相似,因此放在一起介绍。

首先是链接,语法格式为[链接文字](链接地址 "链接说明")
示例:[跳至百度](https://www.baidu.com/ "百度")的显示效果为:
跳至百度

插入图片时,只需要在链接的基础上在前面加上一个叹号!,其语法格式为:![图片文字](图片URL地址 "图片说明") (图片文字是当图片加载失败时要显示的文字)
示例:![百度图标](https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png "百度LOGO")的显示效果为:
百度图标


列表

对于无序列表,使用星号*、加号+或减号-标记即可,注意在符号的后面加上一个空格后再填写列表内容
示例:(以星号为例,与加号和减号的显示效果是一样的)

1
2
3
* C++
* Java
* Python

的显示效果为:

  • C++
  • Java
  • Python

对于有序列表,直接用数字. 列表内容的方式描述即可,同样注意小数点后面要有一个空格
示例:

1
2
3
1. 百度
2. 阿里
3. 腾讯

的显示效果为:

  1. 百度
  2. 阿里
  3. 腾讯

表格

使用竖线字符|来分隔不同列,使用换行来分隔不同行,可以组建成简单的表格
第一行设置表格每列的表头
第二行用分隔线分隔表头和内容,同时可以用冒号:指定表格的对齐方式:

  • 冒号:在分隔线的左边,说明此列左对齐(默认方式)
  • 冒号:在分隔线的右边,说明此列右对齐
  • 在分隔线的左右两边都有冒号:,说明此列居中。

第三行及以后是表格里的内容

示例:

1
2
3
4
5
|左对齐表头|居中对齐表头|右对齐表头|
|:---------|:----------:|---------:|
|C++ |Java |Python |
|百度 |阿里 |腾讯 |
|移动 |联通 |电信 |

其显示效果为:

左对齐表头 居中对齐表头 右对齐表头
C++ Java Python
百度 阿里 腾讯
移动 联通 电信

注意:如果当前单元格内的文字想要换行,直接回车是不行的,这样Markdown会认为你是另起一行单元格。正确的方法是在需要换行的地方加上一个<br>,这样在显示的时候,<br>之后的内容就在本单元格的新一行了。
举例如下:

1
2
3
4
|类型|说明|
|----|----|
|不换行|这是第一行。这是第二行。|
|换行|这是第一行。<br>这是第二行。|

其显示效果为:

类型 说明
不换行 这是第一行。这是第二行。
换行 这是第一行。
这是第二行。

转义字符与特殊字符

有一些字符在Markdown语法中有其它意义,如果想在内容中直接输出这些字符可能会出现问题。
解决方法是使用反斜杠\加在该字符前面进行转义,让Markdown按照这些字符的原本内容进行输出。
Markdown支持的转义字符如下:

字符 字符名称 在Markdown中的意义 转义输出方式 输出示例
\ 反斜线 转义 \\ \
` 反引号 代码框(段) \` `
* 星号 粗体、斜体、列表、分隔线 \* *
_ 底线 粗体、斜体、列表、分隔线 \_ _
{} 花括号 ? \{} {}
[] 方括号 链接、图片 \[] []
() 括弧 链接、图片 \() ()
# 井字号 标题 \# #
+ 加号 列表、分隔线 \+ +
- 减号 列表、分隔线 \- -
. 英文句点 列表 \. .
! 惊叹号 图片 \! !
$ 美元符号 公式 \$ \$

除了以上这些字符外,还有两种更特殊的字符:<&,它们在HTML文件中有特殊的意义,因此连转义字符都无法降服这俩货-.-#!
如果想输出这两个字符,就需要直接用HTML实体的形式,<对应&lt;&对应&amp;,示例如下:

特殊字符 特殊字符名称 直接输出方式 直接输出结果 转义输出方式 转义输出结果 正确输出方式 正确输出结果
< 小于 <happy> \<happy> \ &lt;happy> <happy>
& and &gescc; \&gescc; \⪩ &amp;gescc; &gescc;