Boost C++ 库

...世界上最受尊敬和专业设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, 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: 权威指南 中有完整描述

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 开始,转义的 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]
[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