Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Comparison of documentation generators
List article

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

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

NameCreatorInput formatLanguages (alphabet order)OS supportFirst public release dateLatest stable versionSoftware license
DdocWalter BrightTextDWindows, OS X, Linux and BSD2005/09/19DMD 2.078.3Boost (opensource)
Document! XInnovasysText, BinaryC++/CLI only, C#, IDL, Java, VB, VBScript, PL/SQLWindows only19982014.1Proprietary
DoxygenDimitri van HeeschTextC/C++, C#, D, IDL, Fortran, Java, PHP, PythonAny1997/10/261.13.2GPL
EpydocEdward 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
HaddockSimon MarlowTextHaskellAny20022.15.0 (2014)BSD
HeaderDocApple 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 4DImagix Corp.TextC, C++, JavaWindows, Linux, Unix19957.3Proprietary
JavadocSun MicrosystemsTextJavaAny19951.6GPL
JSDocMichael MathewsTextJavaScriptAny2001/07/—1.10.2GPL
JsDoc ToolkitMichael MathewsTextJavaScriptAny2007?2.0.0MIT
mkdJean-Paul LouyotTextAny with commentsUnix, Linux, Windows19892015EUPL GPL
MkDocsTom ChristieTextPythonAny2014/10/291.5.3BSD
Natural DocsGreg ValureTextAny with commentsAny2003/05/262.0.2GPL
NDocJason Diamond, Jean-Claude Manoli, Kral FerchBinaryC#Windows only2003/07/271.3.1GPL
pdocAndrew GallantTextPythonAny20131.0.1 (2021)Unlicense (PD)
perldocLarry WallTextPerlAny19945.16.3Artistic, GPL
phpDocumentorJoshua EichornTextPHPAny20003.0.0LGPL for 1.x, MIT for 2+
pydocKa-Ping Yee1TextPythonAny2000in Python corePython
RDocDave ThomasTextC, C++, RubyAny2001/12/14in Ruby coreRuby
ROBODocFrans SlothouberTextAny with commentsAny1995/01/194.99.36 (2015)GPL
SandcastleMicrosoftText.NETWindows only2008/05/—2.4.10520 (2016)Ms-PL
SphinxGeorg BrandlTextAda, C, C++, Chapel, CMake, Fortran, GraphQL, JavaScript, Matlab, PHP, Python, reStructuredText, Ruby, Rust, VBAny2008/03/218.2.1BSD
Visual ExpertNovalysText, BinaryC#, PL/SQL, Transact-SQL, PowerBuilderWindows only19952017Proprietary
VSdocmanHelixoftTextVB, VBScript, C#Windows only2003 Oct 29.0Proprietary
YARDLoren SegalTextRubyAny2007/02/240.7.3MIT
NameCreatorInput formatLanguages (alphabet order)OS supportFirst public release dateLatest stable versionSoftware license

Supported formats

The output formats the generators can write.

Generator nameHTMLCHMRTFPDFLaTeXPostScriptman pagesDocBookXMLEPUB
DdocYesYes2NoYes3Yes4Yes5Yes6NoYes7No
Document! XYesYesNoNoNoNoNoNoNoNo
DoxygenYesYesYesIndirectly8YesIndirectly9YesYesYesNo
EpydocYesNoNoYesIndirectly10Indirectly11NoNoNoNo
fpdocYesNativeYesIndirectly12Indirectly13YesNoNoNoNo
HaddockYesYesNoNoNoNoNoPartialNoNo
HeaderDocYesNoNoNoNoNoYesNoYesNo
Imagix 4DYesNoYesNoNoNoNoNoNoNo
JavadocYesIndirectly14Indirectly15Indirectly16Indirectly17Indirectly18Indirectly19Indirectly20Indirectly21No
JSDocYesNoNoNoNoNoNoNoNoNo
JsDoc ToolkitYesNoNoNoNoNoNoNoYes+JSONNo
MkDocsYesNoNoNoNoNoNoNoNoNo
Natural DocsYesNoNoNoNoNoNoNoNoNo
NDocYesYesNoNoNoNoNoNoNoNo
pdocYesNoNoNoNoNoNoNoNoNo
phpDocumentorYesYes (1.x only)NoYes (1.x only)NoNoNoYes (1.x only)Yes (1.x only)No
pydocYesNoNoNoNoNoNoNoNoNo
RDocYesYes22NoNoNoNoIndirectly23NoYes24No
ROBODocYesIndirectlyYesIndirectly25YesIndirectly26YesYesNoNo
SandcastleYesYesNoNoNoNoNoNoNoNo
SphinxYesYesNoIndirectly27YesNoYesNoYesYes
Visual ExpertYesNoNoNoNoNoNoNoNoNo
VSdocmanYesYesNoYesNoNoNoNoYesNo
YARDYesNoNoNoNoNoNoNoNoNo
Generator nameHTMLCHMRTFPDFLaTeXPostScriptman pagesDocBookXMLEPUB

Other features

possibility of extended customizationgenerated diagramshighlighting and linking of generated docparameter types extracted
Ddocwith macros
Document! Xcustomizable HTML based templates, custom comment tagslinked graphical object relationship diagramsinternal links and links to .NET framework documentationtypes extracted and linked
Doxygenwith XSLTcaller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams
Epydoc
HaddockYesYes
HeaderDocCustom 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 4Dcustomizable 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
JSDocYes
JsDoc ToolkitYes
mkdCustomisable 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
perldocExtend the generator classes through Perl programming.Only linking
pdocoverridable Jinja2 templatessource code syntax highlighting, automatic cross-linking to symbol declarationsYes
phpDocumentorSmarty-based templates (1.x), Twig-based templates (2+)class inheritance diagramscross reference to generated documentation, and to php.net function referenceYes
pydoc
RDoc
ROBODoc
SphinxCustomizable 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 Expertdocumentation content and styles customizableClass inheritance, call trees, dependencies (impact analysis)internal links between classes, methods, variables, tables, columns...all types extracted
VSdocmanfull 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
YARDcustomizable Ruby templatesclass diagrams with extra toolinternal classes/modules cross-referenced and Ruby source highlighted

See also

Notes

References

  1. "PEP 256 -- Docstring Processing System Framework | Python.org". https://peps.python.org/pep-0256/

  2. 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.

  3. 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.

  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.

  5. 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.

  6. 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.

  7. 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.

  8. Generated from the LaTeX output only.[2]

  9. Generated from the LaTeX output only.[2]

  10. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  11. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  12. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  13. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  14. Via Doclets from Third Parties. /wiki/Doclets

  15. Via Doclets from Third Parties. /wiki/Doclets

  16. Via Doclets from Third Parties. /wiki/Doclets

  17. Via Doclets from Third Parties. /wiki/Doclets

  18. Via Doclets from Third Parties. /wiki/Doclets

  19. Via Doclets from Third Parties. /wiki/Doclets

  20. Via Doclets from Third Parties. /wiki/Doclets

  21. Via Doclets from Third Parties. /wiki/Doclets

  22. RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.

  23. RDoc generates documentation for RI, which is Ruby's version of the Unix man pages. /wiki/RDoc

  24. RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.

  25. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  26. Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.

  27. Generated from the LaTeX output only