功能特性

  • 对文档编写者来说几乎没有额外的负担。可以使用纯文本,支持 Markdown,对于更花哨或结构化的输出,可以使用 HTML 标签和/或 Doxygen 的一些特殊命令。
  • 跨平台:可在 Windows 和许多 Unix 系统(包括 Linux 和 macOS)上运行。
  • 即使对于没有文档的代码,也能索引、组织和生成可浏览和交叉引用的输出。
  • 为解析的源代码生成结构化的 XML 输出,可供外部工具使用。
  • 支持 C/C++、Lex、Java、(Corba 和 Microsoft) Java、Python、VHDL、PHP IDL、C#、Fortran、Objective-C 2.0,以及一定程度上的 D 源代码。
  • 支持对文件、命名空间、包、类、结构体、联合体、模板、变量、函数、类型定义、枚举和宏定义进行文档化。
  • 兼容 Javadoc (1.1)、qdoc3 (部分) 和 ECMA-334 (C# 规范)。
  • 附带 GUI 前端 (Doxywizard),方便编辑选项和运行 Doxygen。GUI 可在 Windows、Linux 和 macOS 上使用。
  • 自动生成 HTML 中的类图和协作图(作为可点击的图像映射)以及 {\LaTeX} 中的类图和协作图(作为封装的 PostScript 图像)。
  • 使用 Graphviz 工具包的 dot 工具生成包含依赖图、协作图、调用图、目录结构图和图形化类层次结构图。
  • 允许将实体分组到主题中,并创建主题层次结构。
  • 灵活的注释位置:允许您将文档放在头文件中(在实体声明之前)、源文件中(在实体定义之前)或单独的文件中。
  • 生成类的所有成员列表(包括任何继承的成员)及其保护级别。
  • 同时以在线格式(XHTML 和 UNIX man 页面)和离线格式( {\LaTeX} 和 RTF)输出文档(可以根据需要禁用任何一种格式)。所有格式都针对易读性进行了优化。
    此外,可以使用 Microsoft 的 HTML Help Workshop(仅限 Windows)从 HTML 输出生成压缩的 HTML,并且可以从 {\LaTeX} 输出生成 PDF。
  • 支持各种第三方帮助格式,包括 HTML Help、docsets、Qt-Help 和 eclipse help。
  • 包含完整的 C 预处理器,以允许正确解析条件代码片段,并允许展开全部或部分宏定义。
  • 自动检测公共、受保护和私有部分,以及 Qt 特定的信号和槽部分。提取私有类成员是可选的。
  • 自动生成对已文档化的类、文件、命名空间和成员的引用。也支持对全局函数、全局变量、类型定义、宏定义和枚举进行文档化。
  • 自动生成对基类/父类和继承/重写成员的引用。
  • 包含快速的、基于排名的搜索引擎,用于在类和成员文档中搜索字符串或单词(基于 PHP)。
  • 包含基于 JavaScript 的实时搜索功能,可在您键入时搜索符号(适用于中小型项目)。
  • 您可以在文档中键入普通的 HTML 标签。Doxygen 会自动将它们转换为等效的 {\LaTeX}、RTF 和 man 页面对应项。
  • 允许以与位置无关的方式引用为其他(使用 Doxygen 文档化的)项目(或同一项目的另一部分)生成的文档。
  • 允许包含源代码示例,这些示例会自动与文档进行交叉引用。
  • 还支持包含未文档化的类,从而可以快速了解(大型)代码片段的结构和接口,而无需查看实现细节。
  • 允许将(已文档化的)实体与其在源代码中的定义进行自动交叉引用。
  • 所有源代码片段都进行了语法高亮显示,方便阅读。
  • 允许在文档中包含函数/成员/类定义。
  • 所有选项都从易于编辑且(可选)带有注释的配置文件中读取。
  • 文档和搜索引擎可以传输到另一个位置或机器,而无需重新生成文档。
  • 支持许多不同的字符编码,并在内部和生成的输出中使用 UTF-8。
  • Doxygen 可以生成一个布局,您可以使用并编辑该布局来更改每个页面的布局。
  • 有 100 多个可配置选项来微调输出。
  • 可以轻松处理大型项目。

尽管 Doxygen 现在可以用于任何使用 Doxygen 支持的语言编写的项目,但最初它是专门为使用 Qt Software 的 Qt 工具包 的项目而设计的。我尝试使 Doxygen 与 ‘Qt 兼容’。也就是说:Doxygen 可以读取 Qt 源代码中包含的文档,并创建一个看起来与 Qt Software 生成的类浏览器非常相似的类浏览器。Doxygen 理解 Qt 使用的 C++ 扩展,例如信号和槽,以及 Qt 源代码中使用的许多标记命令。

Doxygen 还可以自动生成指向使用 Doxygen 或 Qt 的非公共类浏览器生成器生成的现有文档的链接。对于基于 Qt 的项目,这意味着无论您何时引用属于 Qt 工具包的成员或类,都会生成指向 Qt 文档的链接。这是独立于此文档所在的位置完成的!

转到 下一节 或返回 索引