Markdown 基本语法

Markdown 基本语法

[TOC]

一、前言

  1. Markdown是什么?

    轻量级的纯文本标记语言,通过简单的标记,使得普通文本内容具有一定的格式。

  2. Markdown的有哪些优点?

    • 简单直观,纯文本,写作时摆脱排版的干扰,专注于文字内容
    • 软件依赖小,任意一个文本编辑器均可用于编写markdown文档
    • 学习成本低,语法简单,极易操作,5分钟学会,常用标记符号不超过10个
    • 可以导出为htmlpdf
  3. Markdown的不足?

    • 格式简单,不支持复杂的格式
    • 原始Markdown支持的格式有限,出现了众多扩展,扩展之间不兼容
    • Markdown没有标准化,版本众多,不同的编辑器格式会存在细微的差异,由于github的原因当前比较流行的是gfm ,Markdown作者的反对标准化立场,现行的Markdown解析器百花齐放,你所用到的网站或者App的解析器可能都不一样。

二、语法

1. 标题

标题是每篇文章都需要且最常用的一种格式,再Markdown中,如果一段文字被定义为标题,只需要在这段文字前加#即可,一个#号代表一级标题,两个#是二级标题,以此类推,最多支持6级 ,对应html的<h1></h1>~<h6></h6>标签


1
2
3
4
5
6
# 一级标题 `h1`
## 二级标题 `h2`
### 三级标题 `h3`
#### 四级标题 `h4`
##### 五级标题 `h5`
###### 六级标题 `h6`

一级标题 h1

二级标题 h2

三级标题 h3

四级标题 h4

五级标题 h5
六级标题 h6

2. 列表

列表分为有序列表和无序列表,对应HTML里的有序列表ol li和无序列表ul li标签

  • 有序列表 <ol> <li>

    在文字前加1. 2. 3.

    1
    2
    3
    1. Item 1
    2. Item 2
    3. Item 3
    1. Item 1
    2. Item 2
    3. Item 3
  • 无序列表<ul> <li>

    在文字前加-*

    1
    2
    3
    4
    * Item 1
    * Item 2
    * Item 3
    - Item 4
    • Item 1
    • Item 2
    • Item 3
    • Item 4
      • 列表间支持多级嵌套
      • 如果列表没有生效 ,试试在符号和文字间加个空格

3. 引用 <blockquote>

当你在文章中引用了一段别人说的话,可以使用引用格式 ,在文本前添加大于号>即可

1
> 两脚任从行处来, 一灵常与气相随, 有时四大熏熏醉, 借问青天我是谁? --- 王重阳

效果如下:

两脚任从行处来, 一灵常与气相随, 有时四大熏熏醉, 借问青天我是谁? — 王重阳

引用也是可以嵌套的:

君不见黄河之水天上来,奔流到海不复回。

君不见高堂明镜悲白发,朝如青丝暮成雪。

人生得意须尽欢,莫使金樽空对月

4. 强调

  • 粗体 <b>

    文字左右两边分别使用*包起来,就可以加粗

    1
    **粗体**
  • 斜体 <i>

    文字左右两边分别使用*包起来,就是斜体

    1
    *斜体*
  • 斜体加粗 <b><i>

    文字左右两边分别使用*包起来,就是斜体加粗

    1
    ***斜体加粗***
  • 删除线 <s>

    将要删除的文字,使用~包起来,就是删除线

    1
    ~~删除线~~

5. 图片与链接

插入图片与插入链接的语法非常相似,区别在于插入图片前多了一个!

  • 插入图片<img>

    1
    ![](http://image.werty.cn/source_blog/20191213233025.png)

    效果:

  • 插入链接<a>

    1
    2
    [欢迎访问我的博客](http://werty.cn)
    [http://werty.cn](http://werty.cn)

    效果:
    欢迎访问我的博客
    http://werty.cn

6. 代码框

作为一名程序猿,在文档里优雅的显示代码,推荐使用Markdown的代码框语法

  • 行内代码

    使用两个反引号`号把中间的代码包裹起来即可

    echo "Hello World!"

    1
    `echo "Hello World!"`
  • 多行代码

    前后一行各使用三个反引号`号把中间的代码包裹起来

    多行代码已经在本文中多次演示,每一个语法展示都是一个多行代码块

    1

    echo “你好,我是多行代码块”

    1
     

    1
    echo "你好,我是多行代码块"

多行代码tab支持缩进,支持指定语言

1
2
3
4
5
​```php
<?php
echo "php是世界上最好的语言!"
?>

1
2
3
4
5

```php
<?php
echo "php是世界上最好的语言!"
?>

反引号键在键盘esc键下方,1键左边

代码区块中,一般的 Markdown 语法不会被转换,就如本文,你可以很容易地以 Markdown 语法撰写 Markdown 语法的使用指南

7.表格

表格是Markdown相对比较难用的地方,纯文本模式下,看起来不是很友好

1
2
3
4
| 表头 | 表头 | 表头 |
| ---- | :---:| ---: |
| 这是表格中的一个单元格 | 我也是表格中的一个单元格 | 我是文本居右的单元格 |
| 我是文本居左的单元格 | 我是居中的单元格 | 我是居右的单元格 |
表头 表头 表头
这是表格中的一个单元格 我也是表格中的一个单元格 我是文本居右的单元格
我是文本居左的单元格 我是居中的单元格 我是居右的单元格
表格内换行
可以使用<br>
| |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

语法说明:

1. `| : -`之间的空格会被忽略,不会影响布局
2. 表格的语句上一行必须为空行
3. 默认标题栏居中对齐,内容居左对齐
4. 内容和 `|`之间的多余空格会被忽略,每行第一个`|`和最后一个`|`可以省略,`-`至少有一个
5. 表格内如果需要换行,可以使用`html`换行标签实现

### 8. Markdown 扩展语法

​ 扩展语法需要解释器支持才能使用,这些扩展丰富了Markdown的功能,但是有点背离markdown的初衷

​ 从Markdown的专注与写作的初衷来讲,扩展语法并不是

* LeTeX

```LeTex
$ 2H_2O_2 \xlongequal[]{\text加热} 2H_2O + O_2 $

$2H_2O_2 \xlongequal[]{\text二氧化锰} 2H_2O + O_2$

$ 2kClO_3 \xlongequal[加热]{Mn0_2} 2KCl + 3O_2 $

$${2\rm{C_2H_5OH}}\xlongequal[140^\circ {\rm C}]{\text{稀硫酸}}{\rm C_2H_5OC_2H_5+H_2O} $$

附: 参考文档

  1. Markdown——入门指南