Markdown语法教程

从网上收集的markdown语法教程

写在前面

  前两天用Gridea和Github Pages搭好了我的博客,不得不说,这两个都是好东西,而且都是免费的。Gridea用来搭建个人博客容易,而且人性化,适合像我这样的菜鸟上手,Github Pages提供平台展示博客。在这里感谢一下GrideaGithub Pages的开发者们。
  Gridea支持Markdown语法,我这个菜鸟又不会,所以打算学一下,顺便写一篇介绍基本语法的博文,作为我的第一篇博文,下面进入正题吧!

Markdown简介

  Markdown 语言由约翰·格鲁伯(John Gruber)于2004年创建,是一种轻量级标记语言。Markdown允许人们使用易读易写的纯文本来编写带样式的文档,有点类似html,不过它比html简单一些。Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。使用Markdown 编写的文档后缀为 .md, .markdown,比如github仓库里的README.md文档。

  关于Markdown的编辑器,可分为以下三类:

  1. 平台集成工具:各大在线博客、社区平台自带的写作工具,比如CSDN、博客园、简书等。
  2. 独立软件类:在本地上使用的独立软件,可以编辑本地文件,比如Typora、Haroopad等。
  3. 插件类:有些编辑器安装相应的插件,可以具有Markdown的功能,比如Atom、VS code、Sublime Text等。

标题

  标题可以使用两种方式来设置,一种是用“=”和“-”,一种是用“#”。

  1. 使用“=”和“-”符号,在标题的下一行加一个“=”,就会有一级标题的效果,如果加“-”的话就是二级标题。
    1
    2
    3
    4
     一级标题
    =
    二级标题
    -
    效果如下:

  需要注意的是,使用这种方式的标题,上一行如果是普通文本,两行之间要加一个换行,不然上一行文本也会有标题的样式。

  1. 使用“#”符号,在标题的前面加“#”符号就好了,加几个“#”就代表几级标题,最多支持6级标题。
    1
    2
    3
    4
    5
    6
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    ###### 六级标题
    效果如下:

字体

简单字体

Markdown 可以使用以下几种字体:

1
2
3
4
5
6
7
8
*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___
<u>带下划线文本</u>
~~带删除线文本~~

效果如下:
   斜体文本
   斜体文本
   粗体文本
   粗体文本
   粗斜体文本
   粗斜体文本
   带下划线文本
   带删除线文本

自定义字体

Markdown的最初目标就是为纯写作而生的,因此,它并没有考虑文字的更多样式。如果想使用更多字体样式,可以借助html的font标签。

1
2
3
<font color=red>红色字体</font>
<font size=6>6号字体</font>
<font color=red size=6>6号红色字体</font>

效果如下:

   红色字体

   6号字体

   6号红色字体

空格

Markdown不能直接用键盘输入的空格和回车来表示空格,需要用特殊符号。
&ensp;&#8194;表示半角空格(En Space),占一个字符,相当于半个汉字的长度。
&emsp;&#8195;表示全角空格(Em Space),占两个字符,相当于一个汉字的长度。
&nbsp;&#160;不换行空格(No-Break Space),占一个字符,相当于一个字符”n”的长度。
半角空格和全角空格推荐在中文里使用,不换行空格推荐在英文里使用。

换行

markdown里敲多个换行只能显示一个,如果想显示多个换行,需要用<br>或者<br/>来表示。

引用

引用的文字段落会高亮显示,方法是在文字开头加”>”符号。

1
2
3
> 最外层
>> 第一层嵌套
>>> 第二层嵌套

最外层

第一层嵌套

第二层嵌套

图片

简单图片

如果是想简单的显示图片,使用以下方式就好了:

1
![](图片地址)

图片链接地址可以是本地图片文件地址,也可以是网络图片地址。

也可以给图片添加说明和标题:

1
![图片说明文字](图片链接地址 "图片标题")

图片说明文字会在图片无法加载时显示,图片正常加载时说明文字不显示,下面是一个例子。

1
![这是一张无法加载的图片](错误的图片地址 "title")

显示为
这是一张无法加载的图片
如果图片有标题,当鼠标停在图片上时会显示出来,即使图片无法加载,鼠标停靠时也会显示,下面是一个例子,请读者自行尝试。

1
![涅普迪努](/images/learn_note/markdown_base/nepnep.png "我可爱吗^_^")

涅普迪努

自定义图片

Markdown无法自定义图片的宽度和高度,如果想改变的话需要借助html的img标签。

1
<img width=100 height=160 src="/images/learn_note/markdown_base/nepnep.png" title="我是变小后的涅普迪努"></img>

下面是一张100×160的图片

链接

外部链接

markdown可以使用两种方法创建链接

1
2
[链接名称](链接地址)
<链接地址>

以github主页为例:

1
2
[github](https://github.com)
<https://github.com>

效果如下:
github
https://github.com

内部链接

可以使用内部链接跳转到本文内某个标题的位置,语法如下:

1
[链接名字][#标题名字]

比如想跳转转到本文的“Markdown简介”的位置,可以用下面的代码实现:

1
[Markdown简介](#Markdown简介)

Markdown简介

列表

无序列表

无序列表使用星号(*)、加号(+)或是减号(-)作为列表标记:

1
2
3
4
5
6
7
8
9
10
11
* 第一项
* 第二项
* 第三项

+ 第一项
+ 第二项
+ 第三项

- 第一项
- 第二项
- 第三项
  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项
  • 第一项
  • 第二项
  • 第三项

有序列表

有序列表使用数字并加上 . 号来表示,如:

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

markdown会对数字重新按顺序编号,比如下面代码显示的编号任然是1.2.3.

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

嵌套列表

列表嵌套只需在子列表中的选项添加四个空格即可:

1
2
3
4
5
6
1. 第一项:
- 第一项嵌套的第一个元素
- 第一项嵌套的第二个元素
2. 第二项:
- 第二项嵌套的第一个元素
- 第二项嵌套的第二个元素
  1. 第一项:
    • 第一项嵌套的第一个元素
    • 第一项嵌套的第二个元素
  2. 第二项:
    • 第二项嵌套的第一个元素
    • 第二项嵌套的第二个元素

表格

Markdown 制作表格使用 | 来分隔不同的单元格,使用 - 来分隔表头和其他行。
语法格式如下:

1
2
3
4
|  表头   | 表头  |
| ---- | ---- |
| 单元格 | 单元格 |
| 单元格 | 单元格 |

显示效果:

表头 表头
单元格 单元格
单元格 单元格

设置表格的对齐方式:

  • -: 设置内容和标题栏居右对齐。
  • :- 设置内容和标题栏居左对齐。
  • :-: 设置内容和标题栏居中对齐。

实例如下:

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

显示效果:

左对齐的一列 右对齐的一列 居中对齐的一列
单元格 单元格 单元格
单元格 单元格 单元格

代码

代码片段

代码片段可以用一个或两个反引号”`“包起来,比如:

1
c语言常用`scanf()`和``printf()``函数来输入输出。

显示为:c语言常用scanf()printf()函数来输入输出。

代码段落

代码段落可以用三个反引号”```”或三个”~~~”来显示(三个以上也可以),比如:

1
2
3
4
5
6
7
8
9
```
#include <stdio.h>

int main(int argc, int argv[])
{
printf("hello world!\n");
return 0;
}
```

显示为:

1
2
3
4
5
6
7
#include <stdio.h>

int main(int argc, int argv[])
{
printf("hello world!\n");
return 0;
}

在前面的三个反引号后面加入编程语言的关键字,还可以显示语法高亮,比如:

1
2
3
4
5
6
```python
import numpy as np

def sigmoid(self, input):
return 1.0 / (1.0 + np.exp(-input))
```

显示为:

1
2
3
4
import numpy as np

def sigmoid(self, input):
return 1.0 / (1.0 + np.exp(-input))

以下为常用的语言的语法关键字

语言 关键字
C cpp, c
Java java
Python py, python
Shell bash, shell
C# csharp, c#
CSS css
JavaScript js, jscript, javascript
XML xml , xhtml, xslt, html
PHP php
SQL sql

转义字符

  markdown里有些字符代表特殊功能,比如 * 代表无序列表开始标志,如果只是想显示这些符号,而不使用符号的特殊功能,需要在符号前加一个 \ ,markdown里需要转义的字符如下:

原始字符 显示效果
反斜杠 \\ \
反引号 \` `
星号 \* *
井号 \# #
加号 \+ +
减号 \- -
\. .
感叹号 \! !
大括号 \{\} {}
中括号 \[\] []
小括号 \(\) ()

其他

目录

  部分markdown平台支持目录自动生成,比如gridea可以用@[TOC]来插入目录,Typora用[TOC]插入目录。如果平台不支持的话,可以使用mardown的编辑器来生成,或者使用上面提到的列表和内部链接自己做一个,当然这样比较麻烦,而且无法与标题自动同步。

脚注

markdown支持添加脚注,点击脚注后,会跳转到文档的底部的说明位置,语法如下:

1
2
[^关键字]
[^关键字]: 脚注说明内容

第一行代码添加了一个脚注,第二行代码对脚注进行了定义,如果对添加的脚注不进行定义的话,脚注无法显示。markdown在显示脚注的时候会按照顺序进行编号,下面是一个例子。

1
2
3
4
5
文本[^第一个脚注]
[^第一个脚注]: 这里是第一个脚注的说明。

文本[^第二脚注]
[^第二脚注]: 这里是第二个脚注的说明。

显示结果:
文本1

文本2

分割线

markdown可以在一行上连用三个或者三个以上的星号、减号、或者下划线来表示分割线。

1
2
3
***
---
___

显示效果:




数学公式

可以参考这个大佬的链接http://blog.lisp4fun.com/2017/11/01/formula


  1. 1.这里是第一个脚注的说明。
  2. 2.这里是第二个脚注的说明。

分享到:
0%