Markdown 常用语法

简介

  • Markdown文件以.md为后缀名,语法简单清晰,是Hexo博客环境下博客写作的常用文件。本文将简要介绍Markdown常用的语法结构,希望能对读者有所帮助。

字体设置

  • 加粗,文字左右两侧加**, **加粗**
  • 斜体,文字左右两侧加*, *斜体*
  • 斜体加粗,文字左右两侧加***, ***斜体加粗***
  • 删除线,文字左右两侧加~~, ~~删除线~~

分级标题

  • 共6个级别的标题,N个#就表示N级标题,标题内容与#之间加空格
    1
    2
    3
    4
    5
    6
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    ###### 六级标题

列表

有序列表

  1. 有序列表,1. 以数字开头,点与列表内容之间加空格
  2. 有序列表,2. 以数字开头,点与列表内容之间加空格
  3. 有序列表,3. 以数字开头,点与列表内容之间加空格

无序列表

  • 以*,-,+ 任意一种符号开头均可以, 符号与列表内容间加空格
  • 无序列表,* 无序列表
  • 无序列表,* 无序列表
  • 无序列表,- 无序列表
  • 无序列表,- 无序列表
  • 无序列表,+ 无序列表
  • 无序列表,+ 无序列表

列表嵌套

  • 上一级
    • 下一级符号前加三个空格
      • 第三级,下一级相对于上一级,在符号前再加三个空格
        1. 第四级,有序列表与无序列表可相互嵌套
        2. 第四级,有序列表
        3. 第四级,有序列表

代码高亮显示

  • 单行代码,代码内容用单个反引号包起来,`代码内容`
  • 多行代码,代码内容用三个反引号包起来,
    ` ` `
    第一行代码
    第二行代码
    第三行代码
    '''

引用

  • >开头,注意加空格

引用 > 引用

嵌套引用,可无限次加>, >> 嵌套引用

可嵌套各种标题和列表, >> ### 可嵌套各种标题和列表

  • 可嵌套各种标题和列表, >> - 可嵌套各种标题和列表

分割线

  • 分割线可以由 * - _这三种符号写三个以上,有空格也可以,
    1
    2
    3
    ***
    ----
    - - - -

图片加载

  • 把主页配置文件_config.yml 里的post_asset_folder:这个选项设置为true
  • 在Git bash里执行命令npm install https://github.com/CodeFalling/hexo-asset-image -- save,下载安装一个可以上传本地图片的插件
  • 图片的路径是相对于/hexo/source/目录的;若是使用hexo new blogName创建的博客,图片可直接放在新创建的同名文件夹中,不必写图片路径

Markdown写法

格式: ![图片描述title](图片路径url)
格式比较简单,但无法控制图片大小

1
![icon-next01](icon-next.png)

icon-next01

HTML标签写法

格式: <img src="/path/file_name" width="100px" alt="pic_discription">
src为图片文件路径及名字,width控制显示的图片宽度(百分比,或者像素,比如200px),alt为图片描述信息。

1
<img src="icon-next.png" width = "10%" alt="icon-next">
next-icon02

标签插件写法

路径,图片尺寸(可选),替代文本(可选)

1
2
格式: {% img /path/to/image [width] [height] [title text [alt text]] %}
示例: {% img icon-next.png icon-next03 %}

也有参数式写法,与链接的参数式写法类似,注意加感叹号


插入视频音频

html标签写法iframe

将视频或音频链接及设置放入iframe标签内,可通过引入div标签控制视频排版位置

  • 在线视频获取方式:打开网页视频,点击分享按钮,可找到嵌入代码,复制即可。
    1
    2
    3
    4
    <div align="center">
    <iframe src="//player.bilibili.com/player.html?aid=46549147&cid=81547553&page=1" height="300px" width="400px" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true">
    </iframe>
    </div>

也可使用video标签插入视频

1
2
3
4
5
6
<video id="video" width="300px" height="200px" controls="" preload="none" poster="http://media.w3.org/2010/05/sintel/poster.png">
<source id="mp4" src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4">
<source id="webm" src="http://media.w3.org/2010/05/sintel/trailer.webm" type="video/webm">
<source id="ogv" src="http://media.w3.org/2010/05/sintel/trailer.ogv" type="video/ogg">
<p>Your user agent does not support the HTML5 Video element.</p>
</video>

插入pdf文件

直接用iframe标签写法,比如:

1
{% iframe PyMol.pdf 800px %}

添加pdf插件

需安装pdf插件,安装命令

1
npm install --save hexo-pdf

在md文件中的写法:

1
{% pdf PyMol.pdf 600px %}

使用html标签

有两种写法

1
2
3
<embed src="PyMol.pdf"
id="review" style="width:800px; height:400px; margin-top:5px;margin-left:0px" >
</embed>
1
2
3
<object type="application/pdf" data="PyMol.pdf"
id="review" style="width:800px; height:450px; margin-top:5px; margin-left:0px" >
</object>

超链接

  • 格式与图片的Markdown写法类似,差别是不加 ! 符号,[文字描述title](链接地址url)
  • 参数式写法
    1
    2
    3
    [Bing]: https://cn.bing.com/
    [百度]: http://www.baidu.com/
    这是[Bing],可使用[百度]搜索,支持中文

这是Bing,可使用百度搜索,支持中文

  • 也可以链接本地的html文档
    [自建网页](/assets/operator.html)
    自建网页

  • 也可以使用html的a标签

    1
    <a href="/assets/specialCharacters.html" target="_blank">查看特殊字符编码</a>
  • 更多标签插件,请见https://hexo.io/zh-cn/docs/tag-plugins


插入LaTeX公式

要想引入LaTeX公式,需要在文章开始部分加入MathJax.js的调用

1
2
3
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

MarkDown中使用标识符$$$$即可表示引入LaTeX语法,$$$$之间的公式为行间公式,会换行后居中。
$$之间的公式为行内公式,即在所使用位置使用LaTeX的格式,但是,单个$也可表示美元符号等其它含义,默认情况下是不支持的,故可换一种写法\\(...\\),省略号里是要写入的LaTeX公式。例如:

1
2
3
4
5
6
7
8
$$
f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 } \tag{1}
$$
where \\(\mu\\) is the mean value, \\(\sigma^2\\) is standard deviation.
Schrödinger Equation can be written as
$$
i\hbar\frac{\partial}{\partial t}\Psi(r,t)=-\frac{\hbar^2}{2m}\nabla^2\Psi(r,t)+V(r,t)\Psi(r,t) \tag{2}
$$

$$
f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 } \tag{1}
$$
where \(\mu\) is the mean value, \(\sigma^2\) is standard deviation.
Schrödinger Equation can be written as
$$
i\hbar\frac{\partial}{\partial t}\Psi(r,t)=-\frac{\hbar^2}{2m}\nabla^2\Psi(r,t)+V(r,t)\Psi(r,t) \tag{2}
$$


插入表格

Markdown表格写法

  • Markdown 制作表格使用竖线 | 来分隔不同的单元格,使用 短横线 - 来分隔表头和其他行。
  • 设置表格的对齐方式:
  • : 设置内容和标题栏居右对齐。
    :- 设置内容和标题栏居左对齐。
    :-: 设置内容和标题栏居中对齐。
  • 表格内容须与上下内容用空行隔开
  • 若想在表格中打印 |,可输入&#124,会自动转义为 |。

例如,输入如下内容:

1
2
3
4
| 左对齐 | 居中对齐 | 右对齐 |
| :-----| :----: | ----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |

会转成下面这样的表格:

左对齐 居中对齐 右对齐
单元格 单元格 单元格
单元格 单元格 单元格

HTML的table标签写法

把表格内容放到table标签内,行内容用tr标签,列内容用td标签
可以使用colspan和rowspan实现了单元格合并

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<table>
<tr>
<td>序号</td>
<td>水果</td>
<td>价格</td>
</tr>
<tr>
<td>1</td>
<td>苹果</td>
<td>6.9</td>
</tr>
<tr>
<td>2</td>
<td>香蕉</td>
<td>2.9</td>
</tr>
</table>

但是,默认情况下Markdown打印出来会显示好多空行,这是由于导入的html中自带的回车符导致的,解决办法是把标签之间的换行符删除,所有内容写到一行里。

1
<table><tr><td>序号</td><td>水果</td><td>价格</td></tr><tr><td>1</td><td>苹果</td><td>6.9</td></tr><tr><td>2</td><td>香蕉</td><td>2.9</td></tr></table>
序号水果价格
1苹果6.9
2香蕉2.9

Markdown兼容HTML语法

  • 如上面提到的图片及视频加载方法,表格写法,超链接等
  • 换行符 <br />
  • 水平线 <hr />
  • 字体设置:字体类型,颜色,字号;颜色也可采用十六进制
    <font face="黑体" color=green size=3>我是黑体,绿色,尺寸为3</font>

    我是黑体,绿色,尺寸为3
    <font face="宋体" color="#9400D3" size=3>我是宋体,深紫罗兰色,尺寸为3</font>
    我是宋体,深紫罗兰色,尺寸为3

Markdown特殊字符编码

想输入某个特殊字符时,可直接写以&符号开头的对应的编码,与左右文字空格隔开。
查看特殊字符编码

页面锚点及跳转

在需要跳转至的地方设置锚点,“jump”即为锚点id,可以自定义,在需要跳转的位置,链接此id即可实现跳转。

1
<span id="jump">超链接</span>

在需要点击进行跳转的地方链接锚点id:

1
[点击跳转至超链接一节](#jump)

点击跳转至超链接一节