MarkDown 原生语法基础
程序员文章站
2022-03-04 14:16:27
...
文章目录
参考 Markdown 中文教程。
1. 简单介绍
Markdown
:同HTML
一样,它是一种标记语言
。用来书写
简单、易读易写的文档
,并可以使用其text-to-HTML
的格式,转化为HTML文档
。目的
:不是想要取代 HTML,而是为了能让 文档 更容易读、写 和 随意改。常用于 博客 的编辑器。
1.1 Markdown 和 HTML 的区别
- Markdown 是一种
书写格式
,HTML 是一种发布格式
。- Markdown 的
语法种类
很少,只涵盖纯文本
可以涵盖的 内容,只对应 HTML 标签里的一小部分
。
1.2 Markdown 的特点
兼容 HTML
: 在 或 不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。注意点:
- HTML 的 区段标签, 如
<span>
、<cite>
、<del>
等,可以在 Markdown 的 段落、列表 或 标题 里随意使用。如果你比较喜欢 HTML 的<a>
或<img>
标签,可以直接使用这些标签,而不用 Markdown 提供的链接
或图像
的语法。- HTML 的 区块标签,如
<div>
、<table>
、<pre>
、<p>
等,必须在前后加上空行
与 其它内容区 隔开,而且 开始标签 与 结尾标签 不能用制表符
或空格
来缩进。- Markdown 会处理 HTML
区段标签
内的 Markdown 语法。- Markdown 不会处理 HTML
区块标签
内的 Markdown 语法,也不会在 区块标签 外加<p>
标签。
特殊字符 自动转换
:<
和&
两个特殊字符,在 HTML 中,<
用于起始标签,&
用于标记 HTML 实体。但是如果只是想要显示这些字符的原型
,就必须进行转换,用它们的实体形式
表示,如<
和&
。注意点:
- 在 Markdown 中,对 特殊字符 会进行 自动判断,如果是用于
起始标签
或HTML 实体
,则不会转换。如果只是用于展示其原型,则会 自动转换 成对应的实体形式
。- 在 Markdown 的 code 范围内 的 HTML 标签,
<
和&
两个符号都一定会被转换成 HTML 实体。即 HTML 文档 在 code 范围中,只会以代码样式显示,不会被解析。
当然,code 范围内的 Markdown 语法 同样也不会被处理。
2. Markdown 语法解析
2.1 区段 (行内) 元素
2.1.1 强调
- 使用形式:使用星号
*
或 底线_
作为标记强调字词
的符号
。 例如:*是*
:是 。
注意点:
- 被 1 个
*
或_
包围的 字词 会被转成用<em>
标签包围,斜体。
用 2 个*
或_
包起来的话,则会被转成<strong>
,加粗。- 如果
*
和_
内测有空格
的话,它们则会被当成普通的符号
。- 如果需要直接插入
普通
的 星号 或 底线,可以用反斜线\
进行转义,如\*
。
2.1.2 链接
- 使用形式:行内式,参考式。
不管是哪一种,链接文字
都是用[]
来表示。
- 行内式:
在
[]
后面紧跟着()
并插入网址。
网址的后面可以加空格
,然后用双引号
把 title 文字包起来,title 文字 在鼠标经过的时候会显示。
例子:This is [an example](http://example.com/ "Title") inline link.
:This is an example inline link.
- 参考式:(推荐, 避免文章的阅读感觉被打断)
在
[]
后面紧跟着[]
并插入链接标记
文本。接着,在文档的任意处
,把这个链接标记
的链接网址
定义出来。
例子:
This is[an example][id]
reference-style link.[id]: http://example.com/ "Title"
注意点:
链接标记
可以有 字母、数字、空白 和 标点符号,但是并不区分大小写
。链接标记
后面需要接上:
和空格
。隐式链接标记
:参考式 的简化写法,链接标记
可以为空的[]
, 这时 链接标记 会视为等同于链接文字。
例子:
This is[an example][]
reference-style link.[an example]: http://example.com/ "Title"
2.1.3 图片
- 使用形式:语法 和
链接
的使用形式 相似。
- 行内式:
![Alt text](/path/to/img.jpg "title")
- 参考式:(推荐, 避免文章的阅读感觉被打断)
![Alt text][id]
[id]: /path/to/img.jpg "title"
注意点:
- 图片没有
隐式链接标记
的写法。
2.1.4 代码区
- 背景介绍:
- 和
程序代码相关的写作
或是源代码的展示
,通常会有已经排版好的代码区块
,通常这些区块我们并不希望它被 当作代码 去解析渲染,而是照原来的样子
显示。- Markdown 会用
<code>
标签来把代码区段
包起来,用<pre>
和<code>
标签来把代码区块
包起来。
- 使用形式:代码区段 和 代码区块。
- 代码区段:如果要标记 一小段
行内代码
,你可以用1
个 或多个
反引号 ` 把它包起来。注意点:
代码区段
的 内容过长 时会 自动换行,但是不支持 手动换行,所有的回车
会被当做空格
处理,当然也不能包含 空行。一般用于显示 1 行代码。- 如果需要在 代码区段 的
内部
, 需要使用到反引号
,那么 外部 就可以使用多个反引号
来包围,区分 内部的单个反引号
。
- 代码区块:如果要标记 一块
整体代码
,只用缩进1 个制表符
或4 个空格
,然后写 代码区块 即可 。注意点:
- 一个 代码区块 会一直持续到没有缩进的那一行。
- 如果 前面 有其他语法,需要空一行后,再使用。
代码区块
里不会 自动换行,可以使用回车
进行手动换行。内容过长时 会产生 水平滚动条。
不同的编辑器的注意点:
- Typora 软件非源代码模式 不支持
制表符
或空格
来表示代码区块
。
因为在输入制表符
或空格
时,会在行首自动添加 不可见字符\u200b
,导致无法识别失效。可以切换到源代码模式
编辑。- 有的编辑器支持 使用 ``` 来包裹
代码区块
,并且可以在首部的 ``` 后面添加代码类型
。
但需要注意的时,CSDN 编辑器中 ``` 表示代码区块,但是 Typora 软件中 ``` 表示代码区段
,不支持换行。
2.2 区块元素
2.2.1 段落
- 使用形式:由 一个 或 多个连续 的文本组成,它的
前后
要有一个以上的空行
。
注意点:
- 普通段落 不该用
空格
或制表符
来缩进,应该使用 Markdown 的段落语法。
2.2.2 换行
- 背景介绍:
- 其他 大部分 标记语言 的
text-to-HTML
格式,对换行
的处理方式是,将回车
转换成<br />
标签,来进行换行。这种方案的弊端就是,<br />
在换行的时候 间隙 会比较大,会导致 段落内换行时 出现断层
效果。
而 Markdown 对回车
不会自动进行 转换处理,以按其原本的 换行效果 进行显示。
特别的,区块引用 中不支持回车换行
。强制转换
:如果希望 Markdown 将回车
转换为<br />
,则可以在按入 2 个以上的空格
, 然后回车
,便会自动转换。
- 使用形式:直接使用
回车
即可。
区块引用
中手动换行
的注意点:
- 在
区块引用
中,当一行的文本过长时,会自动换行显示。- 在
区块引用
中,如果某一行没有文本,在使用回车
来做空行
时,回车
会被忽略。- 在
区块引用
中,当一行文本过长时,会自动换行显示。但是不支持回车
手动换行,所有的回车
会被当做空格
处理。手动换行 的方法:
- 输入 一行空行 用作间隔。
- CSDN编辑器,或Typora 软件在 非源代码 模式时,允许
区块引用
内容中回车换行,是因为在内容中 回车时,会自动添加 一行空行。列表
也同理,不支持直接回车换行,但编辑器会帮我们自动处理。
- 对
回车
进行 强制转换,或者直接输入<br />
。
2.2.3 标题
- 使用形式:
- 在行首,插入 1 到 6 个
#
,对应到标题的 1 到 6 阶(大到小)。- 在标题下方,添加 1个(或多个,效果相同)
=
或-
,表示 1阶 和 2阶 标题。
2.2.4 分割线
- 使用形式:使用 3 个以上的
-
、*
、_
来建立一个分隔线,行内不能有其他东西。
2.2.5 区块引用
- 使用形式:在 一行文本 的最前面加上
>
,就是一个区块引用。
注意点:
区块引用
的内容是单行
的,回车
会被当做空格
处理。
所以在写 区块引用 时,需要使用空行
或者<br />
来换行,一般编辑器会帮我们自动完成
。- 引用区块 可以
嵌套
,根据不同的层次加上不同数量的>
。- 引用区块 内部 可以使用其他的 Markdown 语法。
2.2.6 列表
- 使用形式:
- 无序列表:使用
-
,*
,+
作为 列表标记。- 有序列表:用
数字
接着一个英文句点
。
注意点:
- 列表标记 后面则一定要接着 至少 1 个 空格。
- 列表不支持 回车 内部换行,可使用 强制转换 或添加
<br />
,进行列表 内换行,一般编辑器会帮我们自动完成
。- 如果在行首出现
数字-句点-空白
的情况,又不需要使用列表时,可以使用\
对句点
进行转义, 以显示 原来样式。列表项目
间如果用空行
分开,那么在输出 HTML 时 Markdown 就会将项目内容用<p>
标签包起来。这样会导致 列表项目 之间存在空隙
。- 列表项目内可以包含其他 Markdown 语法,如 段落,引用,代码区段,代码区块 等。
列表
或引用区块
在包含代码区块
时,需要空一行,然后缩进 2 个 Tab(正常书写时是 1 个Tab)。
Typora 软件源代码模式下,要使用空格
(非 Tab)才会正确显示 代码区段。
2.2.7 表格(官方文档中没有说明,CSDN编辑器中使用)
- 使用形式:
- 标准形式:
|项目|价格|数量| |:-|-:|:-:| |iPhone|6000元|5| |iPad|3000元|3| |iMac|10000元|2|
- 简化形式:
项目|价格|数量 -|-:|:-: iPhone|6000元|5 iPad|3000元|3 iMac|10000元|2
- 效果:
项目 | 价格 | 数量 |
---|---|---|
iPhone | 6000元 | 5 |
iPad | 3000元 | 3 |
iMac | 10000元 | 2 |
上一篇: react如何写点击事件