每个文档都必须以文档信息部分开始,其格式大致如下
[article The Document Title [quickbook 1.7] [version 1.0] [id the_document_name] [copyright 2000 2002 2003 Joe Blow, Jane Doe] [authors [Blow, Joe] [Doe, Jane]] [license The document's license] [source-mode c++] ]
article
是文档类型。有几种可能的文档类型,其中大多数基于 docbook 文档元素。这些在 DocBook: The Definitive Guide 中有完整描述
Boostbook 还添加了另一种文档类型 library
,用于记录软件库。
因此,'foo' 库的文档可能以
[library Foo [quickbook 1.7] [id foo] [version 1.0] ]
文档信息块有几种不同类型的属性。它们都是可选的。
[quickbook 1.7]
quickbook
属性声明了文档所编写的 quickbook 版本。如果省略,则假定版本为 1.1。建议您使用 [quickbook 1.7]
,这是此处描述的版本。
![]() |
注意 |
---|---|
quickbook 版本还会对生成的标记进行一些更改。最值得注意的是,标题和章节自动生成的 ID 在后续版本中有所不同。为了尽量减少干扰,您可以使用 [article Article that was original written in quickbook 1.3 [quickbook 1.7] [compatibility-mode 1.3] ] 此功能不应用于新文档,仅用于将旧文档移植到新版本。 |
quickbook
和 compatibility-mode
标签都可以放在文件开头,在文档信息块之前,也可以放在没有文档信息块的文件中。
[source-mode teletype]
source-mode
属性设置初始 源模式。如果省略,则使用默认值 c++
。
[id foo]
id
指定文档元素的 ID。如果未指定,则 ID 会根据标题自动生成。此 ID 也用于生成嵌套 ID。
[lang en]
lang
指定文档语言。Docbook 使用它来本地化文档。请注意,Boostbook 没有本地化支持,因此如果您使用它来生成参考文档,它将始终为英文。
它应该是一个来自 ISO 639 的语言代码(可能带有来自 ISO 3166 的国家代码,如 en-US)。
[dirname foo]
dirname
用于指定存储库中库的目录名称。这是 Boostbook 的扩展,因此仅对 library
文档块有效。它用于某些 Boostbook 功能,但对于纯 Quickbook 文档没有实际作用。
version
、copyright
、authors
、license
、last-revision
和 bibliod
是可选信息。
purpose
和 category
是 Boostbook 属性,仅对 library
文档有效。如果您将它们用于其他文档类型,Quickbook 会发出警告,但仍会使用它们,生成无效标记,这仅会被样式表忽略。
从 Quickbook 1.7 开始,可以在 docinfo 块中包含 转义的 Boostbook 或 Docbook
[article Some article [quickbook 1.7] '''<author> <firstname>John</firstname> <surname>Doe</surname> <email>john.doe@example.com</email> </author>''' ]
转义的 Docbook 始终放在 docinfo 块的末尾,因此不应假定它会与 Quickbook 生成的标记交错。混合使用 Quickbook 和 Docbook 属性来表示相同的信息将不起作用。
Docinfo 块只能出现在 Quickbook 文件的开头,因此要创建更复杂的文档,您需要使用多个 Quickbook 文件并使用 include 标签 来嵌套它们。例如,假设您想创建一本包含引言和章节的书,首先为这本书创建一个文件
[book Simple example [quickbook 1.7] ] [include introduction.qbk] [include chapter.qbk]
![]() |
注意 |
---|---|
像这样组织文档是在 Quickbook 1.6 中引入的,因此需要 |
引言的适当文档类型是 preface
,因此 introduction.qbk
的内容应该类似
[preface Introduction [quickbook 1.7] ] Write the introduction to the book here....
以及 chapter.qbk
[chapter A chapter [quickbook 1.7] ] Chapter contents....
Quickbook 文档使用“章节”进行结构化。它们用于生成目录,并在生成 HTML 时将文档拆分成页面。对于除最简单的文档之外的所有文档,这是可选的,但也是一个好主意。
带章节的文档可能看起来像
[book Title [quickbook 1.5] ] [section First Section] [/...] [endsect] [section Second Section] [/...] [endsect]
章节以 section
标签开始,以 [endsect]
标签结束。([/...]
是注释,稍后描述)。
可以为章节指定可选的 ID
[#quickbook.ref.id] [section:id The Section Title]
id
将是生成章节的文件名。如果不存在,则“The Section Title”将被规范化并成为 ID。有效字符为 a-Z
、A-Z
、0-9
和 _
。所有无效字符都将转换为下划线,所有大写字母都将转换为小写字母。因此:“The Section Title”将被规范化为“the_section_title”。
章节的结尾也可以有一个可选的 ID,这仅用于检查它是否与章节的开头匹配。
[section:matching Section with an id] [/...] [endsect:matching]
它不会匹配生成的 ID,只匹配显式指定的 ID,因此即使 Quickbook 为该章节生成 ID generated
,这也会是一个错误
[section Generated] [/...] [endsect:generated]
章节可以嵌套,这会在目录中产生一个层次结构。