Doxygen latest release v1.6.3 - last page update 22 Feb 2010

Helper tools & scripts

Since the number of tools/scripts is ever growing, I've divided them into a number of categories:

Doxygen extensions

Eckard Klotz has started a projected called Moritz. It generates Nassi-Shneiderman diagramms of functions and methods in C/C++ sources as HTML files, which could be included in software documentation or simply viewed in a web browser.

Filters to add support for other languages

Marc Adkins has written a filter to allow Perl with POD comments to be processed by doxygen. There is also a revised version by Thomas Aeby.

For those working with JavaScript it may be good to know that Jörg Schaible has written a perl script to let doxygen deal with it. Here are the pointers:

Darren Bowles has started a project Pas2dox which converts Object Pascal into a C++ style syntax, that Doxygen can then happily parse. The project's goal is to allow doxygen to be used for Delphi/Kylix projects.

Matthias Baas has writen a filter for converting Python code into something doxygen can handle. Note Doxygen now also has native support for Python.

Mathias Henze wrote an awk script that converts Visual Basic code into somthing doxygen understands. The package includes a small batch-wrapper. To use it, one has to put following line for the config-option "INPUT_FILTER":

C:/path/to/filer/tools/vbfilter.bat C:\path\to\filter\tools
Some Unix tools like sh.exe, gawk.exe and tee.exe are required to be available under the supplied path. They can be downloaded here.

An alternative filter for Visual Basic is provided by Basti Grembowietz. It requires python and comes with the following usage instructions:

The VB-Files have to be prepared the following way:

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

For shorter usage also this is allowed:

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

For comments adressing to a class / module, '! must be used.

Ian Martins has written a filter that converts MatLab scripts into something doxygen can understand. An example is included.

If you are using C#, you can use this filter donated by Jeff Kotula as a basis to convert the C# XML commenting structures into doxygen-friendly syntax. Note Doxygen now also has native support for parsing XML comments.

Darren Bowles has created Proc2Dox, which is a pre-processor addon for Doxygen to add support for Pro*C code.

Greg has written a TCL filter called Tcl-Dox that allows Doxygen to be used on TCL code.

Bogdan Drozdowski has written a filter to convert assembly into C like code which doxygen can then parse.

Increase ease of use

Eclox is a Doxygen frontend plugin for Eclipse.

If you use Visual Studio .NET have a look at Steve King's set of addins. Greg Engelstad has written a perl script to parse a Visual Studio .NET solution file (.sln) and run Doxygen for each separate project contained therein.

Jason Williams has written an Addin for Visual Studio 2005 & 2008 which is able to auto-generate doxygen (or DocXml) style comments from most code elements (file, namespace, class, struct, enum, function, etc). It parses C, C++, C# and Java code to produce fully formed doxygen comments, and can update those comments if the code element is changed, and word-wrap the descriptions to keep them tidy. It uses a set of user-editable rules to provide automatic descriptions of elements, parameters and return codes, minimising the effort involved in generating doc comments.

An addin for Visual Studio 2005 called DoxyComment was created by Troels Gram. It is designed to assist you in inserting context sensitive comment blocks into C/C++ source files. DoxyComment also comes with an xslt template that lets you generate documentation like the MSDN library.

If you are using Microsoft's Developer Studio 6.0, an add-in called DoxBar is available that can be used to run doxygen from within Developer Studio and to search through the generated HTML help files.
Note: I do not have enough time to maintain DoxBar myself anymore, so I moved DoxBar to sourceforge. Olivier Sannier has introduced a number of improvements to DoxBar. If you too want to join the development team, please register as a user at sourceforge and mail me your user name.

Bernhard Nowara has written a profile editor, which is a doxywizard-like tool for Windows. He also created an enhanced version of DoxBar that includes his editor and some macros for Visual Studio to ease the preparation of the source code for Doxygen. These changed have been merged into more recent version of doxygen by Olivier Sannier.

FeinSoftware has released a development tool for Microsoft Visual Studio .NET (Visual C++) called CommentMaker, which creates customizable function header that developers can adjust to most specific documentation requirements. By default it generates doxygen compatible comments.

Glenn Maxey has released The TechPubs Tools (TPT) which wraps around any number of mini-HTML systems and creates a comprehensive HTML system complete with table of contents and an auto-generated index/concordance. TPT consists of Perl programs, UNIX shell scripts, and master template files (HTML).

Those having performance problems with the TREEVIEW option, could try this script written by Glenn Maxey along with this (commercial) Java applet.

Pascal Binggeli is working on an integrated development environment for Doxygen called DoxygenStudio. It will be for Windows only. You can already try out a preview version.

For those using Windows and wanting to integrate the compressed HTML generated by doxygen into MSDN look at this MSDN integrator utility. Richard Y. Kim has written a perl module to use/configure doxygen more easily from perl scripts.

If you're into Ant have a look at Karthik A Kumar's or Kyle Burton's Ant task object's for doxygen.

The VXL project produced some code to manage documentation production for multiple doxygen runs over 10s of libraries, including dealing with all dependencies, multiple CVS repositories, maintaining directory structure, and incorporating texinfo overview documentation.

Oren Ben-Kiki shows how to integrate doxygen with Automake and Autoconf.

Wilfred Nilsen has written a tool (for windows) to combine multiple HTML files and embed them in a single executable. This could be used in combination with the doxygen's HTML output.

If you are using Trac to track your issue then have a look at this plugin to embed doxygen documentation.

Editor addons

If VIM is your favourite editor (it is mine!), Michael Geddes wrote a syntax highlighing script on top of C/C++/IDL/Java. Ralf Schandl also has a some macros and syntax highlighting files for you. Emilio Riva sent yet an alternative vim highlighting file.

If you are using the Emacs editor, take a look at Tom Emerson's page for a lisp script to simplify writing doxygen comments.

Ryan Sammartino maintains a project called Doxymacs at sourceforge, which produced an elisp package to make using Doxygen from within {X}Emacs easier.

If UltraEdit is your editor of choice, take a look at Dominik Stadler's script for information on how to enable syntax highlighting for doxygen comment blocks.

For SemWare's TSE Pro/32 editor Howard Kapustein has provided syntax definition files for doxygen style comment blocks.

Brian Ray provides Scripting support for doxygen when used in combination with Apple's Xcode development environment.

Raja Kajiev write a tool called DoxyGrouper which can help to include items into groups on directory structure basis.

If you use Delphi or C++ Builder in combination with GExperts you can use this XML macro written by Miguel A. Richard to serve as a template for comments in your code.

Migration from other doc tools

If you want to convert Cocoon (or C++) style comments into Qt-style comments on the fly you might want to try the filterComments.pl script written by Paul S. Strauss. Use it in combination with doxygen's INPUT_FILTER configuration option.

Martin Slater wrote a python script duck2dox that can be used to convert AutoDuck style comments to doxygen comments. Steven Blackburn has written an alternative filter written in C++.

John Moren provided a perl script slash2spanning.pl that can be used as an input filter to convert a group of C++ comments (//) into one C-style comment block (/** ... */). Note that from version 1.2.16 onward this functionality has been integrated into doxygen.

Jon Foster has written a filter to convert gtk-doc comments to Doxygen.

XML/XSLT examples

Matt Ball has written a script called doxyclean to convert doxygen's output into something that closer resembles Apple's own documentation.

Thomas Hansen and Kariem Ali have written Doxygen.NET which provides .NET object wrappers for the XML output generated by Doxygen.

Narech Koumar has written a tool called Dox which reads the XML output produced by doxygen and turns that into formatted HTML whose style resembles that of Javadoc's.

If you want to see how you can use XSLT to transform doxygen's XML output into something else (HTML/CHM in this case), have a look at Chelpanov's example. It has some limitations though:

  • C++ is not supported
  • It is slower than using Doxygen directly or writing a SAX based transformation in C from XML to HTML.
  • It support the CHM format only.
  • It works on Windows platfrom only.
  • Only some of the features of doxygen are supported.
and some additional requirements:
  • HTML Help WorkShop
  • Microsoft .Net Framework 1.1
If you have comments or suggestions please send them to Chelpanov (remove the the NO_SPAM part from the mail address).

Bo Peng wrote a small XSLT script to extract information for SWIG/Python interfaces.