Markdown语法汇总

前言:

  • 本文中所有Markdown语法在有道云笔记的Markdown中全部示范成功,其中的一些语法是中实现不了的。
  • 本文是鄙人的学习笔记汇总,素材皆来源于网络。在文末皆载明了出处。希望作为大家学习Markdown的参考资料。


(1)行内代码

用法介绍
Markdown中,我们用一对`表示行间代码,通常行间代码会加上底色。这个标记符号也可用于普通的文字。

1.代码

`这是行间代码`
`This is inline code`

2.效果

这是行间代码
This is inline code


(2)制作标题

用法介绍
在Markdown中,我们通过在文字左边添加#来表示标题,且#的数量决定了标题的级别,最多可以表示六级标题,即使用六个#。
当然也可以在文字左右侧都使用#,比如#这是一级标题#,效果同上

a.代码

# 一级标题
## 二级标题
### 三级标题
#### 四级标题

# 一级标题 #
## 二级标题 ##
### 三级标题 ###
#### 四级标题 ####

b.效果

一级标题

二级标题

三级标题

四级标题

一级标题

二级标题

三级标题

四级标题


(3)改变字体

粗体:Markdown中,用一对**表示强调,被强调的文字以粗体显示。
斜体:Markdown中,用一对*表示斜体。

1.代码

*要改变字体为斜体的内容*
**要改变字体为粗体的内容**
***要改变字体为斜体+粗体字的内容***

注意符号和文本之间没有空格

2.效果

要改变字体为斜体的内容
要改变字体为粗体的内容
要改变字体为斜体+粗体字的内容


(4)代码块工具

1.代码区域设置符号-```

用法介绍
Markdown具有书写代码块(code block)的功能,
而且可以为不同的语言进行相应的代码高亮。
代码块用一对```括起来,在第一个```后面紧跟语言的名称即可。
如果你是个程序猿,需要在文章里优雅的引用代码框,
在 Markdown 下实现也非常简单,
只需要用两个` 把中间的代码包裹起来,如 `code`。

插入代码的方式有两种

1.在每行代码前加入4个空格或者添加一个制表符(TAB键)
2.在代码两侧添加三个反引号‘```’。

  • ```代码块```
  • ```
    一整段代码
    ```

两种方法都有需要注意的地方,很多入门文档未能提及。

1.其缩进是相对于当前格式状态下的。
在列表项状态下,需要输入两次TAB键(制表符)才能以代码格式插入。
例如:

a.代码:

•列表项
•列表项
[TAB][TAB]printf("hello world!");

b.效果:
    * 列表项
    * 列表项  
     printf("hello world!");  

2.反引号最好在代码的前后行添加,而不是直接加在代码两边。


用一个符号也可以制作代码块,看起来不错吧!

a.代码

```
可以高亮度显示的代码内容
```

b.效果

   可以高亮度显示的代码内容

2.段落开头文字前面加四个空格

3.段落开头文字前面加一个制表符(Tab)

详细请看markdown如何把代码变成文本

4.双标记

既可作为区块标记又可作为行内标记的标记。

(1). 代码块

1) 行内代码块

语法:
方法一:使用两个 ` 将代码包含起来
方法二:使用两个```将代码包含起来

a.示例代码
在 Java 输出 Hello, world :`System.out.print("Hello, World!");`
在 Java 输出 Hello, world :```System.out.print("Hello, World!");```
b.效果

在 Java 输出 Hello, world :System.out.print("Hello, World!");
在 Java 输出 Hello, world :System.out.print("Hello, World!");

2) 多行代码块

语法:
方法一:只需要每行都缩进 4 个空格即可,
方法二:使用```框起来。

a.示例1
代码 (行前4个空格)
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
效果(行前4个空格)
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
b.示例2
代码 (```)
```
// JQuery 的 Hello, world
$(function(){
alert("Hello, world!")
});
```
效果 (```)
// JQuery 的 Hello, world
$(function(){
    alert("Hello, world!")
});

3)注意事项:

在代码区块内部,", <>,& 将会自动转换为转义字符  
在代码区块内部,Markdown 标记将保持原样,即:星号(*)就是星号(*),不被解释为特殊标记,
这样就可以不能继续使用 Markdown 语法了

(5)格式工具

1.换行符

a.行尾敲击两个空格 ,然后回车键

备注:
1.单个回车,视为空格。连续回车,才能分段。
2.行的开头空4个空格/一个tab,表示接下来的内容是程序代码。

2.底色工具

尚未确定

3.分隔符

  • tab
  • 三个以上的***
  • 三个以上的---

4.首行缩进

由于markdown语法主要考虑的是英文,所以对于中文的首行缩进并不太友好,两种方法都可以完美解决这个问题。
把输入法由半角改为全角。 两次空格之后就能够有两个汉字的缩进。
在开头的时候,先输入下面的代码,然后紧跟着输入文本即可。分号也不要掉。
直接写:

a.代码:

半方大的空白 或 
全方大的空白 或 
不断行的空白格 或 

b.效果:

半方大的空白 或 
全方大的空白 或 
不断行的空白格 或


5.Markdown的转义字符

Markdown 中,如需显示有特定意义的符号,如:*,# 等,可使用 反斜杠 \ 进行转义。可对如下字符进行转义:

*
`
*
_
{}
()
#
+
-
.
!

a.代码

\*

b.效果

*


6. 特殊字符的自动转换

在 HTML 文件中,有两个字符需要特殊处理: < 和 &,必须使用转义字符:& lt ; 和 & amp ;
Markdown 中,你可以自由的书写 < 和 &,编辑器会智能的进行判断:当这些符号用于 HTML 标签中,他们将保留原型;当他们单独使用时,将会转换为字符实体。
在代码块中,它们将统统被转换为字符实体,即:原样显示。

7. Markdown 与 HTML 的关系

HTML 是一种发布的格式,Markdown 是一种书写的格式。
Markdown 的格式语法只涵盖纯文本可以涵盖的范围。
在 Markdown 中可直接使用 HTML 标签,但需要注意

  • 对于 HTML 区块元素――如 div、table、pre、p 等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符(tab)或空格来缩进
  • HTML 的行内标签——如 span、cite、del 可以在 Markdown 的段落、列表或是标题里随意使用。
  • 在 HTML 的区块标签中的 Markdown 标签是没有效果的

8.行内标记

行内标记和其他标记共处一行。

(1) 斜体

语法:使用前后各 1 个 *(或_) 包含的文字是 斜体 文字

a.示例代码
*斜体*,   
_斜体_  
b.效果

斜体,
斜体

(2)粗体

语法:使用前后各 2 个 (或_) 包含的文字是粗体*文字

a.示例代码
**粗体**,  
__粗体__  
b.效果

粗体
粗体

(3) 删除文字

语法:使用前后各 2 个 ~ 包含的文字是删除文字

a.示例代码
~~删除~~ 
b.效果

删除

(4)粗斜体

语法:在(或_)中嵌套 (或) 或 在_(或)中嵌套**(或__)即可得到 粗斜体。

a.示例代码
_**粗斜体**_, *__粗斜体__*
**_粗斜体_**, __*粗斜体*__
b.效果

粗斜体粗斜体
粗斜体粗斜体

(6)列表工具

1. 在Markdown的语法中,我们可以使用1.、2.表示有序列表,
即数字+点,不过注意序号和后面文字必须得有空格。  
2.无序列表用“-”或者“*”表示,同样的,-和*和后年的文字间必须有空格。  
且通过按tab键可以实现列表的嵌套。

1.无序列表

a.代码

- 这是无序列表
- 这是无序列表
    - 这是无序列表
    - 这是无序列表
- 这是无序列表
- 这是无序列表
* 这是无序列表
* 这是无序列表

b.效果

  • 这是无序列表
  • 这是无序列表
    • 这是无序列表
    • 这是无序列表
  • 这是无序列表
  • 这是无序列表
  • 这是无序列表
    • 这是无序列表

2.有序列表

a.代码

1. 这是有序列表
2. 这是有序列表
3. 这是有序列表
4. 这是有序列表

b.效果

  1. 这是有序列表
  2. 这是有序列表
  3. 这是有序列表
  4. 这是有序列表

备注

  • 两个列表之间不能相邻,否则会解释为嵌套的列表
  • 无序列表的项目符号可使用 *,+,- 效果是相同的。
  • 列表与后续内容之间需要一个空行隔开,即:列表是一个段落
  • 列表允许多层次嵌套
  • 可以在项目中包含段落,只需将段落前添加一个 tab 或 4 个空格
  • 区块标记:是指内容独占一块,需前后换行,不和其他标记共处一行的标记。
  • 段落:即是一段连续的文字,可包含*、空格、换行、tab等字符。两个段落之间使用空行分隔。注意:换行不是分段的标识,空行才是.

(7)引用工具

Markdown中,用符号>开启一行引用,如果文字有多行则用多个>,
同样地>和文字间必须有空格。
这里补充一点:在Markdown中,空格+空格+Enter为换行,
而Enter为另起一段落,这在书写引用时是非常重要的

1.代码

> 这是引用  
> 换行请按`空格+空格+Enter`  
> 这是引用

2.效果

这是引用
换行请按空格+空格+Enter
这是引用

3.注意事项:

大于号 和 文字必须有一个空格
可以在每行之前加 > ,也可以在段落之前加 1 个 >
引用内部可以使用其他 Markdown 标记

引用内部可以添加新的引用,只需再加一个大于号


(8)链接工具(链接网址/链接图片)

地址:Markdown中,用[文字] (超链接地址) 来表示超链接。
图片:Markdown中,用![图片名称(图片地址)来**图片。其中图片名称可有可无,没有的情况下用空格代替,图片地址可以为图片的URL,或者本地图片的路径。

1.链接地址

a.代码

[ 有道云笔记官网 ](www.baidu.com/)

b.效果

有道云笔记官网

2.链接图片

a.代码

![有道云笔记图片](http://note.youdao.com/favicon.ico)
![天气预报](http://cdn.heweather.com/cond_icon/309.png)    
备注:括号一定要是英文字符哦!

b.效果

有道云笔记图片
天气预报

所有符号都是非中文的字符


(9)流程图工具

1.代码

```
graph TD
A[NO.1]-->B(No.2)
B --> C{think}
    C -->|是| C1[No.3]
    C -->|否| C2[No.4]
    C -->|随机|D[No.4]
    
```

2.效果

    graph TD
    A[NO.1]-->B(No.2)
    B --> C{think}
        C -->|是| C1[No.3]
        C -->|否| C2[No.4]
        C -->|随机|D[No.4]
        

(10)甘特图工具

1.代码

```
gantt
dateFormat YYYY-MM-DD
title 产品开发计划表
section 初期阶段  
明确需求:2017-04-11,10d
section 中期阶段  
跟进开发:2017-04-22,10d
section 后期阶段  
走查测试:2017-05-03,20d

```

2.效果

   gantt
   dateFormat YYYY-MM-DD
   title 产品开发计划表
   section 初期阶段  
   明确需求:2017-04-11,10d
   section 中期阶段  
   跟进开发:2017-04-22,10d
   section 后期阶段  
   走查测试:2017-05-03,20d
   

(11)表格工具

Maekdown中用|来表示表格的行列框线,从而构成表格。

1.代码

    | 序号 | Value | Qty |
    |-|-|-|
    |1|PDF阅读器|正版|
    |2|有道云笔记|正版|
    |3|百度网盘|正版|
    |4|MS office|盗版|

具有对齐功能的表格

|  序号 |value |  qty  |
|:-:|:-:|:-:|
|1|pdf阅读器|正版|
|2|有道云笔记|正版|
|3|百度网盘|正版|
|4|MS office|盗版|

2.效果

序号 value qty
1 pdf阅读器 正版
2 有道云笔记 正版
3 百度网盘 正版
4 MS office 盗版
序号 value qty
1 pdf阅读器 正版
2 有道云笔记 正版
3 百度网盘 正版
4 MS office 盗版

(13)待办事项

1.代码

- [ ] 未完成的1
- [ ] 未完成的2
    - [x] 已完成的1
    - [x] 已完成的2
- [ ] 未完成的3
- [ ] 未完成的4

2.效果

  • [ ] 未完成的1
  • [ ] 未完成的2
    • [x] 已完成的1
    • [x] 已完成的2
  • [ ] 未完成的3
  • [ ] 未完成的4

(14)添加脚注

1.代码

Markdown[^mark]
[^mark]: 《Markdown让文字更加精致》

语法:
待解释文字[^脚注 id]
[^脚注 id]:注释内容

2.效果

Markdown[1]

待解释文字[2]

3.注意事项

脚注 id 必须唯一  
无论脚注 id 如何起名,显示时一律标为数字,并且按出现顺序排列  


(15)分隔符

分割线的语法只需要另起一行,连续输入三个及以上 星号 *** 即可。
或者是三个及以上 下划线符号---即可。

1.代码

-----------
********

2.效果



(16)首行缩进

写文章时,我们常常希望能够首行缩进,这时可以在段首加入 来输入一个空格.加入 来输入两个空格。

a.代码

一语未了,只听后院中有人笑声,说:“我来迟了,不曾迎接远客!"

b.效果

一语未了,只听后院中有人笑声,说:“我来迟了,不曾迎接远客!"


(17)添加空行

在markdown中添加空行可以结束先前的格式状态。个人建议在改变格式时,均添加一个空行。

a.代码

>引用状态
[空行]
###标题状态
[空行]
------
[空行]
- 列表状态
- 列表状态

b.效果

引用状态

标题状态


  • 列表状态
  • 列表状态

(18)限制图片大小并居中

许多 MarkDown 编辑器中直接按原图大小显示图片,造成版面凌乱。  
如何让图片像中那样大小一致居中显示呢?使用该命令  
图片名称设置图片大小,再用
命令包裹达到居中效果。

a.代码

亦菲表演机器猫

如果你使用的是 Mou,那么还可以使用如下语法 ![](链接地址 =宽x高)


![亦菲表演机器猫](http://ww2.sinaimg.cn/bmiddle/88070423gw1ep  
30aw8an7g204d04gkgd.gif =400x400)

b.效果

Markdown语法汇总_第1张图片
亦菲表演机器猫
中默认就是居中显示,展示的图片大小也是固定的,而且貌似不能使用div标签。。在此仅仅给大家展示下写法,效果就在其他编辑器的预览上看一下好了。


Markdown语法汇总_第2张图片
亦菲表演机器猫

参考文献

1.Markdown | 让文本更加精致【语法篇】
2.Markdown入门指南
3.Markdown写作浅谈
4.认识与入门Markdown
5.怎样引导新手使用 Markdown?
6.Markdown 语法写作入门指南 by ibuick
7.图灵社区 - 怎样使用 Markdown
8.人人能学会的极客语法Markdown-有道云笔记官方
9.Markdown功能
10.怎样使用有道云笔记markdown
11.MarkDown使用小技巧
12.markdown语法小结
13.使用pandoc Markdown进行学术论文写作
14.使markdown文档中的图片居中
15.一段JS代码让Markdown自动生成侧边栏目录
16.如何用markdown生成多级有序列表?
17.如何阅读一本书
18.markdown入门指南
19.从markdown到Gitbook,高逼格协作工具
20. Markdown 语法详解

细节要点

  1. 首行缩进:在段首加入"”、“&emsp"、“ ”来输入一个空格
  2. 普通段落尽量不用空格或制表符来缩进,即使使用它们后得到的效果看似是对的。
  3. [数字] + ‘.’ + [空格]的形式会呼出有序的项目列表。因此如果你在正文中恰好出现这种形式,那么可以在‘.’的前面加上‘\’来避免出现有序列表。
  4. 引用区块“>”和代码区块“```”有不同的用途:“>”引用区块中的文本保留Markdown语法,而“```”代码块中的文本不保留Markdown语法。

Markdown的局限性

1.Markdown没有居中和右对齐功能,除非做扩展。
2.不同的Markdown工具功能会不一样,高级功能并不是都有的。
3.markdown 是个顺手的工具,但是不支持语法高亮,不显示代码行号
4.目录索引很重要,写技术类文章条理很重要,在开篇有个目录,非常有必要
5.尚不支持的标记和不足

  1. 用于生成目录索引的 [TOC]
  2. 用于说明文章标签的 tags
  3. 定义列表和待办事宜 Todo 列表
  4. 数学公式
  5. 各种图形:流程图、时序图、甘特图
  6. 其他技术,如:{mermaid}
  7. 区块代码中不显示行号

6.给的一点建议

  1. 对于普通用户来讲,定义列表、生成目录索引和文章标签功能是十分必要的,希望能够尽快增加这些功能。希望能够实现预览图和编辑器的同步滚动功能。
  2. 对于理工狗来讲,编辑 LaTex数学公式是非常必要的功能,希望能够尽快增加这个功能。
  3. 对于代码狗来讲,区块代码中显示行号,以及流程图、时序图是非常必要的功能,希望能够尽快增加这些功能。
  4. 其他的诸如:待办事宜列表、甘特图,mermaid等功能,可以慢慢实现。

  1. 《Markdown让文字更加精致》 ↩

  2. 注释内容 ↩

你可能感兴趣的:(Markdown语法汇总)