Blame doc/features.doc

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
/*! \page features Features
Packit 1c1d7e
Packit 1c1d7e
\addindex features
Packit 1c1d7e
    Packit 1c1d7e
  • Requires very little overhead from the writer of the documentation.
  • Packit 1c1d7e
        Plain text will do, Markdown is support, and for more fancy or 
    Packit 1c1d7e
        structured output HTML tags and/or some of doxygen's special commands 
    Packit 1c1d7e
        can be used.
    Packit 1c1d7e
  • Cross platform: works on Windows and many Unix flavors (including Linux and
  • Packit 1c1d7e
        MacOSX).
    Packit 1c1d7e
  • Indexes, organizes and generates browsable and cross-referenced
  • Packit 1c1d7e
        output even from undocumented code.
    Packit 1c1d7e
  • Generates structured XML output for parsed sources, which can be
  • Packit 1c1d7e
        used by external tools.
    Packit 1c1d7e
  • Supports C/C++, Java, (Corba and Microsoft) Java, Python, VHDL, PHP
  • Packit 1c1d7e
        IDL, C#, Fortran, TCL, Objective-C 2.0, and to some extent D sources.
    Packit 1c1d7e
  • Supports documentation of files, namespaces, packages, classes,
  • Packit 1c1d7e
        structs, unions, templates, variables, functions, typedefs, enums and 
    Packit 1c1d7e
        defines. 
    Packit 1c1d7e
  • JavaDoc (1.1), qdoc3 (partially), and ECMA-334 (C# spec.) compatible.
  • Packit 1c1d7e
  • Comes with a GUI frontend (Doxywizard) to ease editing the options and
  • Packit 1c1d7e
        run doxygen. The GUI is available on Windows, Linux, and MacOSX.
    Packit 1c1d7e
  • Automatically generates class and collaboration diagrams in HTML (as clickable
  • Packit 1c1d7e
        image maps) and \LaTeX (as Encapsulated PostScript images).
    Packit 1c1d7e
  • Uses the `dot` tool of the Graphviz tool kit to generate
  • Packit 1c1d7e
        include dependency graphs, collaboration diagrams, call graphs, directory structure
    Packit 1c1d7e
        graphs, and graphical class hierarchy graphs. 
    Packit 1c1d7e
  • Allows grouping of entities in modules and creating a hierarchy of modules.
  • Packit 1c1d7e
  • Flexible comment placement: Allows you to put documentation in the
  • Packit 1c1d7e
        header file (before the 
    Packit 1c1d7e
        declaration of an entity), source file (before the definition of an entity) 
    Packit 1c1d7e
        or in a separate file.
    Packit 1c1d7e
  • Generates a list of all members of a class (including any inherited
  • Packit 1c1d7e
        members) along with their protection level.
    Packit 1c1d7e
  • Outputs documentation in on-line format (XHTML and UNIX man page) and
  • Packit 1c1d7e
        off-line format (\LaTeX and RTF) simultaneously 
    Packit 1c1d7e
        (any of these can be disabled if desired). All formats are optimized for 
    Packit 1c1d7e
        ease of reading. 
    Packit 1c1d7e
        Furthermore, compressed HTML can be generated from HTML output using 
    Packit 1c1d7e
        Microsoft's HTML Help Workshop (Windows only) and PDF can be generated 
    Packit 1c1d7e
        from the \LaTeX output.
    Packit 1c1d7e
  • Support for various third party help formats including HTML Help,
  • Packit 1c1d7e
        docsets, Qt-Help, and eclipse help.
    Packit 1c1d7e
  • Includes a full C preprocessor to allow proper parsing of conditional
  • Packit 1c1d7e
        code fragments and to allow expansion of all or part of macros definitions.
    Packit 1c1d7e
  • Automatically detects public, protected and private sections, as well as
  • Packit 1c1d7e
        the Qt specific signal and slots sections. Extraction of private class 
    Packit 1c1d7e
        members is optional.
    Packit 1c1d7e
  • Automatically generates references to documented classes, files, namespaces
  • Packit 1c1d7e
        and members. Documentation of global functions, global variables, 
    Packit 1c1d7e
        typedefs, defines and enumerations is also supported.
    Packit 1c1d7e
  • References to base/super classes and inherited/overridden members are
  • Packit 1c1d7e
        generated automatically.
    Packit 1c1d7e
  • Includes a fast, rank based search engine to search for strings or words
  • Packit 1c1d7e
        in the class and member documentation (PHP based).
    Packit 1c1d7e
  • Includes an Javascript based live search feature to search for symbols
  • Packit 1c1d7e
        as you type (for small to medium sized projects).
    Packit 1c1d7e
  • You can type normal HTML tags in your documentation. Doxygen will convert
  • Packit 1c1d7e
        them to their equivalent \LaTeX, RTF, and man-page 
    Packit 1c1d7e
        counterparts automatically.
    Packit 1c1d7e
  • Allows references to documentation generated for other (doxygen documented)
  • Packit 1c1d7e
        projects (or another part of the same project) in a location independent way.
    Packit 1c1d7e
  • Allows inclusion of source code examples that are automatically
  • Packit 1c1d7e
        cross-referenced with the documentation.
    Packit 1c1d7e
  • Inclusion of undocumented classes is also supported, allowing to quickly
  • Packit 1c1d7e
        learn the structure and interfaces of a (large) piece of code without 
    Packit 1c1d7e
        looking into the implementation details.
    Packit 1c1d7e
  • Allows automatic cross-referencing of (documented) entities with their
  • Packit 1c1d7e
        definition in the source code.
    Packit 1c1d7e
  • All source code fragments are syntax highlighted for ease of reading.
  • Packit 1c1d7e
  • Allows inclusion of function/member/class definitions in the documentation.
  • Packit 1c1d7e
  • All options are read from an easy to edit and (optionally) annotated
  • Packit 1c1d7e
        configuration file.
    Packit 1c1d7e
  • Documentation and search engine can be transferred to another
  • Packit 1c1d7e
        location or machine without regenerating the documentation.
    Packit 1c1d7e
  • Supports many different character encodings and uses UTF-8 internally and
  • Packit 1c1d7e
        for the generated output.
    Packit 1c1d7e
  • Doxygen can generate a layout which you can use and edit to change the
  • Packit 1c1d7e
        layout of each page.
    Packit 1c1d7e
  • There more than a 100 configurable options to fine-tune the output.
  • Packit 1c1d7e
  • Can cope with large projects easily.
  • Packit 1c1d7e
    Packit 1c1d7e
    Packit 1c1d7e
    Although doxygen can now be used in any project written in a language that is 
    Packit 1c1d7e
    supported by doxygen, initially it was specifically designed to be used for projects 
    Packit 1c1d7e
    that make use of Qt Software's 
    Packit 1c1d7e
    Qt toolkit. I have tried to 
    Packit 1c1d7e
    make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in 
    Packit 1c1d7e
    the Qt source code and create a class browser that looks quite similar to the 
    Packit 1c1d7e
    one that is generated by Qt Software. Doxygen understands the C++ extensions 
    Packit 1c1d7e
    used by Qt such as signals and slots and many of the markup commands used in the Qt sources.
    Packit 1c1d7e
    Packit 1c1d7e
    Doxygen can also automatically generate links to existing documentation
    Packit 1c1d7e
    that was generated with doxygen or with Qt's non-public class browser 
    Packit 1c1d7e
    generator. For a Qt based project this means that whenever you refer to 
    Packit 1c1d7e
    members or classes belonging to the Qt toolkit, a link will be generated to 
    Packit 1c1d7e
    the Qt documentation. This is done independent of where this documentation 
    Packit 1c1d7e
    is located! 
    Packit 1c1d7e
    Packit 1c1d7e
    Packit 1c1d7e
    \htmlonly
    Packit 1c1d7e
    Go to the next section or return to the
    Packit 1c1d7e
     index.
    Packit 1c1d7e
    \endhtmlonly
    Packit 1c1d7e
    Packit 1c1d7e
    */