特性

  • 对文档撰写者的要求极少。纯文本即可,支持 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} 格式(作为 Encapsulated PostScript 图像)。
  • 使用 Graphviz 工具包的 dot 工具生成包含依赖关系图、协作图、调用图、目录结构图和图形化类层次结构图。
  • 允许按主题对实体进行分组并创建主题层次结构。
  • 灵活的注释位置:允许您将文档放置在头文件(实体声明之前)、源文件(实体定义之前)或单独的文件中。
  • 生成类的所有成员列表(包括继承的成员)及其保护级别。
  • 同时输出在线格式(XHTML 和 UNIX 手册页)和离线格式( {\LaTeX} 和 RTF)(如果需要,可以禁用其中任何一种)。所有格式都经过优化,以便于阅读。
    此外,可以使用 Microsoft 的 HTML Help Workshop(仅限 Windows)从 HTML 输出生成压缩的 HTML,也可以从 {\LaTeX} 输出生成 PDF。
  • 支持各种第三方帮助格式,包括 HTML Help、docsets、Qt-Help 和 eclipse 帮助。
  • 包含一个完整的 C 预处理器,可以正确解析条件代码片段,并允许展开部分或全部宏定义。
  • 自动检测 public、protected 和 private 部分,以及 Qt 特定的 signal 和 slots 部分。提取私有类成员是可选的。
  • 自动生成对已文档化的类、文件、命名空间和成员的引用。也支持对全局函数、全局变量、类型定义、宏定义和枚举的文档化。
  • 自动生成对基类/超类和继承/覆盖成员的引用。
  • 包含一个快速的、基于排名的搜索引擎,用于在类和成员文档中搜索字符串或词语(基于 PHP)。
  • 包含一个基于 JavaScript 的实时搜索功能,可在您输入时搜索符号(适用于中小型项目)。
  • 您可以在文档中输入普通的 HTML 标签。Doxygen 会自动将其转换为等效的 {\LaTeX}、RTF 和手册页格式。
  • 允许以位置无关的方式引用为其他(已使用 Doxygen 文档化的)项目(或同一项目的另一部分)生成的文档。
  • 允许包含源代码示例,这些示例将自动与文档进行交叉引用。
  • 也支持包含未文档化的类,这样可以快速了解(大型)代码段的结构和接口,而无需查看实现细节。
  • 允许自动交叉引用(已文档化的)实体与其在源代码中的定义。
  • 所有源代码片段都进行语法高亮显示,以便于阅读。
  • 允许在文档中包含函数/成员/类的定义。
  • 所有选项都从易于编辑且(可选)带注释的配置文件中读取。
  • 文档和搜索引擎可以转移到另一个位置或机器,而无需重新生成文档。
  • 支持多种不同的字符编码,并在内部和生成输出时使用 UTF-8。
  • Doxygen 可以生成一个布局,您可以用来编辑以更改每个页面的布局。
  • 有 100 多个可配置选项可以微调输出。
  • 可以轻松应对大型项目。

虽然 Doxygen 现在可以用于任何使用 Doxygen 支持的语言编写的项目,但最初它是专门设计用于使用 Qt Software 的 Qt 工具包的项目。我一直努力使 Doxygen ‘Qt 兼容’。也就是说:Doxygen 可以读取 Qt 源代码中包含的文档,并创建一个类浏览器,其外观与 Qt Software 生成的类浏览器非常相似。Doxygen 理解 Qt 使用的 C++ 扩展,如 signals 和 slots,以及 Qt 源代码中使用的许多标记命令。

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

前往下一节或返回索引页