Comparison of documentation generators

Last updated

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.

Contents

General information

Basic general information about the generators, including: creator or company, license, and price.

NameCreatorInput formatLanguages (alphabet order)OS supportFirst public release dateLatest stable version Software license
Ddoc Walter Bright TextDWindows, OS X, Linux and BSD2005/09/19DMD 2.078.3 Boost (opensource)
Document! XInnovasysText, BinaryC++/CLI only, C#, IDL, Java, VB, VBScript, PL/SQLWindows only19982014.1Proprietary
Doxygen Dimitri van HeeschTextC/C++, C#, D, IDL, Fortran, Java, PHP, PythonAny1997/10/261.13.2GPL
Epydoc Edward LoperTextPythonAny2002/01/—3.0 (2008) MIT
fpdoc (Free Pascal Documentation Generator)Sebastian Guenther and Free Pascal CoreText(Object)Pascal/DelphiFPC tier 1 targets20053.2.2GPL reusable parts are GPL with static linking exception
Haddock Simon Marlow TextHaskellAny20022.15.0 (2014)BSD
HeaderDoc Apple Inc. TextAppleScript, Bash, Csh, C, C++, Delphi, IDL, Java, JavaScript, MIG, Pascal, Perl, PHP, Python, Ruby, TclAny Unix-like2000/09/—8.9.28 (2013) APSL
Imagix 4D Imagix Corp.TextC, C++, JavaWindows, Linux, Unix19957.3Proprietary
Javadoc Sun Microsystems TextJavaAny19951.6GPL
JSDoc Michael MathewsTextJavaScriptAny2001/07/—1.10.2GPL
JsDoc Toolkit Michael MathewsTextJavaScriptAny2007?2.0.0MIT
mkd Jean-Paul LouyotTextAny with commentsUnix, Linux, Windows19892015 EUPL GPL
MkDocs Tom ChristieTextPythonAny2014/10/291.5.3BSD
Natural Docs Greg ValureTextAny with commentsAny2003/05/262.0.2GPL
NDoc Jason Diamond, Jean-Claude Manoli, Kral FerchBinaryC#Windows only2003/07/271.3.1GPL
pdoc Andrew GallantTextPythonAny20131.0.1 (2021) Unlicense (PD)
perldoc Larry Wall TextPerlAny19945.16.3 Artistic, GPL
phpDocumentor Joshua EichornTextPHPAny20003.0.0 LGPL for 1.x, MIT for 2+
pydoc Ka-Ping Yee [1] TextPythonAny2000in Python core Python
RDoc Dave ThomasTextC, C++, RubyAny2001/12/14in Ruby core Ruby
ROBODoc Frans SlothouberTextAny with commentsAny1995/01/194.99.36 (2015)GPL
Sandcastle Microsoft Text.NETWindows only2008/05/—2.4.10520 (2016) Ms-PL
Sphinx Georg BrandlTextAda, C, C++, Chapel, CMake, Fortran, GraphQL, JavaScript, Matlab, PHP, Python, reStructuredText, Ruby, Rust, VBAny2008/03/218.2.1BSD
Visual Expert NovalysText, BinaryC#, PL/SQL, Transact-SQL, PowerBuilderWindows only19952017Proprietary
VSdocman HelixoftTextVB, VBScript, C#Windows only2003 Oct 29.0Proprietary
YARD Loren SegalTextRubyAny2007/02/240.7.3MIT
NameCreatorInput formatLanguages (alphabet order)OS supportFirst public release dateLatest stable version Software license

Supported formats

The output formats the generators can write.

Generator name HTML CHM RTF PDF LaTeX PostScript man pages DocBook XML EPUB
Ddoc YesYes [a] NoYes [a] Yes [a] Yes [a] Yes [a] NoYes [a] No
Document! XYesYesNoNoNoNoNoNoNoNo
Doxygen YesYesYesIndirectly [b] YesIndirectly [b] YesYesYesNo
Epydoc YesNoNoYesIndirectly [c] Indirectly [c] NoNoNoNo
fpdoc YesNativeYesIndirectly [c] Indirectly [c] YesNoNoNoNo
Haddock YesYesNoNoNoNoNoPartialNoNo
HeaderDoc YesNoNoNoNoNoYesNoYesNo
Imagix 4D YesNoYesNoNoNoNoNoNoNo
Javadoc YesIndirectly [d] Indirectly [d] Indirectly [d] Indirectly [d] Indirectly [d] Indirectly [d] Indirectly [d] Indirectly [d] No
JSDoc YesNoNoNoNoNoNoNoNoNo
JsDoc Toolkit YesNoNoNoNoNoNoNoYes+JSONNo
MkDocs YesNoNoNoNoNoNoNoNoNo
Natural Docs YesNoNoNoNoNoNoNoNoNo
NDoc YesYesNoNoNoNoNoNoNoNo
pdoc YesNoNoNoNoNoNoNoNoNo
phpDocumentor YesYes (1.x only)NoYes (1.x only)NoNoNoYes (1.x only)Yes (1.x only)No
pydoc YesNoNoNoNoNoNoNoNoNo
RDoc YesYes [e] NoNoNoNoIndirectly [f] NoYes [e] No
ROBODoc YesIndirectlyYesIndirectly [c] YesIndirectly [c] YesYesNoNo
Sandcastle YesYesNoNoNoNoNoNoNoNo
Sphinx YesYesNoIndirectly [g] YesNoYesNoYesYes
Visual Expert YesNoNoNoNoNoNoNoNoNo
VSdocman YesYesNoYesNoNoNoNoYesNo
YARD YesNoNoNoNoNoNoNoNoNo
Generator nameHTMLCHMRTFPDFLaTeXPostScriptman pagesDocBookXMLEPUB

Other features

possibility of extended customizationgenerated diagramshighlighting and linking of generated docparameter types extracted
Ddoc with macros
Document! Xcustomizable HTML based templates, custom comment tagslinked graphical object relationship diagramsinternal links and links to .NET framework documentationtypes extracted and linked
Doxygen with XSLTcaller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams
Epydoc
Haddock YesYes
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 CSSlinked hierarchy and dependency graphs for function calls, variable sets and reads, class inheritance and interface, and file includes and interface, intra-function flow chartsfully cross-linked project-wide, including all hierarchy and dependency graphs, metrics tables, source code snippets, and source filesfull 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 commentsall 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 templatessource code syntax highlighting, automatic cross-linking to symbol declarationsYes
phpDocumentor Smarty-based templates (1.x), Twig-based templates (2+)class inheritance diagramscross reference to generated documentation, and to php.net function referenceYes
pydoc
RDoc
ROBODoc
Sphinx Customizable themes (10 first-party); Jinja templating; Python pluginsclass inheritance diagrams, graphviz, third party (e.g. using aafigure, actdiag, Google Chart, gnuplot, mermaid)Automatic cross-referencing (including between projects), Index; Table of Contents, Syntax highlighting with Pygmentscustom objects (such as functions and classes)
Visual Expert documentation content and styles customizableClass 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 tagslinked graphical class diagrams, class inheritance treeinternal links and links to .NET framework documentationtypes extracted and linked
YARD customizable Ruby templatesclass diagrams with extra toolinternal classes/modules cross-referenced and Ruby source highlighted

See also

Notes

  1. 1 2 3 4 5 6
  2. 1 2 Generated from the LaTeX output only.'"`UNIQ--ref-0000000A-QINU`"'
  3. 1 2 3 4 5 6
  4. 1 2 3 4 5 6 7 8
  5. 1 2
  6. Generated from the LaTeX output only

References

  1. "PEP 256 -- Docstring Processing System Framework | Python.org".