一个AsciiDoc文档可能以文档头开始。文档头包含了文档标题、作者和修订信息、整个文档的属性和其他文档元数据。
文档头部结构
AsciiDoc源文件的可选文档头是一系列连续的行,出现在开头部分,在跳过任何空行或注释行之后。如果一个文档有头部,在它上面不允许有任何内容块。换句话说,如果文档有头部,它必须以文档头部开始。
Important
|
文档头部不得包含空行。处理器在文档头部之后遇到的第一个空行标志着文档头部的结束和文档正文的开始。 |
标题通常以 title.html 开始。当指定了文档标题时,它可能会紧接着被一到两行特定的内容行跟随。这些隐含的内容行被用来为文档分配 author-information.html 和 revision-information.html。
标题部分可以包含以下元素,只要它们之间没有空行:
-
可选的文档标题(一个0级标题)
-
可选作者行或者如果文档标题存在,作者和修订行(应紧跟在文档标题之后)。
-
使用属性条目声明的可选的文档范围属性(内置的和用户定义的),
-
包括可选的 元数据,例如描述或关键词
-
-
optional comment lines
请注意头部中的常见元素中没有任何条目之间的空行。换句话说,这些行是连续的。
// this comment line is ignored
= 文档标题
Kismet R. Lee <kismet@asciidoctor.org> <.> :description: The document's description. <.> :sectanchors: <.> :url-repo: https://my-git-repo.com <.> <.> The document body starts here.
-
文件标题
-
作者行
-
将元数据分配给内置文档属性的属性条目。
-
属性条目设置内置的文档属性
-
给用户定义的文档属性赋值的属性条目。
-
文档主体与文档头部之间通过一个空行来分隔。
在 头部中的常见元素 中有一些属性条目。每个属性条目,无论是内置的还是用户定义的,都必须单独占一行。虽然属性条目可以放置在标题的任何位置,包括文档标题之上,但如果标题存在,首选的放置位置是标题之下。由于文档标题是可选的,所以头部只包含属性条目也是可能的。
文档头部何时结束?
文档中的第一个空行标志着头部的结束。在第一个空行之后的下一行,如果包含内容,则被解释为文档正文的开始。
= 文档标题
Kismet R. Lee <kismet@asciidoctor.org> :url-repo: https://my-git-repo.com <.> 这是文档正文中的第一行内容。(1)
-
一个空行结束了文档的头部。
-
在空行之后,下一行有内容的那一行开始了文档的正文。
文档正文的第一行可以是任何有效的AsciiDoc内容,例如节标题、段落、表格、包含指令、图像等。在第一个空行下定义的任何属性都不属于文档头部,并且不会应用到整个文档的范围内。
不同文档类型的头部要求
当文档类型为`article`或`book`时,标题是可选的。当文档类型为`manpage`时,标题是必须的。有关手册页(man page)要求,请参见manpage doctype一节。
如果您在使用默认的article文档类型时,在文档头部上方放置内容块,您将会看到以下警告:
仅当文档类型为书籍时才能使用0级别的部分。
通过将文档类型更改为书籍,可以减轻这种警告,但可能会导致关于无效部分的二级警告。这是因为文档标题将被重新用作部分标题,其后的任何行都将作为内容块。如果您要使用书籍文档类型,必须将文档结构化以使用sections:parts.html。
头部处理
在转换为独立文档时,默认会显示文档头部的信息。如果你不希望显示文档的头部,可以在文档的头部设置`noheader`属性,或者通过命令行界面设置。
前言
许多静态网站生成器,如Jekyll和Middleman,依赖于添加到文档顶部的前言部分来决定如何转换内容。Asciidoctor有许多属性可以正确处理前言部分。查看asciidoctor:html-backend:skip-front-matter.html以了解更多信息。