Markdown 基础语法
一、概述
大家好,我是Sruta 苏塔。
最近,我要开始写作并更新我的技术博客了,打算是一处写作,多处发表。如果能做到一处写作而多处发表时格式一样、而又不需要每次都重新调整一下格式呢?因为早有耳闻Markdown
,于是很自然而然想到它。而且,尽量多地只使用键盘而少使用鼠标,这不是就是大多数程序员追求的一种输入方式吗?!于是搜集资料,学习语法,并整理如下。
用简洁易懂的语言和尽量美观的形式分享我所学的知识,这是我希望能够一直贯穿在我的博文分享之旅中的。Hope everyone enjoy it and can really learn something from it.
何为Markdown
?
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。——from 百度百科
二、基础语法
2.1 标题
标题的语法很直观,以#
开头,几个#
即表示几级标题。
语法:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 最小只有六级标题
你可以选择性地「闭合」类 atx 样式的标题,这纯粹只是美观用的,若是觉得这样看起来比较舒适,你就可以在行尾加上 #,而行尾的 # 数量也不用和开头一样(行首的井字符数量决定标题的阶数):
# 一级标题 #
## 二级标题 ##
### 三级标题 ###
#### 四级标题 ####
##### 五级标题 #####
###### 最小只有六级标题 ######
以上两种写法的效果是一样的,如下:
一级标题
二级标题
三级标题
四级标题
五级标题
最小只有六级标题
2.2 斜体,加粗,斜体&加粗,删除线
语法:
*我是斜体*
**我被加粗了**
***我被加粗&斜体了***
~~我被删除了~~
效果:
我是斜体
我被加粗了
我被加粗&斜体了
我被删除了
2.3 引用
在引用的文字开头处加>
即可,而且支持多层引用,几个>
表示几层引用。
法语:
> 我是被引用的内容,而且是第一层引用。
>> 我是第二层引用。
>>> 我是第三层引用。
>>>> 我是第四层引用。
>>>>> 我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。
效果:
我是被引用的内容,而且是第一层引用。
我是第二层引用。
我是第三层引用。
我是第四层引用。
我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。我是第五层引用。
语法:
> 对于超过一行的引用,你可以在每一行开头处都加上一个`>`号,
> 就像在这里示例的一样。
> 当然也可以使用更简略的写法,即只在段头写一次`>`号即可。当然也可以使用更简略的写法,即只在段头写一次`>`号即可。当然也可以使用更简略的写法,即只在段头写一次`>`号即可。当然也可以使用更简略的写法,即只在段头写一次`>`号即可。当然也可以使用更简略的写法,即只在段头写一次`>`号即可。
效果:
对于超过一行的引用,你可以在每一行开头处都加上一个
>
号,
就像在这里示例的一样。
当然也可以使用更简略的写法,即只在段头写一次
>
号即可。当然也可以使用更简略的写法,即只在段头写一次>
号即可。当然也可以使用更简略的写法,即只在段头写一次>
号即可。当然也可以使用更简略的写法,即只在段头写一次>
号即可。当然也可以使用更简略的写法,即只在段头写一次>
号即可。
2.4 分割线
三个或者三个以上的 - 或者 * 都可以。
---
----
***
**** 后面不能跟任何内容,否则分割线失效。
效果如下:
**** 后面不能跟任何内容,否则分割线失效。
2.5 列表
无序列表
无序列表用 - + * 任何一种都可以
语法:
- 列表内容
* 列表内容
+ 列表内容
这几中写法,效果都是一样的,如下:
- 列表内容
- 列表内容
- 列表内容
有序列表
数字+英文句点
语法:
1. 我是有序列表
2. 我是有序列表
3. 我是有序列表
4. 我是有序列表
10. 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
42323. 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
425. 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
效果:
- 我是有序列表
- 我是有序列表
- 我是有序列表
- 我是有序列表
- 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
- 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
- 我是有序列表,啥数字其实没关系,但建议还是按顺序从头来。
列表嵌套
上一级和下一级之间敲三个空格
即可。
语法:
- 我是第一级列表
- 我是第二级列表
- 我是第三级列表
- 我是第三级列表
- 我是第二级列表
- 我是第二级列表
- 我是第一级列表
1. 我是第一级有序列表
1. 我是第二级有序列表
2. 第是第二级有序列表
1. 我是第三级有序列表
2. 我是第三级有序列表
3. 我是第三级有序列表
2. 我又回到了第一级有序列表
效果:
- 我是第一级列表
- 我是第二级列表
- 我是第三级列表
- 我是第三级列表
- 我是第二级列表
- 我是第二级列表
- 我是第二级列表
- 我是第一级列表
- 我是第一级有序列表
- 我是第二级有序列表
- 第是第二级有序列表
- 我是第三级有序列表
- 我是第三级有序列表
- 我是第三级有序列表
- 我又回到了第一级有序列表
2.6 超链接
语法:
[超链接名](超链接地址 "超链接title")
title可加可不加,title是当鼠标移动到链接上方时悬停提示的文字。
示例:
[我的主页 Sruta](http://www.sruta.cn/)
[简书](http://jianshu.com)
[百度](http://baidu.com)
效果:
2.7 图片
图片的添加方式和链接很像,只需要在超链接格式最前面加一个!
即可。
语法:
![图片alt](图片地址 ''图片title'')
图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加
示例:
![百度一下](https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png "百度一下")
效果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UrCZCLTq-1656301951202)(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png “百度一下”)]
2.8 表格
语法:
表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容
第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
-两边加:表示文字居中
-右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略
示例:
序号(左对齐)|姓名(居中)|年龄(右对齐)
-|:-:|-:|
1|Sruta|18
2|Zhipeng|81
3|鹏哥|3
效果:
序号(左对齐) | 姓名(居中) | 年龄(右对齐) |
---|---|---|
1 | Sruta | 18 |
2 | Zhipeng | 81 |
3 | 鹏哥 | 3 |
2.9 代码
单行代码
单行代码:代码之间分别用一个反引号包起来。
语法示例:
`Markdown` 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 `XHTML`(或者`HTML`)文档。
效果:
Markdown
是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML
(或者HTML
)文档。
代码块
代码之间分别用三个反引号包起来,且两边的反引号单独占一行。
语法示例一:
(```)
import pandas as pd
df = pd.DataFrame(
{
"Name": [
"Braund, Mr. Owen Harris",
"Allen, Mr. William Henry",
"Bonnell, Miss. Elizabeth",
],
"Age": [22, 35, 58],
"Sex": ["male", "male", "female"],
}
)
(```)
注意:
上面用括号括起来是为了演示时防止转译,实际使用时将()
去掉
效果一:
import pandas as pd
df = pd.DataFrame(
{
"Name": [
"Braund, Mr. Owen Harris",
"Allen, Mr. William Henry",
"Bonnell, Miss. Elizabeth",
],
"Age": [22, 35, 58],
"Sex": ["male", "male", "female"],
}
)
语法示例二:
(```)python
def fib(n):
a, b = 1, 1
print(a, b, end=' ')
while b < n:
a, b = b, a+b
print(b, end=' ')
print()
(```)
注意:
上面用括号括起来是为了演示时防止转译,实际使用时将()
去掉
效果二:
def fib(n):
a, b = 1, 1
print(a, b, end=' ')
while b < n:
a, b = b, a+b
print(b, end=' ')
print()
由第二个例子可见,在第一行(```)
后加上语言类型,代码块还能高亮显示。
结束语
以上的语法基本能满足我们日常常用场景了,当然Markdown
的功能还不止于此,比如它还支持纯手写画流程图,支持数学公式等。考虑到我目前的场景暂时用不到这些,便不再细述。日后如果有需要,会出专题再聊。