Comparison of documentation generators

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The following tables compare general and technical information for a number of documentation generators. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

General information[edit]

Basic general information about the generators: creator/company, license/price etc.

Name Creator First public release date Latest stable version Software license
ApiGen David Grudl, Jaroslav Hanslík, Ondřej Nešpor 2010 2.5.0 New BSD / GPL v2 / GPL v3
Appledoc Gentle Bytes 2009 2.0.3 [1] Modified BSD
Autoduck Eric Artzt 1993 2.10 [2] Freeware[3]
BI Documenter Mienasoft 2006 1.5 Proprietary
classdoc Jens Gulden 2001 1.0 GPL
Codenotes (format convention; not a generator) New Vintage Media 2012 1.0 Omnilicense
CppDoc Richard Feit 1998/11/23 2.3.1 Proprietary
DB Manual Blue Oceans Ltd 2006 1.3 Proprietary
DBDesc Logica2 2005 3.1 Proprietary
DBScribe Leadum Software 2007 1.1 Proprietary
Ddoc Walter Bright 2005/09/19 DMD 1.010 / GDC 0.14 Freeware / GPL
devscribe Geoff Cox 2008 2.00 [4] MSDN Code Gallery Licenses
Doc-O-Matic toolsfactory software inc 2000/11/-- 6.1 Proprietary
DOC++ Dragos Acostachioaie. 2002/12/22 3.4.10 GPL
Document! X Innovasys 1998 2014.1 Proprietary
Doxygen Dimitri van Heesch 1997/10/26 1.8.7 GPL
Epydoc Edward Loper 2002/01/-- 3.0 MIT License
ForgeDoc Balazs Tihanyi 2012/02/21 1.0 Proprietary
fpdoc Sebastian Guenther 2005? 2.4.0 GPL
GenHelp FraserSoft 1998/10/-- 5.6.7 Proprietary
Haddock Simon Marlow 2002 2.13.1 (2012) BSD
HeaderDoc Apple Inc. 2000/09/-- 8.9.14 APSL
Help Generator Agora Software BV 2004/08/-- 4.0 Proprietary
HyperSQL Randy Phillips, Itzchak Rehberg 2001 3.7.5 GPL
IDLdoc Michael Galloy 2002 3.3.1 BSD
Imagix 4D Imagix Corp. 1995 7.3 Proprietary
Javadoc Sun Microsystems 1995 1.6 GPL
jGrouseDoc Denis Riabtchik 2007/04/-- 1.5 BSD
JSDoc Michael Mathews 2001/07/-- 1.10.2 GPL
JsDoc Toolkit Michael Mathews 2007? 2.0.0 MIT License
KDOC Sirtaj Singh Kang 1999 3.0.1  ?
mkd Jean-Paul Louyot 1989 12.03 (2012) EUPL
Natural Docs Greg Valure 2003/05/26 1.52 GPL
NDoc Jason Diamond, Jean-Claude Manoli, Kral Ferch 2003/07/27 1.3.1 GPL
Pandoc John MacFarlane 2006 1.11.1 GPL
perldoc Larry Wall 1994 5.16.3 Artistic, GPL
phpDocumentor Joshua Eichorn 2000 1.4.4 LGPL
phpSimpleDoc Thierry Graff 2008 1.0 GPL
PLDoc Albert Tumanov 2001 0.9.1 LGPL
Project Analyzer Aivosto Oy 1997? 9.0 Proprietary
RDoc Dave Thomas 2001/12/14 in Ruby core Ruby License
ROBODoc Frans Slothouber 1995/01/19 4.99.36 GPL
Sandcastle Microsoft 2008/05/-- 2014.5.31.0 Ms-PL
SoDa IBM 2008/07/-- 7.0 Proprietary
Sphinx Georg Brandl 2008/03/21 1.2.2 BSD
SQL Documentor InfoCaptor 2005/11/-- 3.4 Proprietary
ThimbleDoc Thimbleopensource.com 2008 0.2beta GPL
TwinText PTLogica 2002 2008.0.406 Proprietary
Universal Report Universal Software 2001–2010 9.0 Free Education / Proprietary
VBDOX Mihayl Stamenov 2001/10/26 2.1.0 GPL
VBSdoc Ansgar Wiechers 2010/11/29 2.3 [5] GPL
VSdocman Helixoft 2000/10/-- 7.0 Proprietary
YARD Loren Segal 2007/02/24 0.7.3 MIT License
WEB/CWEB Donald E. Knuth
Name Creator First public release date Latest stable version Software license

Operating system support[edit]

The operating systems the generators can run on.

Windows Mac OS X Linux BSD Unix
ApiGen Yes Yes Yes Yes Yes
Appledoc No Yes No No No
Autoduck Yes No No No No
BI Documenter Yes No No No No
classdoc Yes Yes Yes Yes Yes
CppDoc Yes No Yes No No
DB Manual Yes No No No No
DBDesc Yes No No No No
DBScribe Yes No No No No
Ddoc Yes Yes3 Yes Yes3 No
devscribe Yes No No No No
Doc-O-Matic Yes No No No No
DOC++ Yes Yes? Yes Yes Yes
Document! X Yes No No No No
Doxygen Yes Yes Yes Yes Yes
Epydoc Yes Yes Yes Yes Yes
ForgeDoc Yes No No No No
fpdoc Yes Yes Yes Yes Yes
GenHelp Yes No No No No
Haddock Yes Yes Yes Yes Yes
HeaderDoc No Yes Yes Yes Yes
Help Generator Yes No No No No
HyperSQL Yes Yes Yes Yes Yes
IDLdoc Yes Yes Yes No Yes
Imagix 4D Yes No Yes No Yes
Javadoc Yes Yes Yes Yes Yes
jGrouseDoc Yes Yes Yes Yes Yes
JSDoc Yes Yes Yes Yes Yes
JsDoc Toolkit Yes Yes Yes Yes Yes
KDOC Partial Yes Yes Yes Yes
mkd Yes No? Yes Yes Yes
Natural Docs Yes Yes Yes Yes Yes
NDoc Yes No No No No
perldoc Yes Yes Yes Yes Yes
phpDocumentor Yes Yes Yes Yes Yes
phpSimpleDoc Yes Yes Yes Yes Yes
Project Analyzer Yes No No No No
RDoc Yes Yes Yes Yes Yes
ROBODoc Yes Yes Yes Yes Yes
Sandcastle Yes No No No No
Sphinx Yes Yes Yes Yes Yes
ThimbleDoc Yes Yes Yes Yes Yes
TwinText Yes No No No No
Universal Report Yes No No No No
VBDOX Yes No No No No
VBSdoc Yes No No No No
VSdocman Yes No No No No
YARD Yes Yes Yes Yes Yes
Windows Mac OS X Linux BSD Unix

Note (4): GNU D Compiler.

Language support[edit]

The programming languages the generators recognize.

C/C++ Java C# VB / VBScript Delphi / Pascal Ada D IDL .NET1 Access Fortran
ApiGen No No No No No No No No No No No
Autoduck Yes No No Yes No No No No No No No
BI Documenter No No No No No No No No Yes No No
classdoc No Yes No No No No No No No No No
CppDoc Yes No No No No No No No No No No
DB Manual No No No No No No No No Yes No No
DBDesc No No No No No No No No Yes No No
DBScribe No No No No No No No No No No No
Ddoc No No No No No No Yes No No No No
devscribe No No Yes No No No No No No No No
Doc-O-Matic Yes Yes Yes Yes Yes No No Yes Yes No No
DOC++ Yes Yes No No No No No Yes No No No
Document! X C++/CLI only Yes Yes Yes No No No Yes Yes Yes No
Doxygen Yes Yes Yes with Plugin2 with Plugin2 No Partial Yes No No Yes
Epydoc No No No No No No No No No No No
ForgeDoc No No No No No No No No Yes No No
fpdoc No No No No Yes No No No No No No
GenHelp Yes No Yes No Yes No No No Yes No No
Haddock No No No No No No No No No No No
HeaderDoc Yes Yes No No Yes No No Yes No No No
Help Generator Yes No Yes Yes No No No No Yes Yes No
HyperSQL No No No No No No No No No No No
Imagix 4D Yes Yes No No No No No No No No No
Javadoc No Yes No No No No No No No No No
jGrouseDoc No No No No No No No No No No No
JSDoc No No No No No No No No No No No
JsDoc Toolkit No No No No No No No No No No No
KDOC Yes No No No No No No Yes No No No
Natural Docs Partial Partial Yes Partial Partial Partial No No No No Partial
NDoc No No Yes No No No No No Yes No No
phpDocumentor No No No No No No No No No No No
phpSimpleDoc No No No No No No No No No No No
Project Analyzer No No No Yes No No No No Yes No No
RDoc Partial No No No No No No No No No No
ROBODoc Yes Yes No Yes Yes Yes Yes Yes No No Yes
Sphinx Yes No No No No with Plugin No No No No No
ThimbleDoc No No No No No No No No No
TwinText Yes Yes Yes Yes Yes Yes Partial Yes Yes No Yes
Universal Report Yes Yes Yes Yes Yes Yes No No Yes Yes Yes
VBDOX No No No Yes No No No No No No No
VBSdoc No No No Yes No No No No No No No
VSdocman No No Yes Yes No No No No Yes No No
YARD No No No No No No No No No No No
C/C++ Java C# VB / VBScript Delphi / Pascal Ada D IDL .NET1 Access Fortran
PHP Perl Python Ruby JavaScript ActionScript PL/SQL Tcl Haskell
ApiGen Yes No No No No No No No No
Autoduck No No No No No No No No No
BI Documenter No No No No No No No No No
classdoc No No No No No No No No No
CppDoc No No No No No No No No No
DB Manual No No No No No No No No No
DBDesc No No No No No No No No No
DBScribe No No No No No No Yes No No
Ddoc No No No No No No No No No
devscribe No No No No No No No No No
Doc-O-Matic Yes No No No Yes No No No No
DOC++ No No No No No No No No No
Document! X No No No No No No Yes No No
Doxygen Yes No2 Yes No No No No Yes No
Epydoc No No Yes No No No No No No
ForgeDoc No No No No No No No No No
fpdoc No No No No No No No No No
GenHelp No No No No No No No No No
Haddock No No No No No No No No Yes
HeaderDoc Yes Yes Yes Yes Yes No No Yes No
Help Generator No No No No No No No No No
HyperSQL No No No No No No Yes No No
Imagix 4D No No No No No No No No No
Javadoc No No No No No No No No No
jGrouseDoc No No No No Yes No No No No
JSDoc No No No No Yes No No No No
JsDoc Toolkit No No No No Yes No No No No
KDOC No No No No No No No No No
Natural Docs Partial Yes Partial Partial Partial Yes Partial Partial No
NDoc No No No No No No No No No
perldoc No Yes No No No No No No No
phpDocumentor Yes No No No No No No No No
phpSimpleDoc Yes No No No No No No No No
Project Analyzer No No No No No No No No No
RDoc No No No Yes No No No No No
ROBODoc Yes Yes No Yes Yes Partial Yes Yes No
Sphinx with Plugin No Yes with Plugin Yes No No No No
ThimbleDoc Yes No No No No No No No No
TwinText Yes Yes Yes Yes Yes Yes Yes Yes No
Universal Report Yes Yes Yes No Yes Yes Yes No No
VBDOX No No No No No No No No No
VBSdoc No No No No No No No No No
VSdocman No No No No No No No No No
YARD No No No Yes No No No No No
PHP Perl Python Ruby JavaScript ActionScript PL/SQL Tcl Haskell
AppleScript MIG Bourne shell C shell Any With Comments3
ApiGen No No No No No
Autoduck No No No No No
BI Documenter No No No No No
classdoc No No No No No
CppDoc No No No No No
DB Manual No No No No No
DBDesc No No No No No
DBScribe No No No No No
Ddoc No No No No No
devscribe No No No No No
Doc-O-Matic No No No No Yes
DOC++ No No No No No
Document! X No No No No No
Doxygen No No No No No
Epydoc No No No No No
ForgeDoc No No No No No
fpdoc No No No No No
GenHelp No No No No No
Haddock No No No No No
HeaderDoc Yes Yes Yes Yes No
Help Generator No No No No No
HyperSQL No No No No No
Imagix 4D No No No No No
Javadoc No No No No No
jGrouseDoc No No No No No
JSDoc No No No No No
JsDoc Toolkit No No No No No
KDOC No No No No No
Natural Docs No No No No Yes
NDoc No No No No No
phpDocumentor No No No No No
phpSimpleDoc No No No No No
Project Analyzer No No No No No
RDoc No No No No No
ROBODoc No No No No Yes
Sphinx No No No No No
ThimbleDoc No No No No No
TwinText No No No No Yes
Universal Report No No No No Yes
VBDOX No No No No No
VBSdoc No No No No No
VSdocman No No No No No
YARD No No No No No
AppleScript MIG Bourne shell C shell Any With Comments3

Note (1): .NET is not a programming language, but is listed here for convenience.

Note (2): Though not supported as a native input language, Doxygen can be extended through the use of filters. Examples include Visual Basic, VB.NET, Perl, and Pascal:

Note (3): Generators listed here can be extended to support any language that has comments.

Input formats[edit]

The input formats the generators can read.

Text Binary
ApiGen Yes No
Autoduck Yes No
BI Documenter No Yes
DB Manual No Yes
classdoc No Yes
CppDoc Yes No
DBDesc No Yes
DBScribe No Yes
Ddoc Yes No
devscribe No Yes
Doc-O-Matic Yes No
DOC++ Yes No (except Java class files)
Document! X Yes Yes
Doxygen Yes No
Epydoc Yes No
ForgeDoc No Yes
fpdoc Yes No
GenHelp Yes No
Haddock Yes No
HeaderDoc Yes No
Help Generator Yes Yes
HyperSQL Yes No
IDLdoc Yes No (except for .sav files)
Imagix 4D Yes No
Javadoc Yes No
jGrouseDoc Yes No
JSDoc Yes No
JsDoc Toolkit Yes No
KDOC Yes No
mkd Yes No
Natural Docs Yes No
NDoc No Yes
perldoc Yes No
phpDocumentor Yes No
phpSimpleDoc Yes No
Project Analyzer Yes Yes
RDoc Yes No
ROBODoc Yes No
Sphinx Yes No
TwinText Yes Yes
Universal Report Yes No
VBDOX Yes No
VBSdoc Yes No
VSdocman Yes No
YARD Yes No
Text Binary

Output formats[edit]

The output formats the generators can write.

HTML CHM RTF PDF LaTeX PostScript man pages DocBook XML ePub
ApiGen Yes No No No No No No No No
Autoduck Yes No Yes No No No No No No
BI Documenter Yes Yes No No No No No No No
classdoc Yes No No No No No No No No
CppDoc Yes No No No No No No No No
DB Manual Yes Yes No No No No No No No
DBDesc Yes No Yes Yes No No No No Yes
DBScribe Yes Yes Yes No No No No No No
Ddoc Yes Yes4 No Yes4 Yes4 Yes4 Yes4 No Yes4
devscribe Yes No No No No No No No Yes
Doc-O-Matic Yes Yes Yes Yes No No No No Yes
DOC++ Yes No No Yes7 Yes Yes7 No No No
Document! X Yes Yes No No No No No No No
Doxygen Yes Yes Yes Yes Yes Yes Yes Yes Yes
Epydoc Yes No No Yes Indirectly5 Indirectly5 No No No
ForgeDoc Yes Yes No No No No No No No
fpdoc Yes Yes Yes No Yes No Yes No Yes
GenHelp Yes Yes Yes No No No No No No
Haddock Yes Yes No No No No No Partial No
HeaderDoc Yes No No No No No Yes No Yes
Help Generator Yes Yes Yes No No No No No Yes
HyperSQL Yes8 No No No No No No No No8
IDLdoc Yes No No No Yes No No Yes Yes
Imagix 4D Yes No Yes No No No No No No
Javadoc Yes Indirectly6 Indirectly6 Indirectly6 Indirectly6 Indirectly6 Indirectly6 Indirectly6 Indirectly6
jGrouseDoc Yes No No No No No No No Yes
JSDoc Yes No No No No No No No No
JsDoc Toolkit Yes No No No No No No No Yes+JSON
KDOC Yes No No No No No No No No
Natural Docs Yes No No No No No No No No
NDoc Yes Yes No No No No No No No
phpDocumentor Yes Yes No Yes No No No Yes Yes
phpSimpleDoc Yes No No No No No No No No
Project Analyzer Yes Yes Yes Yes No No No No No
RDoc Yes Yes9 No No No No Indirectly10 No Yes9
ROBODoc Yes Indirectly Yes Indirectly5 Yes Indirectly5 Yes Yes No
Sandcastle Yes Yes No No No No No No No
Sphinx Yes Yes No Indirectly Yes Indirectly Yes No Yes
ThimbleDoc Yes No No No No No No No No
TwinText Yes Yes No No No No No No No
Universal Report Yes No Yes Yes Yes Yes No No No
VBDOX Yes Yes Yes No No No No No No
VBSdoc Yes Indirectly11 No No No No No No No
VSdocman Yes Yes Yes No No No No No Yes
YARD Yes No No No No No No No No
HTML CHM RTF PDF LaTeX PostScript man pages DocBook XML

Note (4): Ddoc has a macro system which can be customized to output any desired format. CHM, groff (manpages), XHTML, XML, and LaTeX (so PostScript and PDF) were tested. They are not currently included in the standard distribution. Standard HTML output also is generated using macros and can be redefined.

Note (5): Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

Note (6): Via Doclets from Third Parties.

Note (7): DOC++ outputs LaTeX and includes templates to enable conversion to PDF or PostScript with the appropriate latex tools. Required tools however are not included with DOC++.

Note (8): HyperSQL can output UnitTests (which can be embedded with the JavaDoc like description) as XML

Note (9): RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.

Note (10): RDoc generates documentation for RI, which is Ruby's version of the Unix man pages.

Note (11): Requires Microsoft HTML Help Workshop [6].

Other features[edit]

possibility of extended customization generated diagrams highlighting and linking of generated doc parameter types extracted
ApiGen Customizable Latte-based templates cross reference to generated documentation, and to php.net function reference Yes
Autoduck
BI Documenter
classdoc
CppDoc
DB Manual
DBDesc full customization for all output formats using XSL templates and a built-in designer All SQL code syntax highlighted Yes
DBScribe
Ddoc with macros
devscribe Via code, XSLT, CSS and web.config Looks and reads just like code with syntax coloring in Visual Studio style. Supports linking from all member and method parameter types.
Doc-O-Matic full customization for all output formats, template for MSDN and other lookalike output, custom XMLDoc/JavaDoc tags local, module and global graphical class hierarchies, local text class hierarchies fully cross-linked project-wide, automatic inter-project links, automatic links into framework documentation like MSDN, Borland/CodeGear Help types extracted and linked
DOC++
Document! X customizable HTML based templates, custom comment tags linked graphical object relationship diagrams internal links and links to .NET framework documentation types extracted and linked
Doxygen with XSLT caller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams
Epydoc
ForgeDoc internal links and links to .NET framework documentation types extracted and linked
Haddock Yes Yes
HeaderDoc Custom headers, footers, code coloring, and other CSS styles in individual pages. Project-wide TOC is generated from a user-defined template. Configurable syntax highlighting/coloring with automatic linking to symbols in declaration, ability to manually link to symbols in discussion, etc. Provides warnings if tagged parameters do not match code, parsed parameters included in XML output and Doxygen-style tagfile (-D flag in 8.7). Partial C preprocessor support with -p flag. Support for #if/#ifdef control over documentation inclusion using the -D and -U command-line flags.
Help Generator
HyperSQL custom CSS, options via configuration file, optional central to do/bug lists (items extracted from javadoc comments) Pie Charts for code statistics, object relationship diagrams (dependency graphs) fully cross-linked project-wide for views, packages, package functions, and package procedures; optional inclusion of source code with syntax highlighting; links to javadoc generated references as well as directly to the code lines; code statistics Provides warnings if tagged parameters count does not match code
IDLdoc customizable through user-defined templates and stylesheets Yes Yes
Imagix 4D customizable through style sheets and CSS linked hierarchy and dependency graphs for function calls, variable sets and reads, class inheritance and interface, and file includes and interface, intra-function flow charts fully cross-linked project-wide, including all hierarchy and dependency graphs, metrics tables, source code snippets, and source files full semantic analysis of source code, including parameter types, conditional compilation directives, macro expansions
Javadoc
jGrouseDoc With XSLT cross reference to generated documentation Yes
JSDoc Yes
JsDoc Toolkit Yes
KDOC
mkd Customisable for all type of comments 'as-is' in comments all general documentation; references, manual, organigrams, ... Including the binary codes included in the comments. all coded comments
Natural Docs
NDoc
perldoc Extend the generator classes through Perl programming. Only linking
phpDocumentor Smarty-based templates class inheritance diagrams cross reference to generated documentation, and to php.net function reference Yes
phpSimpleDoc class / interface inheritance Yes Yes
Project Analyzer custom CSS File dependencies, inheritance, control flow, data flow, variable access, class instantiation, data

declaration, Form.Show order, procedure calls, project dependencies, file belongs to project, class cohesion.

Cross-referenced source code types extracted and linked, source code level linkage
RDoc
ROBODoc
Sphinx 10 themes; Jinja2 templating; Python plugins several in sphinx-contrib, e.g. using aafigure, actdiag, Google Chart, or gnuplot Table of Contents, Index; cross referencing; syntax highlighting with Pygments custom objects (such as functions and classes)
TwinText 20 CSS styles. Well documented CSS facilitates customization. ASCII diagramming and picture importing. Table of Contents, Index, and per-page cross referencing. Method/Function parameters extracted and linked.
Universal Report customizable HTML based templates, custom comment tags linked graphical object relationship diagrams internal links between routines and objects data types extracted and linked
VBDOX
VBSdoc
VSdocman full customization for all output formats, templates for MSDN-like output, custom XML comment tags linked graphical class diagrams, class inheritance tree internal links and links to .NET framework documentation types extracted and linked
YARD customizable Ruby templates class diagrams with extra tool internal classes/modules cross-referenced and Ruby source highlighted
possibility of extended customization generated diagrams highlighting and linking of generated doc parameter types extracted

Possible Omissions[edit]

GhostDoc

See also[edit]