前言:
- 本文中所有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.效果
- 这是有序列表
- 这是有序列表
- 这是有序列表
- 这是有序列表
备注
- 两个列表之间不能相邻,否则会解释为嵌套的列表
- 无序列表的项目符号可使用 *,+,- 效果是相同的。
- 列表与后续内容之间需要一个空行隔开,即:列表是一个段落
- 列表允许多层次嵌套
- 可以在项目中包含段落,只需将段落前添加一个 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.效果
中默认就是居中显示,展示的图片大小也是固定的,而且貌似不能使用div标签。。在此仅仅给大家展示下写法,效果就在其他编辑器的预览上看一下好了。
参考文献
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 语法详解
细节要点
- 首行缩进:在段首加入"
”、“
&emsp
"、“ 
”来输入一个空格- 普通段落尽量不用空格或制表符来缩进,即使使用它们后得到的效果看似是对的。
- [数字] + ‘.’ + [空格]的形式会呼出有序的项目列表。因此如果你在正文中恰好出现这种形式,那么可以在‘.’的前面加上‘\’来避免出现有序列表。
- 引用区块“>”和代码区块“```”有不同的用途:“>”引用区块中的文本保留Markdown语法,而“```”代码块中的文本不保留Markdown语法。
Markdown的局限性
1.Markdown没有居中和右对齐功能,除非做扩展。
2.不同的Markdown工具功能会不一样,高级功能并不是都有的。
3.markdown 是个顺手的工具,但是不支持语法高亮,不显示代码行号
4.目录索引很重要,写技术类文章条理很重要,在开篇有个目录,非常有必要
5.尚不支持的标记和不足
- 用于生成目录索引的 [TOC]
- 用于说明文章标签的 tags
- 定义列表和待办事宜 Todo 列表
- 数学公式
- 各种图形:流程图、时序图、甘特图
- 其他技术,如:{mermaid}
- 区块代码中不显示行号
6.给的一点建议
- 对于普通用户来讲,定义列表、生成目录索引和文章标签功能是十分必要的,希望能够尽快增加这些功能。希望能够实现预览图和编辑器的同步滚动功能。
- 对于理工狗来讲,编辑 LaTex数学公式是非常必要的功能,希望能够尽快增加这个功能。
- 对于代码狗来讲,区块代码中显示行号,以及流程图、时序图是非常必要的功能,希望能够尽快增加这些功能。
- 其他的诸如:待办事宜列表、甘特图,mermaid等功能,可以慢慢实现。
-
《Markdown让文字更加精致》 ↩
-
注释内容 ↩