现已发布! 发布日期:2026 年 1 月 5 日

Doxygen 扩展

随着工具/脚本数量的不断增长,我已将它们分为几个类别。

图表生成器

Nassi-Shneiderman 图

Eckard Klotz 发起了一个名为 Moritz 的项目。该项目可以生成 C/C++ 源代码中函数和方法的 Nassi-Shneiderman 图,并将其保存为 HTML 文件,这些文件可以包含在软件文档中,或者直接在 Web 浏览器中查看。


添加对其他语言支持的过滤器

Perl

Bret Jordan 编写了 一个过滤器,Thomas Aeby 编写了 另一个过滤器

Javascript

对于使用 JavaScript 的用户,值得一提的是 Jörg Schaible 编写了一个 Perl 脚本,可以让 doxygen 处理 JavaScript。不幸的是,他的 berlios.de 网站已被移除。如果您搜索 js2doxy.pl,仍然可以找到该脚本的副本。

Object Pascal

Darren Bowles 发起了一个名为 Pas2dox 的项目,该项目将 Object Pascal 转换为 C++ 风格的语法,doxygen 随后可以轻松解析。该项目的目标是允许 doxygen 用于 Delphi/Kylix 项目。

Visual Basic

Mathias Henze 编写了一个 awk 脚本,可以将 Visual Basic 代码转换为 doxygen 可以理解的格式。该软件包包含一个小的批处理包装器。要使用它,需要在配置文件选项 "INPUT_FILTER" 中添加以下行:

C:/path/to/filer/tools/vbfilter.bat C:\path\to\filter\tools

需要确保 supplied path 下有 sh.exe、gawk.exe 和 tee.exe 等 Unix 工具。您可以在 此处 下载它们。

Basti Grembowietz 提供了一个适用于 Visual Basic替代过滤器,该过滤器需要 Python,并附带以下使用说明:

VB 文件需要按以下方式准备:

  '* <comments directly handed to doxygen>
  <vb- Function / Sub / Member>

对于更简短的用法,也允许这样做:

  <vb-member (recommended)> '* <doxygen-comment>

对于指向类/模块的注释,必须使用“!”。

Giovanni De Cicco 为 VB6 开发人员编写了一个名为 VBDoxyAddin 的插件,该插件基于 Mathias 的脚本。

对于较新的 VB.NET(以及经典 VB),Vsevolod Kukol 编写了一个基于 awk 的 过滤器

MatLab

Ben Heasly 为 doxygen 编写了一个 过滤器,该过滤器可以将 MatLab 脚本(包括新的面向对象特性)转换为 doxygen 可以理解的格式。

Ian Martins 提供了一个 替代过滤器

Fabrice 也提供了一个,您可以在 Matlab Central 上找到它。

Pro*C

Darren Bowles 创建了 Proc2Dox,这是一个 doxygen 的预处理器插件,用于添加对 Pro*C 代码的支持。

汇编

Bogdan Drozdowski 和 Rick Foos 编写了一个过滤器,用于将 汇编代码转换为 C 风格的代码,doxygen 随后可以解析。

Lua

Alec Chen 编写了一个 过滤器,用于让 doxygen 解析 Lua 代码。Simon Dales 提供了另一个 lua 过滤器,用于实现相同的功能。

GLSL Shader

Sebastian Schaefer 编写了一个 过滤器,用于让 doxygen 解析 GLSL shader 语言。

Qt QML

Aurélien Gâteau 为 Qt 的 QML 文件编写了一个 过滤器

GOB-doc

GOB-doc 过滤器 解析 *.gob 文件并生成 C++ 类定义。

Prolog

Dr Beco 编写了一个 Prolog 过滤器

CAPL

Bretislav Rychta 编写了一个 CAPL (CAN Access Programming Language) 过滤器

STX

Jan Lochmatter 编写了一个 STX 语言过滤器,STX 语言用于德国制造商 Jetter 的 PLC(可编程逻辑控制器)。

KickAssembler

Raffaele Intorcia 编写了一个 Python 脚本,可以简单地将 KickAssembler 源代码转换为 C 风格的格式。


提高易用性

Doxygenator

Pierre Clouthier 编写了 Doxygenator,这是一个自动在函数前插入 Doxygen 注释块的工具。Doxygen 命令是模板或骨架,您需要填写详细信息。

DoxyAssist

ChEeTaH 编写了 DoxyAssist。该工具可以使用模板 doxygen 配置文件,并为其管理的特定项目和子项目调整设置。doxygen 会为每个(子)项目单独运行,从而为每个子项目生成独立的文档集。它会将这些部分组合回 Qt Assistant,并确保可用相应的过滤器。然后,Qt Assistant 可以用来查看整个文档,或者轻松地将视图限制在某个子项目。对 Drupal 有特殊支持,其中所有贡献的模块都会被自动发现并添加为子项目(请参阅 演示)。

Eclipse

EcloxEclipse 的 doxygen 前端插件。

Visual Studio

如果您使用 Visual Studio .NET,可以看看 Steve King 的插件集。Greg Engelstad 编写了一个 Perl 脚本,用于解析 Visual Studio .NET 解决方案文件 (.sln),并为其中包含的每个独立项目运行 doxygen。

Jason Williams 编写了一个适用于 Visual Studio 2005 和 2008 的 插件,该插件能够从大多数代码元素(文件、命名空间、类、结构、枚举、函数等)自动生成 doxygen(或 DocXml)风格的注释。它解析 C、C++、C# 和 Java 代码以生成完整的 doxygen 注释,并且可以在代码元素更改时更新这些注释,并通过自动换行来保持描述的整洁。它使用一组用户可编辑的规则来提供元素、参数和返回值的自动描述,从而最大限度地减少生成文档注释的工作量。

jgallardo 还编写了一个适用于 Visual Studio 的 插件,可以方便地浏览 doxygen 生成的文档。

一个名为 DoxyComment 的适用于 Visual Studio 2005 的插件由 Troels Gram 创建。它旨在帮助您将上下文敏感的注释块插入 C/C++ 源文件中。DoxyComment 还附带一个 XSLT 模板,让您可以生成类似 MSDN 库的文档。

如果您使用的是 Microsoft 的 Developer Studio 6.0,可以使用一个名为 DoxBar 的插件,该插件可以从 Developer Studio 中运行 doxygen 并搜索生成的 HTML 帮助文件。
注意:我已无法再维护 DoxBar,因此已将其转移到 sourceforge。Olivier Sannier 为 DoxBar 引入了许多改进。如果您也想加入开发团队,请在 sourceforge 注册为用户,并将您的用户名通过邮件发送给

Bernhard Nowara 编写了一个 配置文件编辑器,这是一个类似于 doxywizard 的 Windows 工具。他还创建了一个 增强版 DoxBar,其中包含他的编辑器以及 用于 Visual Studio 的宏,以便于准备源代码供 doxygen 使用。Olivier Sannier 已将这些更改合并到 doxygen 的更新版本中。

FeinSoftware 发布了一个适用于 Microsoft Visual Studio .NET (Visual C++) 的开发工具 CommentMaker,该工具可以创建可自定义的函数头,开发人员可以根据最具体的文档要求进行调整。默认情况下,它会生成与 doxygen 兼容的注释。

TechPubs 工具

Glenn Maxey 发布了 The TechPubs Tools (TPT),该工具可以包装任意数量的 mini-HTML 系统,并创建一个全面的 HTML 系统,包括目录和自动生成的索引/一致性列表。TPT 由 Perl 程序、UNIX shell 脚本和主模板文件(HTML)组成。

树状视图小应用程序

对于在 TREEVIEW 选项上遇到性能问题的人,可以尝试 Glenn Maxey 编写的 这个脚本

MSDN 集成

对于使用 Windows 并希望将 doxygen 生成的压缩 HTML 集成到 MSDN 的用户,可以参考 这个 MSDN 集合集成实用程序

通过 Perl 配置

Richard Y. Kim 编写了一个 Perl 模块,以便更轻松地在 Perl 脚本中使用/配置 doxygen。

Ant 任务

如果您使用 Ant,可以看看 Karthik A Kumar 的 Ant 任务对象,用于 doxygen。

Automake/autoconf 集成

Oren Ben-Kiki 展示了如何将 doxygen 与 Automake 和 Autoconf 集成

嵌入 HTML

Wilfred Nilsen 编写了一个(适用于 Windows 的)工具,可以将多个 HTML 文件合并并嵌入到单个可执行文件中。这可以与 doxygen 的 HTML 输出结合使用。

Trac 插件

如果您使用 Trac 来跟踪问题,可以看看这个 插件,用于嵌入 doxygen 文档。

CMake 集成

Stefan Majewsky 在一篇博客文章中介绍了如何将 doxygen 集成到基于 CMake 的项目中。

DoxyGrouper

Raja Kajiev 编写了一个名为 DoxyGrouper 的工具,可以帮助按目录结构将项目分组。

qtres2dox

Markus Schwartz 编写了一个名为 qtres2dox 的工具,可以从 .ui 和 .qrc 文件生成 doxygen 的输入文件。

Doxynum

Doxynum 是一个程序,用于自动编号在使用 doxygen 软件生成的文档中的章节和图表,以及创建目录。


编辑器插件

Visual Studio

Sedeniono 编写了 VSDoxyHighlighter,这是一个 Visual Studio 2022 扩展,提供语法高亮和自动完成功能。

Christoph Schlosser 编写了 VS Code 扩展,通过输入 Doxygen 注释块并按 Enter 键,即可即时生成 Doxygen 文档,该扩展通过输入 Doxygen 注释块并按 Enter 键,即可即时生成 Doxygen 文档。

VIM

如果 VIM 是您喜欢的编辑器(也是我的!),Michael Geddes 在 C/C++/IDL/Java 的基础上编写了一个 语法高亮脚本。Ralf Schandl 也提供了一些 宏和语法高亮文件。Emilio Riva 发送了 另一个 VIM 高亮文件

Emacs

如果您使用 Emacs 编辑器,可以看看 epydoc-el,这是一个 Lisp 脚本,用于简化 doxygen 注释的书写。

Ryan Sammartino 在 sourceforge 上维护着一个名为 Doxymacs 的项目,该项目生成了一个 elisp 包,可以更轻松地在 {X}Emacs 中使用 doxygen。

UltraEdit

如果 UltraEdit 是您的首选编辑器,可以看看 Dominik Stadler 的 脚本,了解如何为 doxygen 注释块启用语法高亮。

TSE Pro/32

对于 SemWare 的 TSE Pro/32 编辑器,Howard Kapustein 提供了 doxygen 风格注释块的 语法定义文件

Delphi/C++ Builder

如果您将 Delphi 或 C++ Builder 与 GExperts 结合使用,可以使用 Miguel A. Richard 编写的这个 XML 宏,作为代码注释的模板。


从其他文档工具迁移

Cocoon

如果您想将 Cocoon(或 C++)风格的注释实时转换为 Qt 风格的注释,可以尝试 Paul S. Strauss 编写的 filterComments.pl 脚本。将其与 doxygen 的 INPUT_FILTER 配置选项结合使用。

AutoDuck

Martin Slater 编写了一个 Python 脚本 duck2dox,可用于将 AutoDuck 风格的注释转换为 doxygen 注释。Steven Blackburn 编写了一个用 C++ 编写的 替代过滤器。Brian Szuter 在尝试了其他过滤器并发现它们不满足他的需求后,编写了 又一个过滤器


XML/XSLT 示例

Breathe

Micheal Jones 编写了一个 扩展,用于 reStructuredText 和 Sphinx,以便能够读取和渲染 doxygen 的 XML 输出。

C# doxmlparser

Baneu Mihai 编写了一个 包装器,围绕 doxygen 的 XML 解析器(位于 addon/doxmlparser 中),使其可以从 C# 访问。

Doxyclean

Matt Ball 编写了一个名为 doxyclean 的脚本,用于将 doxygen 的输出转换为更接近 Apple 自身文档的格式。

Doxygen.NET

Thomas Hansen 和 Kariem Ali 编写了 Doxygen.NET,它提供了 doxygen 生成的 XML 输出的 .NET 对象包装器。

Dox

Narech Koumar 编写了一个名为 Dox 的工具,该工具读取 doxygen 生成的 XML 输出,并将其转换为格式化的 HTML,其样式类似于 Javadoc 的。

XSLT 示例

如果您想了解如何使用 XSLT 将 doxygen 的 XML 输出转换为其他格式(在此示例中为 HTML/CHM),可以看看 Chelpanov 的示例。不过,它存在一些限制:

  • 不支持 C++
  • 它的速度比直接使用 doxygen 或用 C 编写基于 SAX 的 XML 到 HTML 转换要慢。
  • 它仅支持 CHM 格式。
  • 它仅在 Windows 平台下运行。
  • 仅支持 doxygen 的部分功能。

以及一些额外的要求:

  • HTML Help WorkShop
  • Microsoft .Net Framework 1.1

如果您有任何评论或建议,请发送给 Chelpanov(请从邮件地址中删除 NO_SPAM 部分)。

Bo Peng 编写了一个小的 XSLT 脚本,用于提取 SWIG/Python 接口的信息。