文章目录
简述
Markdown 是一种轻量级的标记语言,通过简单的标记,使得普通文本具有一定的格式。 Markdown 具有一系列的衍生版本,极大地扩展了 Markdown 的功能(如表格、脚注、数学公式等),详情见百度-Markdown。
编辑器
Markdown 编辑器有很多,笔者在撰写这篇博客使用的是 Visual Studio Code ,该文本编辑器默认支持 Markdown 基本语法,即扩展的语法如表格、脚注、数学公式是不支持的。另外,笔者还推荐一款非常不错的编辑器Typora,该编辑器扩展了许多语法规则,如文本高亮、支持 Latex 数学公式等等,十分强大。另外还有很多优秀的编辑器,这个仁者见仁,智者见智,适合自己的就是好的。
基本语法
Markdown 默认支持HTML标签语法,对于 Markdown 中问包含的标签,可以直接使用HTML,没有必要使用界定符表示从Markdown切换至HTML之类的。唯一的限制就是对于HTML的块级标签,如<div>、<table>、<pre>、<p>等,需要另起一行单独放置,并且开始和结束标签前面不能有任何缩进。因此,若读者想让 Markdown 编写的文本具有更多样式,可以结合使用HTML的相关语法标签。
强调
Markdown 中可以使用成对星号将文本包含在内以表示某种样式,如
- *这是一段文本* 表示 这是一段文本
- **这是一段文本** 表示 这是一段文本
- ***这是一段文本*** 表示 这是一段文本
删除线使用两对~表示,即 ~~删除线~~ 表示 删除线。另外, 下划线(_)同样可以作为强调标记,有 _文本_ 表示 文本, __文本__ 表示 文本。注意,若星号或者下划线两边都有空格,则星号和下划线会被解释为字面量,即 * 文本 *
表示 * 文本 *,而*文本*
表示 文本。
换行
若在 Markdown 中要换行,在需要进行换行的位置连续按下两次enter
或者space
键即可。笔者这里推荐使用两下enter
的方式,因为这种方式表示退出当前编辑并另起一段新的编辑,在诸如引用、列表等场合十分实用。
标题
Markdown 支持两种标题样式,分别是 Setext 和 Atx 。
Setext样式使用=
表示表示一级标题,-
表示二级标题,使用任意长度的=
和-
即可。如
This is the first title
===
This is the first title
This is the second title
---
This is the second title
Atx样式在每个标题的开头使用1 ~ 6个#,分别对应1 ~ 6级标题。如
# This is the first title
This is the first title
### This is the third title
This is the third title
列表
Markdown 支持有序列表和无序列表。
无序列表
- 无序列表使用 *、+ 和 -以及一个空格进行书写。
- 这三个符号是可以互换的哦。
- 当按下三个符号中的任何一个并按下空格
space
后,Markdown 编辑器会自动转换为无序列表。
有序列表
- 有序列表使用数字加英文状态下的句号以及一个紧随其后的空格进行书写。
- 其中,有序列表前面的数字可以按照任意顺序书写,甚至可以重复使用。
块引用
Markdown 使用email样式的>
字符作为块引用。最好对引用文本采取强制换行并在每一行行首放一个>
,Markdown 支持块引用嵌套,只需要添加额外层级的>
即可,块引用中可以使用 Markdown 元素。如
> 这是一个块引用1。
>
> 这是一个块引用2。
> > 这是一个块引用3.
> # ***这是一个1号标题并且加粗斜体***
> 1. 列表1
> 2. 列表2
>
> * 列表
> - 列表
> + 列表
这是一个块引用1。
这是一个块引用2。
这是一个块引用3.
这是一个1号标题并且加粗斜体
- 列表1
- 列表2
- 列表
- 列表
- 列表
代码块
Markdown 的代码块功能十分实用。第一种方式,若要在 Markdown 中插入代码块, 只需要将每一行都缩进 4 个空格或者 1 个水平制表符。第二种方式,行内代码使用 `` 进行插入,段内代码块使用``````进行插入。比如:`Math.abs(int a)`表示Math.abs(int a)
,而
```java
import static java.util.function.BiFunction
```
表示
import static java.util.function.BiFunction
通常情况下,段内代码块可以指定编程语言,也可以不指定。
水平线
Markdown 中,只要有三个及以上的连字符(-),星号(*)或者下划线(_),编辑器就会自动生成水平线。星号和连字符之间的空格也是允许的。如
***
*****
* * *
---
___
分别对应
链接
Markdown 支持两种链接形式:内联和引用。
要创建内联链接, 只需在链接文本的右括号后面紧接一对圆括号. 圆括号里面放所需的 URL 链接, 还可以放一个 可选 的链接标题, 标题要用引号包围.如
点击[百度](https://www.baidu.com "内联链接"),你就知道
表示
点击百度,你就知道
而引用类型的链接放在第二个中括号里, 括号里面放链接标签,定义链接标签需要单独占有一行。如
点击[百度][baidu]
[baidu]: https://www.baidu.com "引用类型"
表示
点击百度,你就知道
也就是:
- 方括号中包含链接标识符 (可以用三个以上的空白符来添加缩进);
- 跟着是冒号;
- 跟着是一个以上的空白符和水平制表符;
- 跟着是链接的 URL;
- 跟着是可选的标题属性, 可以用单引号, 双引号, 或者圆括号包围.
使用引用类型的链接时,链接定义的名称可以包含字母, 数字, 空格, 和标点符号,但它们不是大小写敏感的。
另外,链接还有一种隐含链接,隐含链接名称使你可以忽略链接名称, 这时链接文本本身被用于链接名称. 只用一对空的中括号就可以了,比如:
[LeetCode][]
[LeetCode]: https://leetcode-cn.com/problemset/all/
图片
通常,通过“原生”的语法在纯文本格式中直接插入图片是很困难的,Markdown 提供了类似链接的方式来插入图片:内联和引用。链接地址通常由绝对地址和相对地址,若图片资源在本地,最好是放置在和当前 Markdown 文件相同的文件夹下并使用相对地址,若图片资源为网络资源,则使用绝对地址。设当前 Markdown 文件位于桌面,且由一张名为亚索皮肤-黑夜使者.jpg
的图片,则内联图片语法如下
![alt text](亚索皮肤-黑夜使者.jpg "面对疾风咯")
表示
也就是:
- 一个感叹号
!
; - 紧跟着一对方括号, 包含了图片的 alt 属性;
- 紧跟着一对圆括号, 包含了图片的 URL 或者路径, 以及一个可选的用单引号或双引号包裹的 title 属性.
而引用图片语法如下:
![alt text][yasuopic]
[yasuopic]: 亚索皮肤-黑夜使者.jpg "面对疾风咯"
表示
注意,Markdown 没法直接指定图片的尺寸,若需指定图片的尺寸,则使用<img>
标签。
自动链接
Markdown 支持一种 “自动” 创建 URL 和 email 地址链接的简短形式: 只需用尖括号包围 URL 或 email 地址即可,即<https://www.baidu.com>
表示https://www.baidu.com
反斜杠转义
Markdown 中可以使用反斜杠转义 Markdown 语法符号为字面量. 例如, 如果你想用星号包围一个单词,可以在星号前面加反斜杠,如\*强调\*
表示*强调*。Markdown 为以下字符提供反斜杠转义:\
,`,*
,_
,{}
,[]
,()
,#
,+
,-
,.
和!
。