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

1. MarkDown_原生语法基础

程序员文章站 2022-06-15 18:41:42
...

1. 介绍

  • 中文官网:http://www.markdown.cn/
  • MarkDown:是一个在 Web 使用的,从文本到 HTML 的转换工具。属于一种标记语言。
  • MarkDown 和 HTML 的区别:
  1. 区别:HTML 是一种发布的格式,MarkDown 是一种书写的格式。
  2. 注意:MarkDown 的格式语法只涵盖 纯文本可以涵盖的 内容,只对应 HTML 标记的一小部分。
  • 特性:
  1. 兼容 HTML:
  • 兼容限制

书写一些 HTML 区块元素,比如 <div><table><pre><p> 等标签,必须在前后加上 空行 与其它内容区隔开,开始标签 与 结尾标签 不能用 制表符空格 来缩进。

  • 注意
  1. MarkDown 不会在区块标签外加 <p> 标签。
  2. HTML 区块标签中的 MarkDown 格式语法不会被处理。HTML 区段(行内)标签中可以随意使用 MarkDown 格式语法。
  1. 特殊字符会自动判断选择是否转换为 原型实体:
  • 特殊字符包括:
  1. < : 用于起始标签,原型实体为 &lt;
  2. & : 用于标记 HTML 实体,原型实体为 &amp
  3. © : &copy;
  • 自动转换规则

当特殊字符作为 HTML 标签使用 时不会转换,如果作为 实体展示 时,则会自动转换为 原型实体。

  • 注意

在 code区块/区段 的范围内,不管是不是特殊作用,MarkDown 都会帮你自动转换为原型实体,这样利于书写 HTML 的code。因为在 HTML 中,要想直接展示 代码,必须把所有的 < 和 & 转换为 HTML 实体才行。

  • 应用场景:写博客笔记 等。

2. 语法简介

2.1 区块元素

2.1.1 段落
  • 概念:由一个或多个连续的文本组成,它的前后要有一个以上的空行。意味着 MarkDown 可以进行段内换行。
2.1.2 换行
  • 概念:

MarkDown 语法格式允许段落内强迫换行,直接 插入换行符
而其他的 text-to-HTML 格式,会把 换行符 转换为 <br />

  • 注意:
  1. 如果想要使用 Markdown 插入 <br /> 标签, 可以在插入处先按入 两个以上的空格,然后 回车
  2. MarkDown 使用 换行符 而不使用 <br /> 的原因:
  • 这样可以实现 段落内换行,因为 <br />换行后显示间隔会比较大,段落会被隔开。
  • Markdown 中 email 式的区块引用 和 多段落的列表 在使用 换行 来 排版 的时候,不但更好用,还更方便阅读。
2.1.3 标题
  • 使用形式:
  1. 类 Setext 形式:

在标题下方书写 = (最高阶标题)或 - (第二阶标题)。任何数量的 = 和 - 都可以有效果。缺点只有两级标题。

  1. 类 Atx 形式:

在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶。

2.1.4 区块引用
  • 使用形式:

类似 email 中 > 的区块引用方式:
先断好行,然后在每行的最前面加上 >

  • 注意:
  1. 引用区块可以 嵌套,根据不同的层次加上不同数量的 >。
  2. 引用区块内部可以使用其他的 MarkDown 语法,包括 标题列表代码区块代码区段 等。
2.1.5 列表
  • 使用形式:
  1. 无序列表:

使用 *, 加号 +, 或 减号 - 作为列表标记。

  1. 有序列表:

数字 接着一个 英文句点
列表标记上使用的 数字 并不会影响输出的 HTML 结果。

  • 注意:
  1. 列表项目标记通常是放在 最左边,但是其实也可以缩进,最多 3 个空格。项目标记后面则一定要接着 至少 1 个 空格 或 制表符。
  2. 如果 列表项目 间用 空行 分开,那么在输出 HTML 时 Markdown 就会将项目内容用 <p> 标签包起来。这样 列表项目 之间会有空隙。
  3. 如果在行首出现 数字-句点-空白 的情况,又不需要使用列表时,可以使用 \句点 进行转义, 以显示原状。
  4. 关于 列表 包含的内容:
  • 如果要在列表项目 内部 放进 引用,那 > 就需要 缩进1次。我一般不缩进,显示不美观。
  • 如果要放 代码区块 的话,该区块就需要 缩进2次,也就是 8 个空格或是 2 个制表符。
  • 列表项目可以包含 多个段落,每个项目下的段落都必须缩进 4 个空格或是 1 个制表符。
2.1.6 代码区块
  • 概念:
  1. 程序相关的写作 或是 标签语言原始码 通常会有已经排版好的 代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照 原来的样子 显示。
  2. Markdown 会用 <pre><code> 标签来把代码区块包起来。
  • 使用形式:

Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以。
前面如果有其他语法,需要空一行后,再使用。
显示的时候,这些缩进会被移除

  • 注意:
  1. 一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。
  2. 在代码区块,代码区段 里, &<> 会自动转成 HTML 实体。而且 一般的 Markdown 语法不会被转换。(这是好处,方便撰写代码,或者 Markdown 语法相关的文件 等)
  3. 代码区块 里不会自动换行,宽度过长会产生水平滚动条。
    代码区段 会自动换行,但是不能包含空行,一般用于显示少量代码。
2.1.7 分割线
  • 使用形式:

在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。
星号或是减号中间可以插入空格。

2.2 区段(行内)元素

2.2.1 链接
  • 使用形式:行内式,参考式。

不管是哪一种,链接文字 都是用 [方括号] 来标记。

  1. 行内式:

方块括号 后面紧接着 圆括号插入网址 即可。
如果你还想要加上链接的 title 文字,只要在网址后面加空格,然后用双引号把 title 文字包起来。
例子:This is [an example](http://example.com/ "Title") inline link.

  1. 参考式:

链接文字的方括号 后面再接上另一个 方括号,而在第二个方括号里面要填入 用以辨识链接 的标记。接着,在文件的任意处,把这个 标记链接网址 定义出来。
例子:

 This is [an example][id] reference-style link.
 [id]: http://example.com/  "Optional Title Here"
  • 参考式的 网址定义 要点:
  1. 方括号(前面可以选择性地加上至多三个空格来缩进), 里面输入链接标识。
  2. 接着一个冒号。
  3. 接着一个以上的空格或制表符。
  4. 接着链接的网址(也可以用方括号包起来)。
  5. 选择性地接着 title 内容,可以用单引号、双引号 或是 括弧包着。
    也可以把 title 属性放到下一行,加一些缩进,若网址太长的话。
  • 隐式链接标记 功能: [an example][], 后面括号的 标记 可以省略,此时会自动使用 链接文字 作为 链接标记。
  • 注意:
  1. 参数式网址的定义 并不会出现在文件之中,可以把它们集中放在文件最后面,就像是注解一样。
  2. 参数式网址的 标记内容, 可以有字母、数字、空白和标点符号,但是并不区分大小写。
  3. 参考式的链接 其实重点不在于它比较好写,而是它比较 好读。可以把一些 标记相关元数据 移到段落文字之外,这样就可以 增加链接 而不让文章的阅读感觉被打断。
2.2.2 强调
  • 使用形式:

使用星号 * 和底线 _ 作为标记强调字词的符号。

  • 注意:
  1. *_ 包围的字词会被转成用 <em> 标签包围, 斜体。
    用两个 *_ 包起来的话,则会被转成 <strong>,加粗。
  2. 如果 *_ 两边都有 空白 的话,它们就只会被当成普通的符号。
  3. 如果需要直接插入 普通 的 星号 或 底线,可以用反斜线 \ 进行转义。
2.2.3 代码区段
  • 使用形式:

如果要标记一小段行内代码,你可以用一个或多个反引号 ` 把它包起来。

  • 注意:
  1. 如果需要在 代码区段 内 插入反引号,那么外部就可以使用多个反引号 来包围,以区分内部插入的 单个反引号。
  2. 在代码区段内,& 和 < 都会被自动地转成 HTML 实体。
2.2.4 图片
  • 使用形式:用和 链接 很相似的语法来 标记图片。
  1. 行内式:

![Alt text](/path/to/img.jpg "title")
图片定义要点:

  1. 一个惊叹号 !
  2. 接着一个方括号,里面放上图片的替代文字。
  3. 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 ‘title’ 文字。
  1. 参考式:
 ![Alt text][id]
 [id]: url/to/image  "Optional title attribute"
  • 注意:
  1. Markdown 还没有办法指定图片的宽高,如果你需要的话,你可以使用普通的 <img> 标签。

2.3 其他

2.3.1 反斜杠
  • 概念:利用反斜杠 \ ,来插入一些,在语法中有其它特殊意义的符号。我们要插入是的 符号本身
  • 支持以下 特殊符号 前面 加上 反斜杠 来帮助插入其原有样式:
    MarkDown 只支持 &,和 < 的自动转换,其他的需要自己手动转换
特殊符号 名称/意义 实体符号
& 标记 HTML 实体 &amp;
< 起始标签 &lt;
. 英文句点
* 星号
_ 底线
\ 反斜线
` 反引号
{} 花括号
[] 方括号
() 括弧
# 井子号
+ 加号
- 减号
! 惊叹号
  • 注意:
  1. 除了使用 反斜杠 转义特殊字符外,也可以直接使用特殊字符的 实体符号 表示。
  2. 实体符号 的另外一个作用,是有些字符键盘无法直接输出,可以使用这些字符的 实体符号,来表示输出。
    如 版权符号 ©, 其实体符号为 &copy;
2.3.2 表格
  • 使用形式:

      // 标准形式
    
      |项目|价格|数量|
      |:---|---:|:---:|
      |iPhone|6000元 |3|
      |iPad  |3000元 |4|
      |iMac  |10000元|5|
      
      
      // 简化形式
    
      项目|价格|数量
      :-|-:|:-:
      iPhone|6000元 |3
      iPad  |3000元 |4
      iMac  |10000元|5