欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MarkDown 原生语法基础

程序员文章站 2022-03-04 14:16:27
...

参考 Markdown 中文教程

1. 简单介绍

  • Markdown:同 HTML 一样,它是一种 标记语言。用来 书写 简单、易读易写的 文档,并可以使用其 text-to-HTML 的格式,转化为 HTML文档
  • 目的:不是想要取代 HTML,而是为了能让 文档 更容易读、写 和 随意改。常用于 博客 的编辑器。

1.1 Markdown 和 HTML 的区别

  1. Markdown 是一种 书写格式,HTML 是一种 发布格式
  2. Markdown 的 语法种类 很少,只涵盖 纯文本 可以涵盖的 内容,只对应 HTML 标签里的 一小部分

1.2 Markdown 的特点

  1. 兼容 HTML: 在 或 不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。

注意点:

  1. HTML 的 区段标签, 如 <span><cite><del> 等,可以在 Markdown 的 段落、列表 或 标题 里随意使用。如果你比较喜欢 HTML 的 <a><img> 标签,可以直接使用这些标签,而不用 Markdown 提供的 链接图像 的语法。
  2. HTML 的 区块标签,如 <div><table><pre><p> 等,必须在前后加上 空行 与 其它内容区 隔开,而且 开始标签 与 结尾标签 不能用 制表符空格 来缩进。
  3. Markdown 会处理 HTML 区段标签 内的 Markdown 语法。
  4. Markdown 不会处理 HTML 区块标签 内的 Markdown 语法,也不会在 区块标签 外加 <p> 标签。
  1. 特殊字符 自动转换<& 两个特殊字符,在 HTML 中, < 用于起始标签,& 用于标记 HTML 实体。但是如果只是想要显示这些字符的 原型,就必须进行转换,用它们的 实体形式 表示,如 &lt;&amp;

注意点:

  1. 在 Markdown 中,对 特殊字符 会进行 自动判断,如果是用于 起始标签HTML 实体,则不会转换。如果只是用于展示其原型,则会 自动转换 成对应的 实体形式
  2. 在 Markdown 的 code 范围内 的 HTML 标签, <& 两个符号都一定会被转换成 HTML 实体。即 HTML 文档 在 code 范围中,只会以代码样式显示,不会被解析。
    当然,code 范围内的 Markdown 语法 同样也不会被处理。

2. Markdown 语法解析

2.1 区段 (行内) 元素

2.1.1 强调

  • 使用形式:使用星号 * 或 底线 _ 作为标记 强调字词符号。 例如:*是*

注意点:

  1. 被 1 个 *_ 包围的 字词 会被转成用 <em> 标签包围,斜体。
    用 2 个 *_ 包起来的话,则会被转成 <strong>,加粗。
  2. 如果 *_ 内测有 空格 的话,它们则会被当成 普通的符号
  3. 如果需要直接插入 普通 的 星号 或 底线,可以用反斜线 \ 进行转义,如 \*

2.1.2 链接

  • 使用形式:行内式,参考式。
    不管是哪一种,链接文字 都是用 [] 来表示。
  1. 行内式:

[] 后面紧跟着 () 并插入网址。
网址的后面可以加 空格,然后用 双引号 把 title 文字包起来,title 文字 在鼠标经过的时候会显示。
例子:This is [an example](http://example.com/ "Title") inline link.:This is an example inline link.

  1. 参考式:(推荐, 避免文章的阅读感觉被打断)

[] 后面紧跟着 [] 并插入 链接标记 文本。接着,在文档的 任意处,把这个 链接标记链接网址 定义出来。
例子:
This is [an example][id] reference-style link.
[id]: http://example.com/ "Title"

注意点:

  1. 链接标记 可以有 字母、数字、空白 和 标点符号,但是并 不区分大小写
  2. 链接标记 后面需要接上 :空格
  3. 隐式链接标记:参考式 的简化写法,链接标记 可以为空的 [], 这时 链接标记 会视为等同于链接文字。
    例子:
    This is [an example][] reference-style link.
    [an example]: http://example.com/ "Title"

2.1.3 图片

  • 使用形式:语法 和 链接的使用形式 相似。
  1. 行内式:
    ![Alt text](/path/to/img.jpg "title")
  2. 参考式:(推荐, 避免文章的阅读感觉被打断)
    ![Alt text][id]
    [id]: /path/to/img.jpg "title"

注意点:

  1. 图片没有 隐式链接标记 的写法。

2.1.4 代码区

  • 背景介绍:
  1. 程序代码相关的写作 或是 源代码的展示,通常会有已经排版好的 代码区块,通常这些区块我们并不希望它被 当作代码 去解析渲染,而是照 原来的样子 显示。
  2. Markdown 会用 <code> 标签来把 代码区段 包起来,用 <pre><code> 标签来把 代码区块 包起来。
  • 使用形式:代码区段 和 代码区块。
  1. 代码区段:如果要标记 一小段 行内代码,你可以用 1 个 或 多个 反引号 ` 把它包起来。

注意点:

  1. 代码区段 的 内容过长 时会 自动换行,但是不支持 手动换行,所有的 回车 会被当做 空格 处理,当然也不能包含 空行。一般用于显示 1 行代码。
  2. 如果需要在 代码区段 的 内部, 需要使用到 反引号,那么 外部 就可以使用 多个反引号 来包围,区分 内部的 单个反引号
  1. 代码区块:如果要标记 一块 整体代码,只用缩进 1 个制表符4 个空格,然后写 代码区块 即可 。

注意点:

  1. 一个 代码区块 会一直持续到没有缩进的那一行。
  2. 如果 前面 有其他语法,需要空一行后,再使用。
  3. 代码区块 里不会 自动换行,可以使用 回车 进行手动换行。内容过长时 会产生 水平滚动条。

不同的编辑器的注意点:

  1. Typora 软件非源代码模式 不支持 制表符空格 来表示 代码区块
    因为在输入 制表符空格 时,会在行首自动添加 不可见字符 \u200b,导致无法识别失效。可以切换到 源代码模式 编辑。
  2. 有的编辑器支持 使用 ``` 来包裹 代码区块,并且可以在首部的 ``` 后面添加 代码类型
    但需要注意的时,CSDN 编辑器中 ``` 表示代码区块,但是 Typora 软件中 ``` 表示 代码区段,不支持换行。

2.2 区块元素

2.2.1 段落

  • 使用形式:由 一个 或 多个连续 的文本组成,它的 前后 要有 一个以上的空行

注意点:

  1. 普通段落 不该用 空格制表符 来缩进,应该使用 Markdown 的段落语法。

2.2.2 换行

  • 背景介绍:
  1. 其他 大部分 标记语言 的 text-to-HTML 格式,对 换行 的处理方式是,将 回车 转换成 <br /> 标签,来进行换行。这种方案的弊端就是,<br /> 在换行的时候 间隙 会比较大,会导致 段落内换行时 出现 断层 效果。
    而 Markdown 对 回车 不会自动进行 转换处理,以按其原本的 换行效果 进行显示。
    特别的,区块引用 中不支持回车换行
  2. 强制转换:如果希望 Markdown 将 回车 转换为 <br /> ,则可以在 按入 2 个以上的空格, 然后 回车,便会自动转换。
  • 使用形式:直接使用 回车 即可。

区块引用手动换行的注意点:

  1. 区块引用 中,当一行的文本过长时,会自动换行显示。
  2. 区块引用 中,如果某一行没有文本,在使用 回车 来做 空行 时,回车 会被忽略。
  3. 区块引用 中,当一行文本过长时,会自动换行显示。但是不支持 回车 手动换行,所有的 回车 会被当做 空格 处理。手动换行 的方法:
  1. 输入 一行空行 用作间隔。
  • CSDN编辑器,或Typora 软件在 非源代码 模式时,允许 区块引用 内容中回车换行,是因为在内容中 回车时,会自动添加 一行空行。
  • 列表 也同理,不支持直接回车换行,但编辑器会帮我们自动处理。
  1. 回车 进行 强制转换,或者直接输入 <br />

2.2.3 标题

  • 使用形式:
  1. 在行首,插入 1 到 6 个 # ,对应到标题的 1 到 6 阶(大到小)。
  2. 在标题下方,添加 1个(或多个,效果相同) =-,表示 1阶 和 2阶 标题。

2.2.4 分割线

  • 使用形式:使用 3 个以上的 -*_ 来建立一个分隔线,行内不能有其他东西。

2.2.5 区块引用

  • 使用形式:在 一行文本 的最前面加上 >,就是一个区块引用。

注意点:

  1. 区块引用 的内容是 单行 的,回车 会被当做 空格 处理。
    所以在写 区块引用 时,需要使用 空行 或者 <br /> 来换行,一般编辑器会帮我们自动完成
  2. 引用区块 可以 嵌套,根据不同的层次加上不同数量的 >
  3. 引用区块 内部 可以使用其他的 Markdown 语法。

2.2.6 列表

  • 使用形式:
  1. 无序列表:使用 -*+ 作为 列表标记。
  2. 有序列表:用 数字 接着一个 英文句点

注意点:

  1. 列表标记 后面则一定要接着 至少 1 个 空格。
  2. 列表不支持 回车 内部换行,可使用 强制转换 或添加 <br />,进行列表 内换行,一般编辑器会帮我们自动完成
  3. 如果在行首出现 数字-句点-空白 的情况,又不需要使用列表时,可以使用 \句点 进行转义, 以显示 原来样式。
  4. 列表项目 间如果用 空行 分开,那么在输出 HTML 时 Markdown 就会将项目内容用 <p> 标签包起来。这样会导致 列表项目 之间存在 空隙
  5. 列表项目内可以包含其他 Markdown 语法,如 段落,引用,代码区段,代码区块 等。
  6. 列表引用区块 在包含 代码区块 时,需要空一行,然后缩进 2 个 Tab(正常书写时是 1 个Tab)。
    Typora 软件源代码模式下,要使用 空格 (非 Tab)才会正确显示 代码区段

2.2.7 表格(官方文档中没有说明,CSDN编辑器中使用)

  • 使用形式:
  1. 标准形式:
  |项目|价格|数量|
  |:-|-:|:-:|
  |iPhone|6000元|5|
  |iPad|3000元|3|
  |iMac|10000元|2|
  1. 简化形式:
  项目|价格|数量
  -|-:|:-:
  iPhone|6000元|5
  iPad|3000元|3
  iMac|10000元|2
  • 效果:
项目 价格 数量
iPhone 6000元 5
iPad 3000元 3
iMac 10000元 2
相关标签: 前端技术栈