根据以下文章整理得到:
不同Markdown解析器的行为可能会有所区别,支持的标签也不完全相同,本文根据Hexo所附带的解析器进行讨论。
段落
一个段落是由一个以上相连接的行句组成,而一个以上的空行则会切分出不同的段落(空行的定义是显示上看起来像是空行,便会被视为空行。比如,若某一行只包含空白和 tab,则该行也会被视为空行)。
标题
使用1到6个#
,对应1至6级标题。
1 | # 一级标题 |
分割线
使用3个以上_
表示。
1 | ______________________ |
下面是一条分割线
上面是一条分割线
列表
无序列表
使用-
,注意,-
后有一个空格,不能省略。
1 | - 列表项1 |
- 列表项1
- 列表项2
- 列表项3
嵌套列表
交替使用-
+
,并使用空格进行缩进。
注:Hexo似乎只支持两级嵌套。
1 | - 嵌套列表1 |
- 嵌套列表1
- 嵌套列表11
- 嵌套列表12
- 嵌套列表2
有序列表
使用1.
2.
3.
,注意,之后要有一个空格。
1 | 1. 列表项1 |
- 列表项1
- 列表项2
- 列表项3
引用
使用>
表示。
1 | > 这是一条引用。 |
这是一条引用。
超链接
使用[显示文本](链接地址)
这样的语法即可。
1 | [浙江大学](http://www.zju.edu.cn) |
也可使用尖括号,会自动处理链接形式。
1 | <http://gaomingfei.xyz> |
http://gaomingfei.xyz
g199209@163.com
图片
使用![](图片链接地址)
这样的语法即可。
1 | ![](https://img.gaomf.cn/Octocat.png) |
粗体和斜体
使用2个*
包含一段文本代表粗体,使用1个*
包含一段文本代表斜体。
1 | 这是正常文本,**这是粗体文本**,*这是斜体文本*。 |
这是正常文本, 这是粗体文本, 这是斜体文本。
表格
参见以下代码段,使用:
来确定对齐方式。
1 | | Tables | Are | Cool | |
Tables | Are | Cool |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
代码
行内代码
使用`
包含代码片段即可。
代码段
使用```
包含代码片段即可,第一行的```
后面可以指定使用的编程语言,一般建议手动指定,常用语言列表如下:
Language Name | Alias | Language Name | Alias |
---|---|---|---|
ARM assembler | armasm, arm | AVR assembler | avrasm |
Awk | awk, mawk, nawk, gawk | Bash | bash, sh, zsh |
Basic | basic | C# | cs, csharp |
C, C++ | cpp, c, cc, c++ | CMake | cmake |
CSS | css | DOS | dos, bat, cmd |
Delphi, Pacal | delphi, pascal | Diff | diff |
Django | django | DTS (Device Tree) | dts |
Excel | excel | Fortran | fortran |
Go | go | Gradle | gradle |
Groovy | groovy | HTML, XML | xml, html, xhtml, rss |
HTTP | http | JSON | json |
Java | java | JavaScript | javascript, js |
Lisp | lisp | Lua | lua |
Makefile | makefile, mk, mak | Markdown | markdown, md |
Matlab | matlab | PHP | php |
Perl | perl | Processing | processing |
Prolog | prolog | Python | python, py |
R | r | Ruby | ruby |
SQL | sql | Swift | swift |
Tcl | tcl | TeX | tex |
VB.Net | vbnet, vb | VBScript | vbscript, vbs |
VHDL | vhdl | Verilog | verilog, v |
Vim Script | vim | x86 Assembly | x86asm |
完整的帮助见:CSS classes reference。如果不需要高亮,使用no-highlight
公式
需要Mathjax支持,详细说明可参考其文档。
Hexo本身不直接支持Mathjax,不过本博客系统使用的Yilia主题添加了Mathjax支持,故不需要做其它配置即可直接使用。Mathjax公式常用语法可参考:
使用$
表示行内公式,使用$$
表示整行公式,其中使用Latex格式来编辑公式,推荐一个比较好用的在线Latex公式可视化编辑器:CodeCogs。下面是一些公式的示例效果。
1 | 著名的质能守恒方程为:$E=mc^2$。其中$E$代表能量,$m$代表质量,$c$代表光速 |
著名的质能守恒方程为:$E=mc^2$。其中$E$代表能量,$m$代表质量,$c$代表光速
1 | 同样很著名的麦克斯韦方程组为 |
同样很著名的麦克斯韦方程组为
$$\nabla\cdot\vec{B}=0$$
$$\nabla\cdot\vec{D}=\rho$$
$$\nabla\times\vec{H}=\vec{J} + \frac{\partial \vec{D}}{\partial t}$$
$$\nabla\times\vec{E}=- \frac{\partial \vec{B}}{\partial t}$$
以上4个方程由两个散度方程和两个旋度方程组成,是麦克斯韦方程组的微分形式,可转化为对应的积分形式:
$$\oint_{S} \vec{B}\cdot\mathrm{d}\vec{S}=0$$
$$\oint_{S} \vec{B}\cdot\mathrm{d}\vec{S}=\int_{V}\rho \mathrm{d}V$$
$$\oint_{l} \vec{H}\cdot \mathrm{d}\vec{l}=\int_{S}(\vec{J}+\frac{\partial \vec{D}}{\partial t})\cdot\mathrm{d}\vec{S}$$
$$\oint_{l} \vec{E}\cdot \mathrm{d}\vec{l}=-\int_{S}\frac{\partial \vec{B}}{\partial t}\cdot\mathrm{d}\vec{S}$$
需要注意的是,正如这篇文章所说,在书写MathJax公式的时候有时候会出现一些问题,主要是因为Markdown会将一些标记给编译掉,所以_
、{}
和\\
等符号有时会出现问题,解决方式是在前面加上\进行转义。
HTML标签
文本中可直接用html标签,不需要额外标注这是 HTML 或是 Markdown,只要直接加标签就可以了。
只有区块元素──比如 <div>
、<table>
、<pre>
、<p>
等标签,必需在前后加上空白,以利与内容相区分。
比如以下代码段,可以居中放置一张图片,其中url代表图片地址。
1 | <div style="text-align: center"> |
Html标签另外一个比较有用的作用是可以方便的直接插入一些符号,避免被Markdown解释器错误的解释。