|
DoxyPress
2.0.0
|
DoxyPress has a command to generate a ‘see also’ section which shows links to relate documentation. Refer to \sa.
For LaTeX documentation a reference to the page number is written instead of a link. Furthermore, the index at the end of the document can be used to quickly find the documentation for a member, class, namespace, or file.
For man pages no reference information is generated.
The next sections show how auto links are generated to the various documented entities in a source file.
For HTML, DoxyPress will automatically replace any URLs and mail addresses found in the documentation by links.
To manually specify a link use the HTML 'a' tag shown below. DoxyPress will automatically translate this tag for other output formats.
<a href="linkURL">link text</a>
All words in the documentation which correspond to a documented class and contain at least one non-lower case character will automatically be replaced by a link to the page containing the documentation of the class.
An auto link can be prevented for individual cases by adding a % character in front of the word.
To link to an all lower case symbol, use \ref.
All words which contain a dot, which is not the last character in the word are considered to be file names. If the word is indeed the name of a documented input file, a link will automatically be created to the documentation of that file.
Links to functions are created if one of the following patterns is found:
<functionName>"("<argument-list>")" <functionName>"()" "::"<functionName> (<className>"::")*<functionName>"("<argument-list>")" (<className>"::")*<functionName>"("<argument-list>")"<modifiers> (<className>"::")*<functionName>"()" (<className>"::")*<functionName> For member functions the class scope (as used in patterns 4 to 7 above) may be omitted if:
The following examples can be linked in the same way as described in the previous section. For clarity it is advised to use pattern 3 or 7 shown in the preceding section.
/*!
\file autolink.cpp
Testing automatic link generation.
A link to a member of the Test class: Test::member
Specific links to overloaded methods:
Test::member(int) and Test#member(int, int)
A link to a protected member variable of Test: Test#var
A link to the global enumeration type #GlobEnum.
A link to the define #ABS(x)
A link to the destructor of the Test class: Test::~Test
A link to the typedef ::B
A link to the enumeration type Test::EType
A link to some enumeration values Test::Val1 and ::GVal2
*/
/*!
This documentation block belongs to the class Test, so no link to Test is generated.
Two ways to link to a constructor are: #Test and Test()
Links to the destructor are: #~Test and ~Test()
A link to a member in this class: member()
Specific links to overloaded methods:
member(int) and member(int, int)
A link to the variable #var
A link to the global typedef ::B
A link to the global enumeration type #GlobEnum
A link to the define ABS(x)
A link to a variable \link #var using another text\endlink as a link.
A link to the enumeration type #EType
A link to some enumeration values: \link Test::Val1 Val1 \endlink and ::GVal1
And last but not least a link to a file: autolink.cpp
\sa Inside a see also section every word is checked, so EType,
Val1, GVal1, ~Test and member will be replaced by links in HTML.
*/
class Test
{
public:
Test(); //!< constructor
~Test(); //!< destructor
void member(int); /**< A member function. Details. */
void member(int,int); /**< An overloaded member function. Details */
/** An enum type. More details */
enum EType {
Val1, /**< enum value 1 */
Val2 /**< enum value 2 */
};
protected:
int var; /**< A member variable */
};
/*! details. */
Test::Test() { }
/*! details. */
Test::~Test() { }
/*! A global variable. */
int globVar;
/*! A global enum. */
enum GlobEnum {
GVal1, /*!< global enum value 1 */
GVal2 /*!< global enum value 2 */
};
/*!
* A macro definition.
*/
#define ABS(x) (((x)>0)?(x):-(x))
typedef Test B;
/*! \fn typedef Test B
* A type definition.
*/
Typedefs which involve classes, structs and unions, like
create an alias for StructName, so links will be generated to StructName, when either StructName itself or TypeName is encountered.
/*!
\file restypedef.cpp
An example of resolving typedefs.
*/
/*!
\struct CoordStruct
A coordinate pair.
*/
struct CoordStruct
{
/*! The x coordinate */
float x;
/*! The y coordinate */
float y;
};
/*! Creates a type name for CoordStruct */
typedef CoordStruct Coord;
/*!
This function returns the addition of \a c1 and \a c2, i.e: (c1.x+c2.x,c1.y+c2.y)
*/
Coord add(Coord c1,Coord c2)
{
}