asciidoc语法快速参考

IvorySQL文档是用“asciidoc”编写的。为确保格式的质量和一致性,在修改更新文档时应遵循某些 asciidoc 规则。

1. 规范说明

asciidoc规范

​1、标题从一级开始递增使用,禁止跳级使用。例如:一级标题下面不能直接使用三级标题;二级标题下面不能直接使用四级标题。

​2、标题必须统一使用 ATX 风格,即在标题前加 = 号来表示标题级别。

​3、标题的引导符号 = 后必须空一格再接标题内容。

​4、标题的引导符号“=”后只能空一格后再接标题内容,不能有多个空格。

​5、标题必须出现在一行行首,即标题的 = 号前不能有任何空格。

​6、标题末尾仅能出现中英文问号、反引号、中英文单双引号等符号。其余如冒号、逗号、句号、感叹号等符号均不能在标题末尾使用。

​7、标题上面须空一行。

​8、文档中不能连续出现内容重复的标题,如一级标题为 = IvorySQL 架构,紧接着的二级标题就不能是 == IvorySQL 架构。如果不是连续的标题,则标题内容可重复。

​9、文档中只能出现一个一级标题。

​10、一般来说,除 TOC.adoc 文件可缩进 2 个空格外,其余所有 .adoc 文件每缩进一级,默认须缩进 4 个空格。

​11、文档中(包括代码块内)禁止出现 Tab 制表符,如需缩进,必须统一用空格代替

​12、禁止出现连续的空行。

​13、块引用符号 > 后禁止出现多个空格,只能使用一个空格,后接引用内容。

​14、使用有序列表时,必须从 1 开始,按顺序递增。

​15、使用列表时,每一列表项的标识符(+、-、* 或数字)后只能空一格,后接列表内容。

​16、列表(包括有序和无序列表)前后必须各空一行。

​17、代码块前后必须各空一行。

​18、文档中禁止出现裸露的 URL。如果希望用户能直接点击并打开该 URL,则使用一对尖括号 (<URL>) 包裹该 URL。如果由于特殊情况必须使用裸露的 URL,不需要用户通过点击打开,则使用一对反引号 `URL` 包裹该 URL。

​19、使用加粗、斜体等强调效果时,在强调标识符内禁止出现多余的空格。如不能出现 ** 加粗文本 **

​20、单个反引号包裹的代码块内禁止出现多余的空格。如不能出现 ` 示例文本`。

​21、链接文本两边禁止出现多余的空格。如不能出现 某链接

​22、链接必须有链接路径。如不能出现空链接等情况。

2. 示例

1、标题从一级开始递增使用,禁止跳级使用。

= Heading 1
=== Heading 3

We skipped out a 2nd level heading in this document

2、标题必须统一使用 ATX 风格,即在标题前加 = 号来表示标题级别。

= Heading 1
== Heading 2
=== Heading 3
==== Heading 4
== Another Heading 2
=== Another Heading 3

3、标题的引导符号 = 后必须空一格再接标题内容。禁止=后多个空格,禁止=前出现空格

错误示范:

= Heading 1
== Heading 2

正确示范:

= Heading 1
== Heading 2

4、标题末尾仅能出现中英文问号、反引号、中英文单双引号等符号。

错误示范

= This is a heading.

正确示范

= This is a heading

5、标题上面空一行

错误示范

= Heading 1
Some text
Some more text## Heading 2

正确示范

= Heading 1
Some text
Some more text

== Heading 2

6、文档中不能连续出现内容重复的标题,如一级标题为 = IvorySQL 描述,紧接着的二级标题就不能是 == IvorySQL 描述。如果不是连续的标题,则标题内容可重复。

错误示范

= Some text

== Some text

正确示范

= Some text

== Some more text

7、文档中只能出现一个一级标题。

错误示范

= Top level heading

= Another top-level heading

正确示范

= Title

== Heading

== Another heading

8、一般来说,除 TOC.adoc 文件可缩进 2 个空格外,其余所有 .adoc 文件每缩进一级,默认须缩进 4 个空格。

错误示范

* List item
  * Nested list item indented by 3 spaces

正确示范:

* List item
    * Nested list item indented by 4 spaces

9、文档中(包括代码块内)禁止出现 Tab 制表符,如需缩进,必须统一用空格代替

错误示范:

Some text
	* hard tab character used to indent the list item

正确示范:

Some text
  * Spaces used to indent the list item instead

10、禁止出现连续的空行

错误示范

Some text here


Some more text here

正确示范:

Some text here

Some more text here

11、块引用符号 > 后禁止出现多个空格,只能使用一个空格,后接引用内容。

错误示范

>  This is a blockquote with bad indentation>  there should only be one.

正确示范

> This is a blockquote with correct> indentation.

12、使用有序列表时,必须从 1 开始,按顺序递增。

错误示范:

1. Do this.
1. Do that.
1. Done.
0. Do this.
1. Do that.
2. Done.
正确示范:
1. Do this.
2. Do that.
3. Done.

13、使用列表时,每一列表项的标识符(+、-、* 或数字)后只能空一格,后接列表内容。

正确示范

* Foo
* Bar
* Baz

1. Foo
  * Bar
1. Baz

14、列表(包括有序和无序列表)前后必须各空一行。

错误示范

Some text* Some* List

1. Some2. List

Some text

正确示范

Some text

* Some
* List

1. Some
2. List

Some text

15、代码块前后必须各空一行。

错误示范

Some text
​```
Code block
​```
​```
Another code block
​```
Some more text

正确示范

Some text

​```
Code block
​```

​```
Another code block
​```

Some more text

16、文档中禁止出现裸露的 URL。如果希望用户能直接点击并打开该 URL,则使用一对尖括号 (<URL>) 包裹该 URL。如果由于特殊情况必须使用裸露的 URL,不需要用户通过点击打开,则使用一对反引号 `URL` 包裹该 URL。

错误示范

For more information, see https://www.example.com/.

正确示范

For more information, see <https://www.example.com/>.

17、使用加粗、斜体等强调效果时,在强调标识符内禁止出现多余的空格。如不能出现 ** 加粗文本 **

错误示范

Here is some ** bold ** text.

Here is some * italic * text.

Here is some more __ bold __ text.

Here is some more _ italic _ text.

正确示范:

Here is some **bold** text.

Here is some *italic* text.

Here is some more __bold__ text.

Here is some more _italic_ text.

18、单个反引号包裹的代码块内禁止出现多余的空格。如不能出现 ` 示例文本`。

错误示范:

some text
 some text

正确示范:

some text

19、链接文本两边禁止出现多余的空格。如不能出现 某链接

错误示范

[ a link ](https://www.example.com/)

正确示范:

[a link](https://www.example.com/)

20、链接必须有链接路径。如不能出现空链接等情况。

错误示范

[an empty link]()

[an empty fragment](#)

正确示范:

[a valid link](https://example.com/)

[a valid fragment](#fragment)

21、文档中的代码块统一使用三个反引号进行包裹,禁止使用缩进四格风格的代码块。

错误示范:

Some text.

  # Indented code

More text.

正确示范

```ruby
# Fenced code
​```
More text.