Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Comparison of documentation generators
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|none}} The following tables compare general and technical information for a number of [[documentation generator]]s. 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. <!-- In each table, link one (often 1st) instance of terms, remove other WP:OVERLINK(s). --> {| class="wikitable sortable" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center;" |- style="background: #ececec" ! Name ! Creator ! Input format ! Languages (alphabet order) ! OS support ! First public release date ! Latest stable version ! [[Software license]] |- ! style="text-align:left;" bgcolor="#ececec" | Ddoc | [[Walter Bright]] | Text | D | Windows, OS X, Linux and BSD | 2005/09/19 | DMD 2.078.3 | {{Free|[[Boost (C++ libraries)|Boost]] (opensource)}} |- ! style="text-align:left;" bgcolor="#ececec" | docToolchain | Ralph D. MΓΌller | Text | Java | Windows, OS X, Linux and BSD | 2018/08/31 | v3.4.2 | {{Free|MIT license}} |- ! style="text-align:left;" bgcolor="#ececec" | Document! X | Innovasys | Text, Binary | C++/CLI only, C#, IDL, Java, VB, VBScript, PL/SQL | Windows only | 1998 | 2014.1 | {{Nonfree|Proprietary}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Doxygen]] | Dimitri van Heesch | Text | C/C++, C#, D, IDL, Fortran, Java, PHP, Python | Any | 1997/10/26 | 1.13.2 | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | Epydoc | Edward Loper | Text | Python | Any | 2002/01/β | 3.0 (2008) | {{Free|[[MIT License|MIT]]}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Free Pascal|fpdoc]] (Free Pascal Documentation Generator) | Sebastian Guenther and Free Pascal Core | Text | (Object)Pascal/Delphi | FPC tier 1 targets | 2005 | 3.2.2 | {{Free|GPL}} reusable parts are GPL with static linking exception |- ! style="text-align:left;" bgcolor="#ececec" | [[Haddock (software)|Haddock]] | [[Simon Marlow]] | Text | Haskell | Any | 2002 | 2.15.0 (2014) | {{Free|BSD}} |- ! style="text-align:left;" bgcolor="#ececec" | [[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) | {{Free|[[Apple Public Source License|APSL]]}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Imagix 4D]] | Imagix Corp. | Text | C, C++, Java | Windows, Linux, Unix | 1995 | 7.3 | {{Nonfree|Proprietary}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Javadoc]] | [[Sun Microsystems]] | Text | Java | Any | 1995 | 1.6 | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc]] | Michael Mathews | Text | JavaScript | Any | 2001/07/β | 1.10.2 | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc|JsDoc Toolkit]] | Michael Mathews | Text | JavaScript | Any | 2007? | 2.0.0 | {{Free|MIT}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Mkd (Unix command)|mkd]] | Jean-Paul Louyot | Text | Any with comments | Unix, Linux, Windows | 1989 | 2015 | {{Free|[[EUPL]] GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[MkDocs]] | Tom Christie | Text | Python | Any | 2014/10/29 | 1.5.3 | {{Free|BSD}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Natural Docs]] | Greg Valure | Text | Any with comments | Any | 2003/05/26 | 2.0.2 | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[NDoc]] | Jason Diamond, Jean-Claude Manoli, Kral Ferch | Binary | C# | Windows only | 2003/07/27 | 1.3.1 | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[pdoc]] |Andrew Gallant |Text |Python |Any |2013 |1.0.1 (2021) | {{Free|[[Unlicense]] (PD)}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Plain Old Documentation|perldoc]] | [[Larry Wall]] | Text | Perl | Any | 1994 | 5.16.3 | {{Free|[[Artistic License|Artistic]], GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[phpDocumentor]] | Joshua Eichorn | Text | PHP | Any | 2000 | 3.0.0 | {{Free|[[GNU Lesser General Public License|LGPL]] for 1.x, [[MIT License|MIT]] for 2+}} |- ! style="text-align:left;" bgcolor="#ececec" | [[pydoc]] | Ka-Ping Yee<ref>{{cite web |url=https://peps.python.org/pep-0256/ |title = PEP 256 -- Docstring Processing System Framework {{!}} Python.org}}</ref> | Text | Python | Any | 2000 | in Python core | {{Free|[[Python Software Foundation License|Python]]}} |- ! style="text-align:left;" bgcolor="#ececec" | [[RDoc]] | Dave Thomas | Text | C, C++, Ruby | Any | 2001/12/14 | in Ruby core | {{Free|[[Ruby License|Ruby]]}} |- ! style="text-align:left;" bgcolor="#ececec" | [[ROBODoc]] | Frans Slothouber | Text | Any with comments | Any | 1995/01/19 | 4.99.36 (2015) | {{Free|GPL}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Sandcastle (software)|Sandcastle]] | [[Microsoft]] | Text | .NET | Windows only | 2008/05/β | 2.4.10520 (2016) | {{Free|[[Shared source#Microsoft Public License .28Ms-PL.29|Ms-PL]]}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Sphinx (documentation generator)|Sphinx]] | Georg Brandl | Text | Ada, C, C++, Chapel, CMake, Fortran, GraphQL, JavaScript, Matlab, PHP, Python, reStructuredText, Ruby, Rust, VB | Any | 2008/03/21 | 8.2.1 | {{Free|BSD}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Visual Expert]] | Novalys | Text, Binary | C#, PL/SQL, Transact-SQL, PowerBuilder | Windows only | 1995 | 2017 | {{Nonfree|Proprietary}} |- ! style="text-align:left;" bgcolor="#ececec" | VSdocman | Helixoft | Text | VB, VBScript, C# | Windows only | 2003 Oct 2 | 9.0 | {{Nonfree|Proprietary}} |- ! style="text-align:left;" bgcolor="#ececec" | [[YARD (software)|YARD]] | Loren Segal | Text | Ruby | Any | 2007/02/24 | 0.7.3 | {{Free|MIT}} |- ! Name ! Creator ! Input format ! Languages (alphabet order) ! OS support ! First public release date ! Latest stable version ! [[Software license]] |} == Supported formats == The output formats the generators can write. {| class="wikitable sortable" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;" |- style="background: #ececec" ! style="width:12em" | Generator name ! [[HTML]] ! [[Microsoft Compiled HTML Help|CHM]] ! [[Rich Text Format|RTF]] ! [[PDF]] ! [[LaTeX]] ! [[PostScript]] ! [[man page]]s ! [[DocBook]] ! [[XML]] ! [[EPUB]] |- ! style="text-align:left;" bgcolor="#ececec" | Ddoc | {{Yes}} | {{Yes}}{{efn|name=fn4}} | {{No}} | {{Yes}}{{efn|name=fn4}} | {{Yes}}{{efn|name=fn4}} | {{Yes}}{{efn|name=fn4}} | {{Yes}}{{efn|name=fn4}} | {{No}} | {{Yes}}{{efn|name=fn4}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[docToolchain]] | {{Yes}} | {{No}} | {{No}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{Yes}} | {{No}} | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | Document! X | {{Yes}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | Epydoc | {{Yes}} | {{No}} | {{No}} | {{Yes}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Free Pascal|fpdoc]] | {{Yes}} | Native | {{Yes}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Haddock (software)|Haddock]] | {{Yes}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | bgcolor="#ffffdd" | Partial | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[HeaderDoc]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{Yes}} | {{No}} | {{Yes}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Imagix 4D]] | {{Yes}} | {{No}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Javadoc]] | {{Yes}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn6}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc|JsDoc Toolkit]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{Yes}}+JSON | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[MkDocs]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Natural Docs]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[NDoc]] | {{Yes}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[pdoc]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[phpDocumentor]] | {{Yes}} | {{Yes}} (1.x only) | {{No}} | {{Yes}} (1.x only) | {{No}} | {{No}} | {{No}} | {{Yes}} (1.x only) | {{Yes}} (1.x only) | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[pydoc]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[RDoc]] | {{Yes}} | {{Yes}}{{efn|name=fn9}} | {{No}} | {{No}} | {{No}} | {{No}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn10}} | {{No}} | {{Yes}}{{efn|name=fn9}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[ROBODoc]] | {{Yes}} | bgcolor="#ffffdd" | Indirectly | {{Yes}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | {{Yes}} | bgcolor="#ffffdd" | Indirectly{{efn|name=fn5}} | {{Yes}} | {{Yes}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Sandcastle (software)|Sandcastle]] | {{Yes}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Sphinx (documentation generator)|Sphinx]] | {{Yes}} | {{Yes}} | {{No}} | bgcolor="#ffffdd" | Indirectly{{efn|name=a|Generated from the LaTeX output only}} | {{Yes}} | {{No}} | {{Yes}} | {{No}} | {{Yes}} | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Visual Expert]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | VSdocman | {{Yes}} | {{Yes}} | {{No}} | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{Yes}} | {{No}} |- ! style="text-align:left;" bgcolor="#ececec" | [[YARD (software)|YARD]] | {{Yes}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} | {{No}} |- class="sortbottom" style="background: #ececec" ! Generator name ! HTML ! CHM ! RTF ! PDF ! LaTeX ! PostScript ! man pages ! DocBook ! XML ! EPUB |} == Other features == {| class="wikitable sortable" style="font-size: 85%; border: gray solid 1px; border-collapse: collapse; text-align: center; width: 100%; table-layout: fixed;" |- style="background: #ececec" ! style="width:12em" | ! possibility of extended customization ! generated diagrams ! highlighting and linking of generated doc ! parameter types extracted |- ! style="text-align:left;" bgcolor="#ececec" | Ddoc | bgcolor="#90ff90" | with macros | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[docToolchain]] | bgcolor="#90ff90" | customizable themes, custom tasks | bgcolor="#90ff90" | many diagram plugins (plantUML, mermaid, ...) | bgcolor="#90ff90" | automatic and manual references, table of contents, bibliography, ... | |- ! style="text-align:left;" bgcolor="#ececec" | Document! X | bgcolor="#90ff90" | customizable HTML based templates, custom comment tags | bgcolor="#90ff90" | linked graphical object relationship diagrams | bgcolor="#90ff90" | internal links and links to .NET framework documentation | bgcolor="#90ff90" | types extracted and linked |- ! style="text-align:left;" bgcolor="#ececec" | [[Doxygen]] | bgcolor="#90ff90" | with XSLT | bgcolor="#90ff90" | caller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams | | |- ! style="text-align:left;" bgcolor="#ececec" | Epydoc | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[Haddock (software)|Haddock]] | | | {{Yes}} | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[HeaderDoc]] | bgcolor="#90ff90" | Custom headers, footers, code coloring, and other CSS styles in individual pages. Project-wide TOC is generated from a user-defined template. | | bgcolor="#90ff90" | Configurable syntax highlighting/coloring with automatic linking to symbols in declaration, ability to manually link to symbols in discussion, etc. | bgcolor="#90ff90" | 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. |- ! style="text-align:left;" bgcolor="#ececec" | [[Imagix 4D]] | bgcolor="#90ff90" | customizable through style sheets and CSS | bgcolor="#90ff90" | 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 | bgcolor="#90ff90" | fully cross-linked project-wide, including all hierarchy and dependency graphs, metrics tables, source code snippets, and source files | bgcolor="#90ff90" | full semantic analysis of source code, including parameter types, conditional compilation directives, macro expansions |- ! style="text-align:left;" bgcolor="#ececec" | [[Javadoc]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc]] | | | | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[JSDoc|JsDoc Toolkit]] | | | | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[Mkd (Unix command)|mkd]] | bgcolor="#90ff90" | Customisable for all type of comments | bgcolor="#90ff90" | 'as-is' in comments | bgcolor="#90ff90" | all general documentation; references, manual, organigrams, ... Including the binary codes included in the comments. | bgcolor="#90ff90" | all coded comments |- ! style="text-align:left;" bgcolor="#ececec" | [[MkDocs]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[Natural Docs]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[NDoc]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[Plain Old Documentation|perldoc]] | bgcolor="#90ff90" | Extend the generator classes through Perl programming. | | bgcolor="#90ff90" | Only linking | |- ! style="text-align:left;" bgcolor="#ececec" | [[pdoc]] | bgcolor="#90ff90" | overridable Jinja2 templates | | bgcolor="#90ff90" | source code syntax highlighting, automatic cross-linking to symbol declarations | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[phpDocumentor]] | bgcolor="#90ff90" | Smarty-based templates (1.x), Twig-based templates (2+) | bgcolor="#90ff90" | class inheritance diagrams | bgcolor="#90ff90" | cross reference to generated documentation, and to php.net function reference | {{Yes}} |- ! style="text-align:left;" bgcolor="#ececec" | [[pydoc]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[RDoc]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[ROBODoc]] | | | | |- ! style="text-align:left;" bgcolor="#ececec" | [[Sphinx (documentation generator)|Sphinx]] | bgcolor="#90ff90" | Customizable themes (10 first-party); Jinja templating; Python plugins | bgcolor="#90ff90" | class inheritance diagrams, graphviz, third party (e.g. using aafigure, actdiag, Google Chart, gnuplot, mermaid) | bgcolor="#90ff90" | Automatic cross-referencing (including between projects), Index; Table of Contents, Syntax highlighting with Pygments | bgcolor="#90ff90" | custom objects (such as functions and classes) |- ! style="text-align:left;" bgcolor="#ececec" | [[Visual Expert]] | bgcolor="#90ff90" | documentation content and styles customizable | bgcolor="#90ff90" | Class inheritance, call trees, dependencies (impact analysis) | bgcolor="#90ff90" | internal links between classes, methods, variables, tables, columns... | bgcolor="#90ff90" | all types extracted |- ! style="text-align:left;" bgcolor="#ececec" | VSdocman | bgcolor="#90ff90" | full customization for all output formats, templates for MSDN-like output, custom XML comment tags | bgcolor="#90ff90" | linked graphical class diagrams, class inheritance tree | bgcolor="#90ff90" | internal links and links to .NET framework documentation | bgcolor="#90ff90" | types extracted and linked |- ! style="text-align:left;" bgcolor="#ececec" | [[YARD (software)|YARD]] | bgcolor="#90ff90" | customizable Ruby templates | bgcolor="#90ff90" | class diagrams with extra tool | bgcolor="#90ff90" | internal classes/modules cross-referenced and Ruby source highlighted | |} == See also == * [[Code readability]] * [[Documentation generator]] * [[Literate programming]] * [[Self-documenting code]] ==Notes== {{Notelist|notes= {{efn|name=fn4|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.}} {{efn|name=fn5|Though not officially supported as an output format, Epydoc uses LaTeX and PostScript as intermediate steps to produce the final PDF documentation.}} {{efn|name=fn6|Via [[Doclets]] from Third Parties.}} {{efn|name=fn9|RDoc currently only provides generators for CHM and XML documents in the RDoc version provided as part of the Ruby 1.9 Core.}} {{efn|name=fn10|RDoc generates documentation for [[RDoc|RI]], which is Ruby's version of the Unix man pages.}} }} ==References== {{Reflist}} {{DEFAULTSORT:Comparison Of Documentation Generators}} [[Category:Software comparisons|Documentation generators]] [[Category:Documentation generators| ]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Efn
(
edit
)
Template:Free
(
edit
)
Template:No
(
edit
)
Template:Nonfree
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Yes
(
edit
)