Blame doc/features.doc

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