Doxygen 扩展
由于工具/脚本的数量不断增长,我将它们分成了几个类别。图表生成器
Nassi-Shneiderman 图
Eckard Klotz 启动了一个名为 Moritz 的项目。它将 C/C++ 源代码中的函数和方法的 Nassi-Shneiderman 图生成为 HTML 文件,这些文件可以包含在软件文档中或直接在网络浏览器中查看。
用于添加其他语言支持的过滤器
Perl
Bret Jordan 编写了 一个过滤器。Thomas Aeby 编写了 另一个过滤器。
Javascript
对于使用 JavaScript 的人来说,Jörg Schaible 编写了一个 Perl 脚本来让 doxygen 处理它可能是一个好消息。不幸的是,他在 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 为 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
Beco 博士为 Prolog 编写了一个过滤器。
CAPL
Bretislav Rychta 为 CAN 访问编程语言 CAPL 编写了一个过滤器。
STX
Jan Lochmatter 为 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
Eclox 是 Eclipse 的 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 为 Visual Studio 2005 创建了一个名为 DoxyComment 的插件。它旨在帮助您在 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 工具。他还创建了一个 增强版 DoxBar,其中包含他的编辑器和 一些 Visual Studio 宏,以简化 doxygen 源文件的准备。这些更改已由 Olivier Sannier 合并到 doxygen 的最新版本中。
FeinSoftware 发布了适用于 Microsoft Visual Studio .NET (Visual C++) 的开发工具 CommentMaker,它创建可自定义的函数头,开发者可以根据最具体的文档要求进行调整。默认情况下,它生成 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 写了一篇关于将 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 注释块并按回车键,可即时生成 Doxygen 文档。 这是一个 VS Code 扩展,通过启动 Doxygen 注释块并按回车键,可即时生成 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 接口的信息。