Doxygen

Doxygen
Doxygen.png
Developer(s) Dimitri van Heesch
Initial release 26 October 1997 (1997-10-26)[1]
Stable release 1.7.5.1 / August 21, 2011; 2 months ago (2011-08-21)
Written in C++
Operating system Cross-platform
Type Documentation generator
License GNU General Public License
Website doxygen.org

Doxygen is a documentation generator for multiple programming languages.

Doxygen is a tool for writing software reference documentation. The documentation is written within code, and is thus relatively easy to keep up to date. Doxygen can cross reference documentation and code, so that the reader of a document can easily refer to the actual code.

Doxygen is free software, released under the terms of the GNU General Public License.

Contents

Design

Like Javadoc, Doxygen extracts documentation from source file comments. In addition to the Javadoc syntax, Doxygen supports the documentation tags used in the Qt toolkit and can generate output in HyperText Markup Language (HTML) as well as in Microsoft Compiled HTML Help (CHM), Rich Text Format (RTF), Portable Document Format (PDF), LaTeX, PostScript or man pages.

Uses

Doxygen can be used with C, C++, C#, Fortran, Java, Objective-C, PHP, Python, IDL (CORBA and Microsoft flavors), VHDL, and to some extent D.

It runs on most Unix-like systems, Mac OS X and Windows.

The first version of Doxygen borrowed some code from an old version of DOC++; later, the Doxygen code was rewritten by Dimitri van Heesch.

Example code

A screenshot of what the output would look like in HTML

The generic syntax of documentation comments is to start a comment with an extra asterisk after the leading comment delimiter '/*':

/**
<A short one line description>
 
<Longer description>
<May span multiple lines or paragraphs as needed>
 
@param  Description of method's or function's input parameter
@param  ...
@return Description of the return value
*/

Many programmers like to mark the start of each line with space-asterisk-space, as follows, but that is not necessary.

/**
 * <A short one line description>
 *
 * <Longer description>
 * <May span multiple lines or paragraphs as needed>
 *
 * @param  Description of method's or function's input parameter
 * @param  ...
 * @return Description of the return value
 */

The following illustrates how a C++ source file can be documented.

/**
 * @file
 * @author  John Doe <jdoe@example.com>
 * @version 1.0
 *
 * @section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * http://www.gnu.org/copyleft/gpl.html
 *
 * @section DESCRIPTION
 *
 * The time class represents a moment of time.
 */
 
class Time {
 
    public:
 
       /**
        * Constructor that sets the time to a given value.
        *
        * @param timemillis Number of milliseconds
        *        passed since Jan 1, 1970.
        */
       Time (int timemillis) {
           // the code
       }
 
       /**
        * Get the current time.
        *
        * @return A time object set to the current time.
        */
       static Time now () {
           // the code
       }
};

An alternative approach for documenting parameters is shown below. It will produce the same documentation.

       /**
        * Constructor that sets the time to a given value.
        */
       Time (int timemillis ///< Number of milliseconds passed since Jan 1, 1970.
            )
       {
           // the code
       }

Richer markup is also possible. For instance, add equations using LaTeX commands:

/**
 *
 * An inline equation @f$ e^{\pi i}+1 = 0 @f$
 *
 * A displayed equation: @f[ e^{\pi i}+1 = 0 @f]
 *
 */

See also

References

  1. ^ ANNOUNCE: doxygen 0.1, Announcing: the first release of Doxygen, a C++ documentation system. , From: Dimitri van Heesch, Date: Sun, 26 Oct 1997, Qt-interest Archive

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Doxygen — Développeur Dimitri van Heesch et contributeurs Dernière version …   Wikipédia en Français

  • Doxygen — Software Dokumentationswerkzeug Basisdaten Entwickler Dimitri van Heesch Aktuelle V …   Deutsch Wikipedia

  • Doxygen — Тип Генератор документации Разработчик Dimitri van Heesch Операционная система Linux, Mac OS X, Solaris, Microsoft Windows …   Википедия

  • Doxygen — Saltar a navegación, búsqueda Doxygen es un generador de documentación para C++, C, Java, Objective C, Python, IDL (versiones Corba y Microsoft) y en cierta medida para PHP, C# y D. Dado que es fácilmente adaptable, funciona en la mayoría de… …   Wikipedia Español

  • Doxygen — es una herramienta software gratuita muy popular para generar automáticamente la documentación del código fuente de un proyecto. La generación puede hacerse en distintos formatos (HTML,texto plano,latex...). La información se extrae a partir de… …   Enciclopedia Universal

  • DoxyWizard — doxygen Software Dokumentationswerkzeug Basisdaten Entwickler: Dimitri van Heesch Aktuelle Version …   Deutsch Wikipedia

  • Comparison of documentation generators — The following tables compare general and technical information for a number of documentation generators. Please see the individual products articles for further information. This article is not all inclusive or necessarily up to date. Unless… …   Wikipedia

  • Comparativa de generadores de documentación — Anexo:Comparativa de generadores de documentación Saltar a navegación, búsqueda Las siguientes tablas comparan información general y técnica de un número de generadores de documentación. Por favor, consulte la página individual de cada producto… …   Wikipedia Español

  • Anexo:Comparativa de generadores de documentación — Las siguientes tablas comparan información general y técnica de un número de generadores de documentación. Por favor, consulte la página individual de cada producto para obtener información adicional. Este artículo no incluye todos los… …   Wikipedia Español

  • PhpDocumentor — Логотип phpDocumentor Тип Генератор документации Разработчик Joshua Eichorn ОС кроссплатформенная …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”