每个文档都必须以文档信息节开始,它看起来像这样
[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: 权威指南 中有完整描述
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 开始,转义的 boostbook 或 docbook 可以包含在 docinfo 块中
[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]
章节可以嵌套,这会在目录中产生层次结构。