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. Note that many of the generators listed are no longer maintained.
General information
editBasic general information about the generators, including: creator or company, license, and price.
Name | Creator | Input format | Languages (alphabet order) | OS support | First public release date | Latest stable version | Software license |
---|---|---|---|---|---|---|---|
Ddoc | Walter Bright | Text | D | Windows, OS X, Linux and BSD | 2005/09/19 | DMD 2.078.3 | Boost (opensource) |
Document! X | Innovasys | Text, Binary | C++/CLI only, C#, IDL, Java, VB, VBScript, PL/SQL | Windows only | 1998 | 2014.1 | Proprietary |
Doxygen | Dimitri van Heesch | Text | C/C++, C#, D, IDL, Fortran, Java, PHP, Python | Any | 1997/10/26 | 1.9.1 | GPL |
Epydoc | Edward Loper | Text | Python | Any | 2002/01/— | 3.0 (2008) | MIT |
fpdoc (Free Pascal Documentation Generator) | Sebastian Guenther and Free Pascal Core | Text | (Object)Pascal/Delphi | FPC tier 1 targets | 2005 | 3.2.2 | GPL reusable parts are GPL with static linking exception |
Haddock | Simon Marlow | Text | Haskell | Any | 2002 | 2.15.0 (2014) | BSD |
HeaderDoc | Apple Inc. | Text | AppleScript, Bash, Csh, C, C++, Delphi, IDL, Java, JavaScript, MIG, Pascal, Perl, PHP, Python, Ruby, Tcl | Any Unix-like | 2000/09/— | 8.9.28 (2013) | APSL |
Imagix 4D | Imagix Corp. | Text | C, C++, Java | Windows, Linux, Unix | 1995 | 7.3 | Proprietary |
Javadoc | Sun Microsystems | Text | Java | Any | 1995 | 1.6 | GPL |
JSDoc | Michael Mathews | Text | JavaScript | Any | 2001/07/— | 1.10.2 | GPL |
JsDoc Toolkit | Michael Mathews | Text | JavaScript | Any | 2007? | 2.0.0 | MIT |
mkd | Jean-Paul Louyot | Text | Any with comments | Unix, Linux, Windows | 1989 | 2015 | EUPL GPL |
MkDocs | Tom Christie | Text | Python | Any | 2014/10/29 | 1.5.3 | BSD |
Natural Docs | Greg Valure | Text | Any with comments | Any | 2003/05/26 | 2.0.2 | GPL |
NDoc | Jason Diamond, Jean-Claude Manoli, Kral Ferch | Binary | C# | Windows only | 2003/07/27 | 1.3.1 | GPL |
pdoc | Andrew Gallant | Text | Python | Any | 2013 | 1.0.1 (2021) | Unlicense (PD) |
perldoc | Larry Wall | Text | Perl | Any | 1994 | 5.16.3 | Artistic, GPL |
phpDocumentor | Joshua Eichorn | Text | PHP | Any | 2000 | 3.0.0 | LGPL for 1.x, MIT for 2+ |
pydoc | Ka-Ping Yee[1] | Text | Python | Any | 2000 | in Python core | Python |
RDoc | Dave Thomas | Text | C, C++, Ruby | Any | 2001/12/14 | in Ruby core | Ruby |
ROBODoc | Frans Slothouber | Text | Any with comments | Any | 1995/01/19 | 4.99.36 (2015) | GPL |
Sandcastle | Microsoft | Text | .NET | Windows only | 2008/05/— | 2.4.10520 (2016) | Ms-PL |
Sphinx | Georg Brandl | Text | Ada, C, C++, Fortran, JavaScript, PHP, Python, Ruby | Any | 2008/03/21 | 3.5.4 | BSD |
Visual Expert | Novalys | Text, Binary | C#, PL/SQL, Transact-SQL, PowerBuilder | Windows only | 1995 | 2017 | Proprietary |
VSdocman | Helixoft | Text | VB, VBScript, C# | Windows only | 2003 Oct 2 | 9.0 | Proprietary |
YARD | Loren Segal | Text | Ruby | Any | 2007/02/24 | 0.7.3 | MIT |
Name | Creator | Input format | Languages (alphabet order) | OS support | First public release date | Latest stable version | Software license |
Supported formats
editThe output formats the generators can write.
HTML | CHM | RTF | LaTeX | PostScript | man pages | DocBook | XML | EPUB | ||
---|---|---|---|---|---|---|---|---|---|---|
Ddoc | Yes | Yes[a] | No | Yes[a] | Yes[a] | Yes[a] | Yes[a] | No | Yes[a] | |
Document! X | Yes | Yes | No | No | No | No | No | No | No | |
Doxygen | Yes | Yes | Yes | Indirectly[b] | Yes | Indirectly[b] | Yes | Yes | Yes | No |
Epydoc | Yes | No | No | Yes | Indirectly[c] | Indirectly[c] | No | No | No | |
fpdoc | Yes | Native | Yes | Indirectly[c] | Indirectly[c] | Yes | No | No | No | No |
Haddock | Yes | Yes | No | No | No | No | No | Partial | No | |
HeaderDoc | Yes | No | No | No | No | No | Yes | No | Yes | |
Imagix 4D | Yes | No | Yes | No | No | No | No | No | No | |
Javadoc | Yes | Indirectly[d] | Indirectly[d] | Indirectly[d] | Indirectly[d] | Indirectly[d] | Indirectly[d] | Indirectly[d] | Indirectly[d] | |
JSDoc | Yes | No | No | No | No | No | No | No | No | |
JsDoc Toolkit | Yes | No | No | No | No | No | No | No | Yes+JSON | |
MkDocs | Yes | No | 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 | |
pdoc | Yes | No | No | No | No | No | No | No | No | No |
phpDocumentor | Yes | Yes (1.x only) | No | Yes (1.x only) | No | No | No | Yes (1.x only) | Yes (1.x only) | |
pydoc | Yes | No | No | No | No | No | No | No | No | No |
RDoc | Yes | Yes[e] | No | No | No | No | Indirectly[f] | No | Yes[e] | |
ROBODoc | Yes | Indirectly | Yes | Indirectly[c] | Yes | Indirectly[c] | Yes | Yes | No | |
Sandcastle | Yes | Yes | No | No | No | No | No | No | No | |
Sphinx | Yes | Yes | Indirectly[g] | Yes | Yes | Yes | ||||
Visual Expert | Yes | No | No | No | No | No | No | No | No | |
VSdocman | Yes | Yes | No | Yes | No | No | No | No | Yes | |
YARD | Yes | No | No | No | No | No | No | No | No | |
HTML | CHM | RTF | LaTeX | PostScript | man pages | DocBook | XML | ePub |
Other features
editpossibility of extended customization | generated diagrams | highlighting and linking of generated doc | parameter types extracted | |
---|---|---|---|---|
Ddoc | with macros | |||
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 | ||||
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. | |
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 | ||||
JSDoc | Yes | |||
JsDoc Toolkit | Yes | |||
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 |
MkDocs | ||||
Natural Docs | ||||
NDoc | ||||
perldoc | Extend the generator classes through Perl programming. | Only linking | ||
pdoc | overridable Jinja2 templates | source code syntax highlighting, automatic cross-linking to symbol declarations | Yes | |
phpDocumentor | Smarty-based templates (1.x), Twig-based templates (2+) | class inheritance diagrams | cross reference to generated documentation, and to php.net function reference | Yes |
pydoc | ||||
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) |
Visual Expert | documentation content and styles customizable | Class inheritance, call trees, dependencies (impact analysis) | internal links between classes, methods, variables, tables, columns... | all types extracted |
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 |
See also
editNotes
edit- ^ a b c d e f 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.
- ^ a b Generated from the LaTeX output only.[2]
- ^ a b c d e f Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.
- ^ a b c d e f g h Via Doclets from Third Parties.
- ^ a b RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.
- ^ RDoc generates documentation for RI, which is Ruby's version of the Unix man pages.
- ^ Generated from the LaTeX output only
References
edit- ^ "PEP 256 -- Docstring Processing System Framework | Python.org".
- ^ "Doxygen Manual: Output Formats". Archived from the original on 2013-01-06.