Qt帮助项目
Qt帮助项目收集生成压缩帮助文件所需的所有数据。除了实际的帮助数据(如目录、索引关键字和帮助文档)外,还包含一些额外的信息,如用于标识帮助文件的命名空间。一个帮助项目代表一个文档集,例如qmake手册。
Qt帮助项目文件格式
该文件格式基于XML。为了更好地理解格式,我们将讨论以下示例
<?xml version="1.0" encoding="UTF-8"?> <QtHelpProject version="1.0"> <namespace>mycompany.com.myapplication.1.0</namespace> <virtualFolder>doc</virtualFolder> <customFilter name="My Application 1.0"> <filterAttribute>myapp</filterAttribute> <filterAttribute>1.0</filterAttribute> </customFilter> <filterSection> <filterAttribute>myapp</filterAttribute> <filterAttribute>1.0</filterAttribute> <toc> <section title="My Application Manual" ref="index.html"> <section title="Chapter 1" ref="doc.html#chapter1"/> <section title="Chapter 2" ref="doc.html#chapter2"/> <section title="Chapter 3" ref="doc.html#chapter3"/> </section> </toc> <keywords> <keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/> <keyword name="bar" ref="doc.html#bar"/> <keyword id="MyApplication::foobar" ref="doc.html#foobar"/> </keywords> <files> <file>classic.css</file> <file>*.html</file> </files> </filterSection> </QtHelpProject>
命名空间
为了使QHelpEngine能够检索到给定链接的正确文档,每个文档集都必须有一个唯一的标识符。唯一标识符还使得帮助集合能够跟踪文档集而无需依赖于其文件名。Qt帮助系统使用命名空间作为标识符,该标识符由必须的命名空间标签定义。在上例中,命名空间是"mycompany.com.myapplication.1.0"。
虚拟文件夹
为每个文档集拥有一个命名空间自然意味着文档集相当分散。从帮助引擎的角度来看,这是有益的。然而,从编写者的角度来看,常常需要从一个手册引用到另一个手册中的某些主题,而无需指定绝对链接。为了解决这个问题,帮助系统引入了虚拟文件夹的概念。
虚拟文件夹将成为压缩帮助文件中所有引用文件的根目录。当两个文档集使用相同的虚拟文件夹时,它们可以在定义指向对方的超链接时使用相对路径。如果一个文件包含在两个文档集中,则当前集的文件具有优先级。
... <virtualFolder>doc</virtualFolder> ...
上述示例指定doc为虚拟文件夹。如果另一本手册指定相同的文件夹,例如为一个小型辅助工具My Application,则只需编写doc.html#section1来引用My Application手册中的第一个部分。
虚拟文件夹标签是必需的,且文件夹名称不得包含任何斜杠(/)。
筛选部分
筛选部分包含实际文档。Qt帮助项目文件可能包含多个筛选部分。每个筛选部分由目录、关键字和文件列表组成。从理论上讲,所有部分都是可选的,但不指定任何内容将导致文档集为空。
目录
... <toc> <section title="My Application Manual" ref="index.html"> <section title="Chapter 1" ref="doc.html#chapter1"/> <section title="Chapter 2" ref="doc.html#chapter2"/> <section title="Chapter 3" ref="doc.html#chapter3"/> </section> </toc> ...
一个部分标签代表目录中的一项。部分可以嵌套到任何程度,但从用户的角度来看,不应超过四到五层。一个部分由其标题和引用定义。引用,就像Qt帮助项目中的所有文件引用一样,都是相对于帮助项目文件本身的。
注意:所引用的文件必须与帮助项目文件位于同一目录中(或子目录下)。也不支持绝对文件路径。
关键词
... <keywords> <keyword name="foo" id="MyApplication::foo" ref="doc.html#foo"/> <keyword name="bar" ref="doc.html#bar"/> <keyword id="MyApplication::foobar" ref="doc.html#foobar"/> </keywords> ...
关键词部分列出了此过滤部分的全部关键词。一个关键词基本上由一个名称和一个文件引用组成。如果使用属性name,则该处指定的关键词将出现在可见索引中。也就是说,它可以通过QHelpIndexModel类来访问。如果使用id,则关键词不会出现在索引中,只能通过QHelpEngineCore::documentsForIdentifier()访问。name和id可以同时指定。
文件
... <files> <file>classic.css</file> <file>*.html</file> </files> ...
最后,必须列出实际的文档文件。确保提及显示帮助所需的所有文件。也就是说,需要列出样式表或类似文件。这些文件,就像Qt帮助项目中的所有文件引用一样,相对于帮助项目文件本身是相对的。如示例所示,可以使用通配符指定文件(但不能指定目录)作为模式。所有列出的文件都将被压缩并写入Qt压缩帮助文件。因此,最终,单一的Qt帮助文件包含了所有文档文件以及内容索引。
注意:所引用的文件必须位于与帮助项目文件相同的目录内(或子目录下)。也不支持绝对文件路径。
© 2024 Qt公司有限公司。本文件中包含的文档贡献是各自所有者的版权。提供的文档是根据由自由软件基金会发布的GNU自由文档许可协议版本1.3许可的。Qt及其相关标志是芬兰和/或其他国家/地区的Qt公司商标。所有其他商标均为各自所有者的财产。