Comparison of documentation generators: Difference between revisions
Appearance
Content deleted Content added
Added Visual Expert in top table |
updated software license |
||
Line 152: | Line 152: | ||
|- |
|- |
||
! style="text-align:left;" bgcolor="#ececec" | [[Visual Expert]] |
! style="text-align:left;" bgcolor="#ececec" | [[Visual Expert]] |
||
|Novalys |
| Novalys |
||
|1995 |
| 1995 |
||
| 2017 |
|||
| {{Nonfree|Proprietary}} |
|||
|- |
|- |
||
! style="text-align:left;" bgcolor="#ececec" | [[YARD (software)|YARD]] |
! style="text-align:left;" bgcolor="#ececec" | [[YARD (software)|YARD]] |
Revision as of 09:49, 24 August 2017
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
Basic general information about the generators, including: creator or company, license, and price.
Name | Creator | First public release date | Latest stable version | Software license |
---|---|---|---|---|
Ddoc | Walter Bright | 2005/09/19 | DMD 1.010, GDC 0.14 | Freeware, GPL |
Document! X | Innovasys | 1998 | 2014.1 | Proprietary |
Doxygen | Dimitri van Heesch | 1997/10/26 | 1.8.11 | GPL |
Epydoc | Edward Loper | 2002/01/— | 3.0 | MIT |
fpdoc (Free Pascal Documentation Generator) | Sebastian Guenther | 2005? | 2.6.4 | GPL |
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 |
Imagix 4D | Imagix Corp. | 1995 | 7.3 | Proprietary |
Javadoc | Sun Microsystems | 1995 | 1.6 | GPL |
JSDoc | Michael Mathews | 2001/07/— | 1.10.2 | GPL |
JsDoc Toolkit | Michael Mathews | 2007? | 2.0.0 | MIT |
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.14.0.3 (2015) | GPL |
perldoc | Larry Wall | 1994 | 5.16.3 | Artistic, GPL |
phpDocumentor | Joshua Eichorn | 2000 | 1.4.4 | LGPL |
pydoc | Ka-Ping Yee[1][2] | 2000 | in Python core | Python |
RDoc | Dave Thomas | 2001/12/14 | in Ruby core | Ruby |
ROBODoc | Frans Slothouber | 1995/01/19 | 4.99.36 | GPL |
Sandcastle | Microsoft | 2008/05/— | 2014.5.31.0 | Ms-PL |
Sphinx | Georg Brandl | 2008/03/21 | 1.5.2 | BSD |
Visual Expert | Novalys | 1995 | 2017 | Proprietary |
YARD | Loren Segal | 2007/02/24 | 0.7.3 | MIT |
Name | Creator | First public release date | Latest stable version | Software license |
Operating system support
The operating systems the generators can run on.
Windows | OS X | Linux | BSD | Unix | |
---|---|---|---|---|---|
Ddoc | Yes | Yes[a] | Yes | Yes[a] | No |
Document! X | Yes | No | No | No | No |
Doxygen | Yes | Yes | Yes | Yes | Yes |
Epydoc | Yes | Yes | Yes | Yes | Yes |
Haddock | Yes | Yes | Yes | Yes | Yes |
HeaderDoc | No | Yes | Yes | Yes | Yes |
Help Generator | Yes | No | No | No | No |
Imagix 4D | Yes | No | Yes | No | Yes |
Javadoc | Yes | Yes | Yes | Yes | Yes |
JSDoc | Yes | Yes | Yes | Yes | Yes |
JsDoc Toolkit | Yes | Yes | Yes | Yes | Yes |
mkd | Yes | No? | Yes | Yes | Yes |
Natural Docs | Yes | Yes | Yes | Yes | Yes |
NDoc | Yes | No | No | No | No |
Pandoc | Yes | Yes | Yes | Yes | Yes |
perldoc | Yes | Yes | Yes | Yes | Yes |
phpDocumentor | Yes | Yes | Yes | Yes | Yes |
pydoc | Yes | Yes | Yes | Yes | Yes |
RDoc | Yes | Yes | Yes | Yes | Yes |
ROBODoc | Yes | Yes | Yes | Yes | Yes |
Sandcastle | Yes | No | No | No | No |
Sphinx | Yes | Yes | Yes | Yes | Yes |
VSdocman | Yes | No | No | No | No |
Windows | OS X | Linux | BSD | Unix |
Language support
The programming languages the generators recognize.
C, C++ | Java | C# | VB, VBScript | Delphi, Pascal | Ada | D | IDL | Access | Fortran | |
---|---|---|---|---|---|---|---|---|---|---|
Ddoc | No | No | No | No | No | No | Yes | No | No | No |
Document! X | C++/CLI only | Yes | Yes | Yes | No | No | No | Yes | Yes | No |
Doxygen | Yes | Yes | Yes | with Plugin[b] | with Plugin[b] | No | Partial | Yes | No | Yes |
Epydoc | No | No | No | No | No | No | No | No | No | No |
Haddock | No | No | No | No | No | No | No | No | No | No |
HeaderDoc | Yes | Yes | No | No | Yes | No | No | Yes | No | No |
Help Generator | Yes | No | Yes | Yes | No | No | No | No | Yes | No |
Imagix 4D | Yes | Yes | No | No | No | No | No | No | No | No |
Javadoc | No | Yes | No | No | No | No | No | No | No | No |
JSDoc | No | No | No | No | No | No | No | No | No | No |
JsDoc Toolkit | No | No | No | No | No | No | No | No | No | No |
Natural Docs | Partial | Partial | Yes | Partial | Partial | Partial | No | No | No | Partial |
NDoc | No | No | Yes | No | No | No | No | No | No | No |
perldoc | No | No | No | No | No | No | No | No | No | No |
phpDocumentor | No | No | No | No | No | No | No | No | No | No |
pydoc | No | No | No | No | No | No | No | No | No | No |
RDoc | Partial | No | No | No | No | No | No | No | No | No |
ROBODoc | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | No | Yes |
Sphinx | Yes | with Plugin | No | No | No | with Plugin | No | No | No | with Plugin |
VSdocman | No | No | Yes | Yes | No | No | No | No | No | No |
YARD | No | No | No | No | No | No | No | No | No | No |
C, C++ | Java | C# | VB, VBScript | Delphi, Pascal | Ada | D | IDL | Access | Fortran |
PHP | Perl | Python | Ruby | JavaScript | ActionScript | PL/SQL | Tcl | Haskell | |
---|---|---|---|---|---|---|---|---|---|
Ddoc | No | No | No | No | No | No | No | No | No |
Document! X | No | No | No | No | No | No | Yes | No | No |
Doxygen | Yes | No[b] | Partial[c] | No | No | No | No | Yes | No |
Epydoc | No | No | Yes | 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 |
Imagix 4D | No | No | No | No | No | No | No | No | No |
Javadoc | No | No | No | No | No | 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 |
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 |
pydoc | No | No | Yes | 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 |
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 comments[d] | |
---|---|---|---|---|---|
Ddoc | No | No | No | No | No |
Document! X | No | No | No | No | No |
Doxygen | No | No | No | No | No |
Epydoc | No | No | No | No | No |
Haddock | No | No | No | No | No |
HeaderDoc | Yes | Yes | Yes | Yes | No |
Help Generator | No | No | No | No | No |
Imagix 4D | No | No | No | No | No |
Javadoc | No | No | No | No | No |
JSDoc | No | No | No | No | No |
JsDoc Toolkit | No | No | No | No | No |
Natural Docs | No | No | No | No | Yes |
NDoc | No | No | No | No | No |
perldoc | No | No | No | No | No |
phpDocumentor | No | No | No | No | No |
pydoc | No | No | No | No | No |
RDoc | No | No | No | No | No |
ROBODoc | No | No | No | No | Yes |
Sphinx | 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 comments |
Input formats
The input formats the generators can read.
Text | Binary | |
---|---|---|
Ddoc | Yes | No |
Document! X | Yes | Yes |
Doxygen | Yes | No |
Epydoc | Yes | No |
Haddock | Yes | No |
HeaderDoc | Yes | No |
Help Generator | Yes | Yes |
Imagix 4D | Yes | No |
Javadoc | Yes | No |
JSDoc | Yes | No |
JsDoc Toolkit | Yes | No |
mkd | Yes | No |
Natural Docs | Yes | No |
NDoc | No | Yes |
perldoc | Yes | No |
phpDocumentor | Yes | No |
pydoc | Yes | No |
RDoc | Yes | No |
ROBODoc | Yes | No |
Sphinx | Yes | No |
VSdocman | Yes | No |
YARD | Yes | No |
Text | Binary |
Output formats
The output formats the generators can write.
HTML | CHM | RTF | LaTeX | PostScript | man pages | DocBook | XML | ePub | ||
---|---|---|---|---|---|---|---|---|---|---|
Ddoc | Yes | Yes[e] | No | Yes[e] | Yes[e] | Yes[e] | Yes[e] | No | Yes[e] | |
Document! X | Yes | Yes | No | No | No | No | No | No | No | |
Doxygen | Yes | Yes | Yes | Indirectly[f] | Yes | Indirectly[f] | Yes | Yes | Yes | No |
Epydoc | Yes | No | No | Yes | Indirectly[g] | Indirectly[g] | 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 | |
Imagix 4D | Yes | No | Yes | No | No | No | No | No | No | |
Javadoc | Yes | Indirectly[h] | Indirectly[h] | Indirectly[h] | Indirectly[h] | Indirectly[h] | Indirectly[h] | Indirectly[h] | Indirectly[h] | |
JSDoc | Yes | No | No | No | No | No | No | No | No | |
JsDoc Toolkit | Yes | No | No | No | No | No | No | No | Yes+JSON | |
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 | |
pydoc | Yes | No | No | No | No | No | No | No | No | No |
RDoc | Yes | Yes[i] | No | No | No | No | Indirectly[j] | No | Yes[i] | |
ROBODoc | Yes | Indirectly | Yes | Indirectly[g] | Yes | Indirectly[g] | Yes | Yes | No | |
Sandcastle | Yes | Yes | 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
possibility 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. | |
Help Generator | ||||
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 |
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 |
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) |
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 |
Possible omissions
See also
Notes
- ^ a b GNU D Compiler
- ^ a b c 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.[3]
- ^ Doxygen has limited native support for Python. It can be extended through the use of the doxypypy input filter.
- ^ Generators listed here can be extended to support any language that has comments.
- ^ 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.[4]
- ^ a b c d 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.
References
- ^ http://zesty.ca/cv.html
- ^ https://www.python.org/dev/peps/pep-0256/
- ^ "Doxygen: Helper tools and scripts". www.stack.nl. Retrieved 2016-04-19.
- ^ http://www.stack.nl/~dimitri/doxygen/manual/output.html