Boost C++ 库

…世界上最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

文档结构 - Boost C++ 函数库
PrevUpHomeNext

文档结构

每个文档都必须以文档信息部分开始,其格式大致如下

[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 特定的元数据
[quickbook 1.7]

quickbook 属性声明了文档所编写的 quickbook 版本。如果省略,则假定版本为 1.1。建议您使用 [quickbook 1.7],这是此处描述的版本。

[Note] 注意

quickbook 版本还会对生成的标记进行一些更改。最值得注意的是,标题和章节自动生成的 ID 在后续版本中有所不同。为了尽量减少干扰,您可以使用 compatibility-mode 属性来生成与旧版本类似的标记

[article Article that was original
         written in quickbook 1.3
[quickbook 1.7]
[compatibility-mode 1.3]
]

此功能不应用于新文档,仅用于将旧文档移植到新版本。

quickbookcompatibility-mode 标签都可以放在文件开头,在文档信息块之前,也可以放在没有文档信息块的文件中。

[source-mode teletype]

source-mode 属性设置初始 源模式。如果省略,则使用默认值 c++

Boostbook/Docbook 根元素属性
[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 文档没有实际作用。

Docbook 元数据

versioncopyrightauthorslicenselast-revisionbibliod 是可选信息。

Boostbook 元数据

purposecategory 是 Boostbook 属性,仅对 library 文档有效。如果您将它们用于其他文档类型,Quickbook 会发出警告,但仍会使用它们,生成无效标记,这仅会被样式表忽略。

转义的 Docbook

从 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]
[Note] 注意

像这样组织文档是在 Quickbook 1.6 中引入的,因此需要 [quickbook 1.6] 或更高版本的 docinfo 字段。

引言的适当文档类型是 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-ZA-Z0-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]

章节可以嵌套,这会在目录中产生一个层次结构。


PrevUpHomeNext