diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2008-08-19 13:23:22 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2008-08-19 13:23:22 (GMT) |
commit | 5dfd148b5f3dfe5db7691b8dca017c828e800a3c (patch) | |
tree | f3b6964844667670f731ee30328142b6eb54ce4f /doc/customize.doc | |
parent | 6bf92c5d7efffb6a04c3ccbfc144ad944200fed2 (diff) | |
download | Doxygen-5dfd148b5f3dfe5db7691b8dca017c828e800a3c.zip Doxygen-5dfd148b5f3dfe5db7691b8dca017c828e800a3c.tar.gz Doxygen-5dfd148b5f3dfe5db7691b8dca017c828e800a3c.tar.bz2 |
Release-1.5.6-20080819
Diffstat (limited to 'doc/customize.doc')
-rw-r--r-- | doc/customize.doc | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/doc/customize.doc b/doc/customize.doc new file mode 100644 index 0000000..e8bc99a --- /dev/null +++ b/doc/customize.doc @@ -0,0 +1,248 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2008 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 customize Customizing the output + +Doxygen provides various levels of customization. +The \ref minor_tweaks "first section" discusses what to +do if you want to do minor tweaker to the look and feel of the output. +The \ref layout "next" section show how to reorder and hide certain +information on a page. +The \ref xmlgenerator "last" section show how to generate whatever output +you want based on the XML output produced by doxygen. + +\section minor_tweaks Minor Tweaks + +To simply tweak things like fonts or colors, margins, or other look \& feel +espects of the HTML output you can create a different +<a href="http://www.w3schools.com/css/default.asp">cascading style sheet</a>. +You can also let doxygen use a custom header and footer for each HTML +page it generates, for instance to include a logo or to make the +doxygen output blend in with the rest of the web site. + +To do this first run doxygen as follows: +\verbatim +doxygen -w html header.html footer.html customdoxygen.css +\endverbatim + +This will create 3 files: +- header.html is a HTML fragment which doxygen normally uses to start + a HTML page. Note that the fragment ends with a body tag and that is + contains a couple of commands of the form \$word. These will be replaced + by doxygen on the fly. +- footer.html is a HTML fragment which doxygen normally uses to end + a HTML page. Also here special commands can be used. This file contain the + link to www.doxygen.org and the body and html end tags. +- customdoxygen.css is the default cascading style sheet + used by doxygen. + +You should edit these files and then reference them from the config file. +\verbatim +HTML_HEADER = header.html +HTML_FOOTER = footer.html +HTML_STYLESHEET = customdoxygen.css +\endverbatim + +See the documentation of the \ref cfg_html_header "HTML_HEADER" tag +for more information about the possible meta commands. + +\note You should not put the style sheet in the HTML output directory. Treat +it is a source file. Doxygen will copy it for you. + +\note If you use images or other external content in a custom header you +need to make sure these end up in the HTML output directory yourself, +for instance by writing a script that runs doxygen can then copies the +images to the output. + + +\section layout Changing the layout of pages + +In some cases you may want to change the way the output is structured. +A different style sheet or custom headers and footers do not help in such +case. + +The solution doxygen provides is a layout file, which you can +modify and doxygen will use to control what information is presented, +in which order, and to some extent also how information is presented. +The layout file is an XML file. + +The default layout can be generated +by doxygen using the following command: +\verbatim +doxygen -l +\endverbatim +optionally the name of the layout file can be specified, if omitted +\c doxygenlayout.xml will be used. + +The toplevel structure of the file looks as follows: +\verbatim +<doxygenlayout version="1.0"> + <navindex> + ... + </navindex> + <class> + ... + </class> + <namespace> + ... + </namespace> + <file> + ... + </file> + <group> + ... + </group> + <directory> + ... + </directory> +</doxygenlayout> +\endverbatim + +The root tag of the XML is \c doxygenlayout, it has an attribute named +\c version, which will be used in the future to cope with changes that are +not backward compatible. + +The first section, enclosed by \c navindex tags represents the layout of +the navigation tabs displayed at the top of each HTML page. +Each tab is represented by a \c tab tag in the XML file. + +You can hide tabs by setting the \c visible attribute to \c no. +You can also override the default title of a tab by specifying it as +the value of the \c title attribute. If the title field is the empty string +(the default) then doxygen will fill in an appropriate title. +You can reorder the tabs by moving the tab tags in the XML file +within the \c navindex section and even change the tree structure. +Do not change the value of the \c type attribute however. +Only a fixed set of types are supported, each representing a link to a +specific index. + +The sections after \c navindex represent the layout of the different +pages generated by doxygen: +- The \c class section represents the layout of all pages generated for + documented classes, structs, unions, and interfaces. +- The \c namespace section represents the layout of all pages generated for + documented namespaces (and also Java packages). +- The \c file section represents the layout of all pages generated for + documented files. +- The \c group section represents the layout of all pages generated for + documented groups (or modules). +- The \c directory section represents the layout of all pages generated for + documented directories. + +Each XML tag within one of the above page sections represents a certain +piece of information. Some pieces can appear in each type of page, +others are specific for a certain type of page. +Doxygen will list the pieces in the order in which they appear +in the XML file. + +Some tags have a \c visible attribute which can be +used to hide the fragment from the generated output. +Note that the \c visible attribute is just a hint for doxygen. +If no relevant information is available for a certain piece it is +omitted even if it is set to \c yes. + +Some tags have a \c title attribute. This attribute can be used +to customize the title doxygen will use as a header for the piece. + +@warning at the moment you should not remove tags from the layout file +as a way to hide information. Doing so can cause broken links in the +generated output! + +At the moment the following generic tags are possible for each page: +<dl> +<dt>\c briefdescription + <dd>Represents the brief description on a page. +<dt>\c detaileddescription + <dd>Represents the detailed description on a page. +<dt>\c authorsection + <dd>Represents the author section of a page (only used for man pages). +<dt>\c memberdecl + <dd>Represents the quick overview of members on a page (member declarations). + This tag has child tags each representing a list of + members of a certain type. + The possible child tags are not listed in detail in the document, + but the name of the tag should be a good indication of the type + of members that the tag represents. +<dt>\c memberdef + <dd>Represents the detailed member list on a page (member definition). + Like the \c memberdecl tag, also this tag has a number of + possible child tags. +</dl> + +The class page has the following specific tags: +<dl> +<dt>\c includes + <dd>Represents the include file needed to obtain the definition for + this class. +<dt>\c inheritancegraph + <dd>Represents the inheritance relations for a class. + Note that the CLASS_DIAGRAM option determines + if the inheritance relation is a list of base and derived classes or + a graph. +<dt>\c collaborationgraph + <dd>Represents the collaboration graph for a class. +<dt>\c allmemberslink + <dd>Represents the link to the list of all members for a class. +<dt>\c usedfiles + <dd>Represents the list of files from which documentation for the class was + extracted. +</dl> + +The file page has the following specific tags: +<dl> +<dt>\c includes + <dd>Represents the list of \#include statements contained in this file. +<dt>\c includegraph + <dd>Represents the include dependency graph for the file. +<dt>\c includedbygraph + <dd>Represents the included by dependency graph for the file. +<dt>\c sourcelink + <dd>Represents the link to the source code of this file. +</dl> + +The group page has a specific \c groupgraph tag which represents the +graph showing the dependencies between groups. + +Similarily, the directory page has a specific \c directorygraph tag +which represents the graph showing the dependencies between the directories +based on the \#include relations of the files inside the directories. + +\section xmlgenerator Using the XML output + +If the above two methods still do not provide enough flexibility, you +can also use the XML output produced by doxygen as a basis to +generate the output you like. To do this set GENERATE_XML to YES. + +The XML output consists of an index file named \c index.xml which +lists all items extracted by doxygen with references to the other XML files +for details. The structure of the index is described by a schema file +\c index.xsd. All other XML files are described by the schema file +named \c compound.xsd. If you prefer one big XML file +you can combine the index and the other files using the +XSLT file \c combine.xslt. + +You can use any XML parser to parse the file or use the one that can be found +in the \c addon/doxmlparser directory of doxygen source distribution. +Look at \c addon/doxmlparser/include/doxmlintf.h for the interface of the +parser and in \c addon/doxmlparser/example for examples. + +The advantage of using the doxmlparser is that it +will only read the index file into memory and then only those XML +files that you implicitly load via navigating through the index. As a +result this works even for very large projects where reading all XML +files as one big DOM tree would not fit into memory. + + */ |