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