1. MarkDown_原生语法基础
文章目录
1. 介绍
- 中文官网:http://www.markdown.cn/
- MarkDown:是一个在 Web 使用的,从文本到 HTML 的转换工具。属于一种标记语言。
- MarkDown 和 HTML 的区别:
- 区别:HTML 是一种发布的格式,MarkDown 是一种书写的格式。
- 注意:MarkDown 的格式语法只涵盖 纯文本可以涵盖的 内容,只对应 HTML 标记的一小部分。
- 特性:
- 兼容 HTML:
- 兼容限制:
书写一些 HTML 区块元素,比如
<div>
、<table>
、<pre>
、<p>
等标签,必须在前后加上 空行 与其它内容区隔开,开始标签 与 结尾标签 不能用 制表符 或 空格 来缩进。
- 注意:
- MarkDown 不会在区块标签外加
<p>
标签。- HTML 区块标签中的 MarkDown 格式语法不会被处理。HTML 区段(行内)标签中可以随意使用 MarkDown 格式语法。
- 特殊字符会自动判断选择是否转换为 原型实体:
- 特殊字符包括:
- < : 用于起始标签,原型实体为
<
。- & : 用于标记 HTML 实体,原型实体为
&
。- © :
©
。
- 自动转换规则:
当特殊字符作为 HTML 标签使用 时不会转换,如果作为 实体展示 时,则会自动转换为 原型实体。
- 注意:
在 code区块/区段 的范围内,不管是不是特殊作用,MarkDown 都会帮你自动转换为原型实体,这样利于书写 HTML 的code。因为在 HTML 中,要想直接展示 代码,必须把所有的 < 和 & 转换为 HTML 实体才行。
- 应用场景:写博客笔记 等。
2. 语法简介
2.1 区块元素
2.1.1 段落
- 概念:由一个或多个连续的文本组成,它的前后要有一个以上的空行。意味着 MarkDown 可以进行段内换行。
2.1.2 换行
- 概念:
MarkDown 语法格式允许段落内强迫换行,直接 插入换行符。
而其他的 text-to-HTML 格式,会把 换行符 转换为<br />
。
- 注意:
- 如果想要使用 Markdown 插入
<br />
标签, 可以在插入处先按入 两个以上的空格,然后 回车。- MarkDown 使用 换行符 而不使用
<br />
的原因:
- 这样可以实现 段落内换行,因为
<br />
换行后显示间隔会比较大,段落会被隔开。- Markdown 中 email 式的区块引用 和 多段落的列表 在使用 换行 来 排版 的时候,不但更好用,还更方便阅读。
2.1.3 标题
- 使用形式:
- 类 Setext 形式:
在标题下方书写
=
(最高阶标题)或-
(第二阶标题)。任何数量的 = 和 - 都可以有效果。缺点只有两级标题。
- 类 Atx 形式:
在行首插入 1 到 6 个
#
,对应到标题 1 到 6 阶。
2.1.4 区块引用
- 使用形式:
类似 email 中
>
的区块引用方式:
先断好行,然后在每行的最前面加上>
。
- 注意:
- 引用区块可以 嵌套,根据不同的层次加上不同数量的 >。
- 引用区块内部可以使用其他的 MarkDown 语法,包括 标题,列表,代码区块,代码区段 等。
2.1.5 列表
- 使用形式:
- 无序列表:
使用
*
, 加号+
, 或 减号-
作为列表标记。
- 有序列表:
用 数字 接着一个 英文句点。
列表标记上使用的 数字 并不会影响输出的 HTML 结果。
- 注意:
- 列表项目标记通常是放在 最左边,但是其实也可以缩进,最多 3 个空格。项目标记后面则一定要接着 至少 1 个 空格 或 制表符。
- 如果 列表项目 间用 空行 分开,那么在输出 HTML 时 Markdown 就会将项目内容用
<p>
标签包起来。这样 列表项目 之间会有空隙。- 如果在行首出现 数字-句点-空白 的情况,又不需要使用列表时,可以使用
\
对 句点 进行转义, 以显示原状。- 关于 列表 包含的内容:
- 如果要在列表项目 内部 放进 引用,那
>
就需要 缩进1次。我一般不缩进,显示不美观。- 如果要放 代码区块 的话,该区块就需要 缩进2次,也就是 8 个空格或是 2 个制表符。
- 列表项目可以包含 多个段落,每个项目下的段落都必须缩进 4 个空格或是 1 个制表符。
2.1.6 代码区块
- 概念:
- 和 程序相关的写作 或是 标签语言原始码 通常会有已经排版好的 代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照 原来的样子 显示。
- Markdown 会用
<pre>
和<code>
标签来把代码区块包起来。
- 使用形式:
Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以。
前面如果有其他语法,需要空一行后,再使用。
显示的时候,这些缩进会被移除。
- 注意:
- 一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。
- 在代码区块,代码区段 里,
&
、<
和>
会自动转成 HTML 实体。而且 一般的 Markdown 语法不会被转换。(这是好处,方便撰写代码,或者 Markdown 语法相关的文件 等)- 代码区块 里不会自动换行,宽度过长会产生水平滚动条。
代码区段 会自动换行,但是不能包含空行,一般用于显示少量代码。
2.1.7 分割线
- 使用形式:
在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。
星号或是减号中间可以插入空格。
2.2 区段(行内)元素
2.2.1 链接
- 使用形式:行内式,参考式。
不管是哪一种,链接文字 都是用 [方括号] 来标记。
- 行内式:
在 方块括号 后面紧接着 圆括号 并 插入网址 即可。
如果你还想要加上链接的 title 文字,只要在网址后面加空格,然后用双引号把 title 文字包起来。
例子:This is [an example](http://example.com/ "Title") inline link.
- 参考式:
在 链接文字的方括号 后面再接上另一个 方括号,而在第二个方括号里面要填入 用以辨识链接 的标记。接着,在文件的任意处,把这个 标记 的 链接网址 定义出来。
例子:This is [an example][id] reference-style link. [id]: http://example.com/ "Optional Title Here"
- 参考式的 网址定义 要点:
- 方括号(前面可以选择性地加上至多三个空格来缩进), 里面输入链接标识。
- 接着一个冒号。
- 接着一个以上的空格或制表符。
- 接着链接的网址(也可以用方括号包起来)。
- 选择性地接着 title 内容,可以用单引号、双引号 或是 括弧包着。
也可以把 title 属性放到下一行,加一些缩进,若网址太长的话。
- 隐式链接标记 功能: [an example][], 后面括号的 标记 可以省略,此时会自动使用 链接文字 作为 链接标记。
- 注意:
- 参数式网址的定义 并不会出现在文件之中,可以把它们集中放在文件最后面,就像是注解一样。
- 参数式网址的 标记内容, 可以有字母、数字、空白和标点符号,但是并不区分大小写。
- 参考式的链接 其实重点不在于它比较好写,而是它比较 好读。可以把一些 标记相关 的 元数据 移到段落文字之外,这样就可以 增加链接 而不让文章的阅读感觉被打断。
2.2.2 强调
- 使用形式:
使用星号
*
和底线_
作为标记强调字词的符号。
- 注意:
- 被
*
或_
包围的字词会被转成用<em>
标签包围, 斜体。
用两个*
或_
包起来的话,则会被转成<strong>
,加粗。- 如果
*
和_
两边都有 空白 的话,它们就只会被当成普通的符号。- 如果需要直接插入 普通 的 星号 或 底线,可以用反斜线
\
进行转义。
2.2.3 代码区段
- 使用形式:
如果要标记一小段行内代码,你可以用一个或多个反引号 ` 把它包起来。
- 注意:
- 如果需要在 代码区段 内 插入反引号,那么外部就可以使用多个反引号 来包围,以区分内部插入的 单个反引号。
- 在代码区段内,& 和 < 都会被自动地转成 HTML 实体。
2.2.4 图片
- 使用形式:用和 链接 很相似的语法来 标记图片。
- 行内式:
![Alt text](/path/to/img.jpg "title")
图片定义要点:
- 一个惊叹号 !
- 接着一个方括号,里面放上图片的替代文字。
- 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 ‘title’ 文字。
- 参考式:
![Alt text][id] [id]: url/to/image "Optional title attribute"
- 注意:
- Markdown 还没有办法指定图片的宽高,如果你需要的话,你可以使用普通的
<img>
标签。
2.3 其他
2.3.1 反斜杠
- 概念:利用反斜杠
\
,来插入一些,在语法中有其它特殊意义的符号。我们要插入是的 符号本身。 - 支持以下 特殊符号 前面 加上 反斜杠 来帮助插入其原有样式:
(MarkDown 只支持 &,和 < 的自动转换,其他的需要自己手动转换)
特殊符号 | 名称/意义 | 实体符号 |
---|---|---|
& | 标记 HTML 实体 | & |
< | 起始标签 | < |
. | 英文句点 | |
* | 星号 | |
_ | 底线 | |
\ |
反斜线 | |
` | 反引号 | |
{} | 花括号 | |
[] | 方括号 | |
() | 括弧 | |
# | 井子号 | |
+ | 加号 | |
- | 减号 | |
! | 惊叹号 |
- 注意:
- 除了使用 反斜杠 转义特殊字符外,也可以直接使用特殊字符的 实体符号 表示。
- 实体符号 的另外一个作用,是有些字符键盘无法直接输出,可以使用这些字符的 实体符号,来表示输出。
如 版权符号 ©, 其实体符号为©
。
2.3.2 表格
-
使用形式:
// 标准形式 |项目|价格|数量| |:---|---:|:---:| |iPhone|6000元 |3| |iPad |3000元 |4| |iMac |10000元|5| // 简化形式 项目|价格|数量 :-|-:|:-: iPhone|6000元 |3 iPad |3000元 |4 iMac |10000元|5
上一篇: React 类组件 与 函数式组件 + Hooks
下一篇: React(二):类组件、函数式组件