Welcome to sphinxcontrib-doxylink's documentation
Doxylink is a Sphinx extension to link to external Doxygen API documentation.
It allows you to specify C++ symbols and it will convert them into links to the HTML page of their Doxygen documentation.
You use Doxylink like:
:polyvox:`Array <PolyVox::Array>`. :polyvox:`PolyVox::Volume` You use :qtogre:`QtOgre::Log` to log events for the user. :polyvox:`tidyUpMemory(int) <tidyUpMemory>` will reduce memory usage. :polyvox:`PolyVox::Array::operator`
Where polyvox and qtogre roles are defined by the :confval:`doxylink` configuration value.
Namespaces, classes etc.
For non-functions (i.e. namespaces, classes, enums, variables) you simply pass in the name of the symbol. If you pass in a partial symbol, e.g. `Volume` when you have a symbol in C++ called PolyVox::Utils::Volume then it would be able to match it as long as there is no ambiguity (e.g. with another symbol called PolyVox::Old::Volume).
For functions there is more to be considered due to C++'s ability to overload a function with multiple signatures. If you want to link to a function and either that function is not overloaded or you don't care which version of it you link to, you can simply give the name of the function with no parentheses:
Depending on whether you have set the :confval:`add_function_parentheses` configuration value, Doxylink will automatically add on parentheses to that it will be printed as PolyVox::Volume::getVoxelAt().
If you want to link to a specific version of the function, you must provide the correct signature. For a requested signature to match on in the tag file, it must exactly match a number of features:
- The types must be correct, including all qualifiers, e.g. unsigned const int
- You must include any pointer or reference labeling, e.g. char*, const QString & or int **
- You must include whether the function is const, e.g. getx() const
The argument list is not whitespace sensitive (any more than C++ is anyway) and the names of the arguments and their default values are ignored so the following are all considered equivalent:
:myapi:`foo( const QString & text, bool recalc, bool redraw = true )` :myapi:`foo(const QString &foo, bool recalc, bool redraw = true )` :myapi:`foo( const QString& text, bool recalc, bool redraw )` :myapi:`foo(const QString&,bool,bool)`
When making a match, Doxylink splits up the requested string into the function symbol and the argument list. If it finds a match for the function symbol part but not for the argument list then it will return a link to any one of the function versions.
When generating your Doxygen documentation, you need to instruct it to create a 'tag' file. This is an XML file which contains the mapping between symbols and HTML files. To make Doxygen create this file ensure that you have a line like:
GENERATE_TAGFILE = PolyVox.tag
in your Doxyfile.
|copyright:||Copyright 2010 by Matt Williams|
|license:||BSD, see LICENSE for details.|