Markdown Basic Grammar

Markdown is a lightweight markup language that allows people to write documents in plain text format that is easy to read and write.

Posted by Dusign on 2019-09-05
Words 2.1k and Reading Time 7 Minutes
Viewed Times

Markdown is a markup language in plain text format. Through simple markup grammar, it can make ordinary text content have a certain format.Markdown is widely used in many websites to write help documents or to publish messages in forums. For example: GitHub, brief book, reddit, Diaspora, Stack Exchange, OpenStreetMap, SourceForge, etc.

编辑器

Markdown 在许多平台都有好多不同的编辑器,这里笔者根据自己的实际经历推荐给大家几款编辑器,希望大家会喜欢。

在这里笔者首先要推荐的就是使用文本编辑器写 Markdown,例如 VS Code 、Sublime Text 、 Atom 等,这些文本编辑器不仅能写代码,还能顺别用 Markdown 写文档,这样比较方便,但是又一个缺点就是不能实时预览,想预览的画就需要在浏览器上刷新预览。

如果大家不喜欢用上面的编辑器写 Markdown 或者觉得不能实时刷新而不方便的话,还有很多专门写文档的 Markdown 编辑器,Windows 上有 MarkdownPad 、Typee。Mac 平台推荐 Ulysses,这一一款很古老的 文档编辑器,堪称神器。Linux 平台笔者一般只是跑程序,需要的话大家自己找吧。

基本语法

Markdown语法比较简单,不过仍然需要花费一定的功夫记忆,而且每一种样式有不同的实现方式,这里笔者只介绍一种常用的写法,同时也是笔者自己习惯的写法。

标题

Markdown中标题使用 # 标记,使用 # 可表示 1-6 级标题,一级标题对应一个 # ,二级标题对应二个 #,依次类推。需要注意的是 # 和标题内容之间有一个空格。

1
2
3
4
5
6
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

段落

Markdown 段落没有特殊的格式,直接编写文字就好,段落的换行是使用两个以上空格加上回车。

字体

Markdown字体用 * 标记,用法如下

1
2
3
*斜文本*
**粗体文本**
***粗斜体文本**

分割线

可以在一行中用三个以上的减号来建立一个分隔线,行内不能有其他东西,也可以在减号中间插入空格来建立分割线,用法如下

1
2
---
- - -

删除线

如果段落上的文字要添加删除线,只需要在文字的两端加上两个波浪线 ~~ 即可,用法如下

1
~需要添加删除线的内容~

下划线

下划线可以通过 HTML 的 <u> 标签来实现,用法如下

1
<u>需要添加下划线的内容</>

脚注

在写文章的时候有时候会用到脚注,Markdown也给我们定义了脚注的写法,用法如下

1
2
[^要脚注的文本]
[^要脚注的文本]:脚注的内容

注:Markdown 的脚注现在有些博客平台不支持,例如笔者使用的HEXO博客平台。

列表

Markdown 支持无序列表和有序列表,同时还支持列表嵌套

无序列表

无序列表使用 + 或者 - 标记,使用方法如下

1
2
3
4
5
6
7
+ 第一项
+ 第二项
+ 第三项

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

有序列表

有序列表使用数字加上 . 来标记,使用方法如下

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

列表嵌套

列表嵌套只需要在子列表中的标记前添加四个空格或者一个 Tab 即可,使用方法如下

1
2
3
4
5
6
1. 第一项
- 嵌套列表第一项
- 嵌套列表第二项
2. 第二项
- 嵌套列表第一项
- 嵌套列表第二项

区块

Markdown 中的引用是在引用的内容前面加 > 符号,然后后面要加一个空格,使用方法如下

1
2
3
> 引用的第一行内容
> 引用的第二行内容
> 引用的第三行内容

引用还可以嵌套,引用嵌套时内层引用使用多个 > ,即内层引用比外层多一个。引用中也可以使用列表,列表的使用方法如上。列表中也可以使用引用,使用的时候引用相对于列表缩进 4 个空格或者一个 Tab 。使用方法如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
引用嵌套
> 第一层
>> 第二层
>> 第三层

引用中使用列表
> - 无序列表第一项
> - 无序列表第二项
> 1. 有序列表第一项
> 2. 有序列表第二项

列表中使用引用
- 列表第一项
> 引用的第一行
> 引用的第二行
- 列表第二项

代码

Markdown 中还可以写入代码,如果是段落上的一个函数或者是一个片段的代码,只需要用 ` 包起来即可,用法如下

1
`这里是行内代码`

如果代码中包含 ` ,则前后需要使用 `` ,并且内容两端需要空格,用法如下

`` ` ``

如果想输入一个代码块,则可以使用 ``` 包裹多行代码,并且在开头的一个 ``` 后面指定一种语言(可以不指定),用法如下

```python 
from pythonds.graphs import Graph, Vertex
from pythonds.basic import Queue

def bfs(g,start):
  start.setDistance(0)
  start.setPred(None)
  vertQueue = Queue()
  vertQueue.enqueue(start)
  while (vertQueue.size() > 0):
    currentVert = vertQueue.dequeue()
    for nbr in currentVert.getConnections():
      if (nbr.getColor() == 'white'):
        nbr.setColor('gray')
        nbr.setDistance(currentVert.getDistance() + 1)
        nbr.setPred(currentVert)
        vertQueue.enqueue(nbr)
    currentVert.setColor('black')
```

链接

链接在文档里面是很常见的,Markdown 提供了链接功能,使用方法如下

[链接名称](链接地址) 或者 <链接地址>

图片

Markdown 的插入图片的语法非常简单,和链接的语法非常相似,知识在前面多了一个 ! ,使用方法如下

![alt](src)
![alt](src "title")

虽然 Markdown 可以插入图片,但是没法指定图片的高度,如果想要指定图片的高度的话可以使用 HTML 中的 <img> 标签,使用方法如下

<img src="" alt="" width="">

表格

Markdown 提供了表格的功能,制作表格时使用 | 来分割不同的单元格,使用 - 来分割表头和其他行,使用方法如下

|表头|表头|
|----|----|
|单元格|单元格|
|单元格|单元格|

同时我们还可以在表格中设置对齐方式:

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

对齐的使用方法如下

| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |

进阶语法

Markdown 语法除了上面的这些常用的之外,还有一些不太常用,但是有的时候还是会用到,例如下面列举的这些语法。

HTML 元素

不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。

目前支持的 HTML 元素有: <kbd> <b> <i> <em> <sup> <sub> <br>

转义

Markdown 使用了很多特殊符号来表示特定的意义,如果需要显示特定的符号则需要使用转义字符,Markdown 使用反斜杠转义特殊字符。

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号

\   反斜线
`   反引号
*   星号
_   下划线
{}  花括号
[]  方括号
()  小括号
#   井字号
+   加号
-   减号
.   英文句点
!   感叹号

公式

当你需要在编辑器中插入数学公式时,可以使用两个美元符 $$ 包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。

流程图

Markdown 的流程图画法是将流程图的代码包裹在 ```flow``` 之间,Markdown的语法只能画简单的流程图,同时好多博客系统也不支持 Markdown 流程图,比如笔者使用的 HEXO 就不支持。

流程图也可以使用 Mermaid,这是一个用于画流程图、状态图、时序图以及甘特图的一个 JS 渲染库,它生成的不是图片,而是 HTML 代码,因此安全性比较高,可以访问 Mermaid 官网或者在 Github 上下载安装。

复杂一点的流程如需要使用Xmind,Xmind可以画各种复杂的流程图、鱼骨图以及思维导图,它是一个思维导图软件,在各个平台都有相应的版本。


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !

...

...

00:00
00:00