Content deleted Content added
m Removing link(s) Wikipedia:Articles for deletion/Epydoc closed as delete (XFDcloser) |
|||
(644 intermediate revisions by more than 100 users not shown) | |||
Line 1:
{{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"
| [[Walter Bright]]
| Text
|
| 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" |
| Ralph D. Müller
| Text
|
| Windows, OS X, Linux and BSD
| 2018/08/31
| v3.4.2
| {{Free|MIT license}}
|-
! style="text-align:left;" bgcolor="#ececec" |
| 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" | [[
| Dimitri van Heesch
| Text
| C/C++, C#, D, IDL, Fortran, Java, PHP, Python
|
| 1997/10/26
| 1.13.2
| {{Free|GPL}}
|-
! style="text-align:left;" bgcolor="#ececec" |
| Edward Loper
| Text
|
|
| 2002/01/—
| 3.0 (2008)
| {{Free|[[MIT License|MIT]]}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| 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" | [[
| [[Simon Marlow]]
| Text
|
| Any
| 2002
| 2.15.0 (2014)
| {{Free|BSD}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[HeaderDoc]]
| [[Apple
|
| 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 Corp.
| Text
| C, C++, Java
| Windows, Linux, Unix
| 1995
| 7.3
| {{Nonfree|Proprietary}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[Javadoc]]
| [[Sun Microsystems]]
|
|
| Any
| 1995
| 1.6
| {{Free|GPL}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| Michael Mathews
|
| JavaScript
|
| 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
|
| 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
|
|
| 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" | [[
| Ka-Ping Yee<ref>{{cite web |url=https://peps.python.org/pep-0256/ |title = PEP 256 -- Docstring Processing System Framework {{!}} Python.org}}</ref>
| Text
|
| 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
|
| 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" | [[
| Novalys
| Text, Binary
| C#, PL/SQL, Transact-SQL, PowerBuilder
| Windows only
| 1995
| 2017
| {{Nonfree|Proprietary}}
|-
! style="text-align:left;" bgcolor="#ececec" |
| Helixoft
| Text
| VB, VBScript, C#
| Windows only
| 2003 Oct 2
| 9.0
| {{Nonfree|Proprietary}}
|-
! style="text-align:left;" bgcolor="#ececec" | [
| Loren Segal
| Text
|
|
| 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.
{|
|- style="background: #ececec"
! style="width:12em" | Generator name
! [[HTML]]
! [[Microsoft
! [[Rich Text Format|RTF]]
! [[
! [[LaTeX]]
! [[PostScript]]
! [[
! [[DocBook]]
! [[XML]]
! [[EPUB]]
|-
! style="text-align:left;" bgcolor="#ececec" |
| {{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" | [
| {{Yes}}
| {{No}}
| {{No}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{Yes}}
| {{No}}
| {{Yes}}
|-
! style="text-align:left;" bgcolor="#ececec" |
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" |
| {{Yes}}
| {{No}}
| {{No}}
| {{Yes}}
| bgcolor="#
| bgcolor="#
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| Native
| {{Yes}}
| bgcolor="#
| bgcolor="#
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| bgcolor="#
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{Yes}}
| {{No}}
| {{Yes}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| {{No}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| bgcolor="#
| bgcolor="#
| bgcolor="#
| bgcolor="#ffffdd" | Indirectly
| bgcolor="#ffffdd" | Indirectly
| bgcolor="#
| bgcolor="#
| bgcolor="#
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{Yes}}+JSON
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{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" | [[
| {{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="#
| {{Yes}}
| bgcolor="#
| {{Yes}}
| bgcolor="#
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{Yes}}
| {{Yes}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
| {{No}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| {{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" | [
| {{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 ==
{|
|- style="background: #ececec"
! style="width:12em" |
Line 1,244 ⟶ 598:
! parameter types extracted
|-
! style="text-align:left;" bgcolor="#ececec" |
| bgcolor="#90ff90" | with macros
|
|
|
|-
! style="text-align:left;" bgcolor="#ececec" | [
| 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" |
| 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" | [[
| bgcolor="#90ff90" | with XSLT
| bgcolor="#90ff90" | caller and callee graphs, dependency graphs, inheritance diagrams, collaboration diagrams
|
|
|-
! style="text-align:left;" bgcolor="#ececec" |
|
|
Line 1,274 ⟶ 628:
|
|-
! style="text-align:left;" bgcolor="#ececec" | [[
|
|
| {{Yes}}
| {{Yes}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| 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" | [[
| bgcolor="#
| bgcolor="#
| 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" | [[
|
|
Line 1,298 ⟶ 652:
|
|-
! style="text-align:left;" bgcolor="#ececec" | [[
|
|
|
| {{Yes}}
|-
! style="text-align:left;" bgcolor="#ececec" | [
|
|
|
| {{Yes}}
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| 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" | [[
|
|
Line 1,334 ⟶ 688:
|
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| bgcolor="#
|
| bgcolor="#90ff90" | Only linking
|
|-
! style="text-align:left;" bgcolor="#ececec" | [[
| 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" | [[
|
|
Line 1,358 ⟶ 712:
|
|-
! style="text-align:left;" bgcolor="#ececec" | [[
|
|
Line 1,364 ⟶ 718:
|
|-
! style="text-align:left;" bgcolor="#ececec" | [
|
|
|
|
|-
! 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|
|