Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

文档语法

本书基于 mdBook,一脉相传地继承了 CommonMark 的语法,标准如下:

文本和段落

文本1,文本2

一个段落

段落间要求空行
简单换行会变为空格

渲染

文本1,文本2

一个段落

段落间要求空行 简单换行会变为空格

标题

标题使用#标记,并且应该单独占一行。更多的#表示更小的标题:

文本和段落可在标题前
#### A
文本和段落可在两标题间
#### B

空行不影响渲染

#### C
文本和段落可在两标题后

##### 更小标题

渲染

文本和段落可在标题前

A

文本和段落可在两标题间

B

空行不影响渲染

C

文本和段落可在两标题后

更小标题

  1. 建议#数量在 1 至 5 间。
  2. 标题应明显分割内容以增强阅读体验。
  3. 是否空行取决于语意关系。

列表

列表可以是无序的或有序的,有序列表将自动排序:

#### 无序写法1(方形)
* 换行不影响
* 换行不影响

* 换行
不影响
#### 无序写法2(圆形)
- 换行不影响
- 换行不影响

- 换行
不影响

#### 有序写法1
1. 换行不影响

1. 换行不影响
1. 换行
不影响
#### 有序写法2
1. 换行不影响
2. 换行不影响

3. 换行
不影响

列表支持嵌套:
1. 有序写法
    1. A
    2. B
    3. C
2. 无序写法
    * 1
        - 1
        - 2
        - 3
    * 4
        1. A
        2. B

渲染

无序写法1(方形)

  • 换行不影响

  • 换行不影响

  • 换行 不影响

无序写法2(圆形)

  • 换行不影响

  • 换行不影响

  • 换行 不影响

有序写法1

  1. 换行不影响

  2. 换行不影响

  3. 换行 不影响

有序写法2

  1. 换行不影响

  2. 换行不影响

  3. 换行 不影响

列表支持嵌套:

  1. 有序写法
    1. A
    2. B
    3. C
  2. 无序写法
    • 1
      • 1
      • 2
      • 3
    • 4
      1. A
      2. B

  1. 推荐用有序写法2无序写法2(圆形)

链接

链接到 URL 或本地文件很简单:

本书用 [mdBook](https://github.com/rust-lang/mdBook)。

你可阅读 [README](./README.md) 来了解PR方式。

(直接用不影响)

[直接用不影响]

(本地路径采用相对,不应超出src的范围)

裸链接: <https://rust-lang.github.io/mdBook/format/markdown.html>

渲染

本书用 mdBook

你可阅读 README 来了解PR方式。

(直接用不影响)

[直接用不影响]

(本地路径采用相对,不应超出src的范围)

裸链接: https://rust-lang.github.io/mdBook/format/markdown.html

注意

  1. .md结尾的相对链接将被转换为.html扩展名。建议尽可能使用.md链接。这在 Markdown 文件在 mdBook 外部查看时很有用,例如在 GitHub 或 GitLab 上,这些平台会自动渲染 Markdown。
  2. 链接到README.md将会被转换为index.html。这是因为在某些服务(如 GitHub)中,它们会自动渲染 README 文件,而网页服务器通常期望根文件被称为index.html
  3. #链接到各个标题,如文本和段落 ([文本和段落](#文本和段落)) 和 PR贡献指南 ([PR贡献指南](./README.md#PR贡献指南))

图片

包含图片只需包含指向它们的链接(URL或本地文件),就像上面链接部分一样:

![License](https://img.shields.io/github/license/TickPoints/algorithm_learning)

渲染

License

加粗

文本可以通过在每个侧面包裹两个星号来渲染:

**加粗**

加粗

代码

通过在文本两侧添加反引号从而在单行中获取代码段,推荐为数字(如`1`)和小型代码片段(如`while`)添加。

通过三个连续的反引号(```)来创造代码框,在首三个连续的反引号后添加如rs(Rust),md(Markdown),text来控制语言和渲染逻辑。

渲染

通过在文本两侧添加反引号从而在单行中获取代码段,推荐为数字(如1)和小型代码片段(如while)添加。

通过三个连续的反引号(```)来创造代码框,在首三个连续的反引号后添加如rs(Rust),md(Markdown),text来控制语言和渲染逻辑。

mdBook 在标准 CommonMark 规范之外有几个扩展:

删除线

文本可以通过在每个侧面包裹两个波浪号来渲染:

你好,Rust~~世界~~!

渲染

你好,Rust世界!

脚注

脚注会在文本中生成一个小编号的链接,点击后会将读者带到该项底部的脚注文本1。脚注标签的写法类似于链接引用,前面有一个尖角符号。

脚注会在文本中生成一个小编号的链接,点击后会将读者带到该项底部的脚注文本[^note1]。脚注标签的写法类似于链接引用,前面有一个尖角符号。

[^note1]: 必须放在文档底部。

注意

  1. 推荐以[^noteX]的格式书写。

表格

阅读Github的 表格扩展规范

数学公式

我们采用mdBook-KaTeX渲染LaTex数学表达式。而不使用mdBook自带的MathJax支持以避免一些问题并增强体验。

一般格式如下:

行内: $ f(x) = ax^2 + bx + c$

全行:
$$
f(x) = x^2 \\
x \in \R
$$

用`\$`而正常显示\$

渲染

行内:

全行:

\$而正常显示$

以上内容为编写文档时可能用到的所有语法,更多语法可参见其他地方(如Github文档),上面有很多推荐,文档编写者应该尽量满足,同时严格的编写语法是必须满足的。


  1. 必须放在文档底部。