现已发布! 发布日期:2025 年 5 月 24 日

Doxygen 扩展

由于工具/脚本数量不断增加,我已将它们分为几个类别

图形生成器

Nassi-Shneiderman 图

Eckard Klotz 启动了一个名为 Moritz 的项目。它可以将 C/C++ 源代码中的函数和方法的 Nassi-Shneiderman 图生成为 HTML 文件,这些文件可以包含在软件文档中或直接在网页浏览器中查看。


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

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

需要在提供的路径下安装一些 Unix 工具,如 sh.exe、gawk.exe 和 tee.exe。它们可以在此下载。

Basti Grembowietz 提供了一个 Visual Basic替代过滤器。它需要 python 并附带以下使用说明

VB 文件必须按以下方式准备

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

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

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

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

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

对于较新的 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 代码的支持。

Assembly

Bogdan Drozdowski 和 Rick Foos 编写了一个过滤器,可以将 assembly 转换为类似 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

Beco 博士为 Prolog 编写了一个过滤器

CAPL

Bretislav Rychta 编写了 CAPL 过滤器,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 生成的文档。

Troels Gram 创建了一个名为 DoxyCommentVisual Studio 2005 插件。它旨在帮助您将与上下文相关的注释块插入 C/C++ 源文件。DoxyComment 还带有一个 xslt 模板,可让您生成类似 MSDN 库的文档。

如果您使用 Microsoft Developer Studio 6.0,可以使用一个名为 DoxBar 的插件,该插件可以在 Developer Studio 中运行 Doxygen 并搜索生成的 HTML 帮助文件。
注意:我已没有足够的时间维护 DoxBar,因此我将 DoxBar 移至 sourceforge。Olivier Sannier 对 DoxBar 进行了多项改进。如果您也想加入开发团队,请在 sourceforge 上注册为用户,并将您的用户名发送给我

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

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

TechPubs 工具

Glenn Maxey 发布了 The TechPubs Tools (TPT),它可以封装任意数量的迷你 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 为 Doxygen 编写的 Ant 任务对象。

Automake/autoconf 集成

Oren Ben-Kiki 演示了如何将 Doxygen 与 Automake 和 Autoconf 集成

嵌入 HTML

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

Trac 插件

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

CMake 集成

Stefan Majewsky 写了一篇关于在基于 CMake 的项目中集成 doxygen 的博客文章。

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 文档。

VIM

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

Emacs

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

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 接口的信息。