2.0 KiB
Doxygen integration
clang-uml diagrams can be easily added to the Doxygen documentation using the
image tag, however Doxygen does not
support the clang-uml specific commands, which
will appear in the documentation unprocessed.
The best solution to this is to tell Doxygen to ignore them, by adding the following lines to the Doxygen config file:
ALIASES += uml=""
ALIASES += uml{1}=""
ALIASES += uml{2}=""
ALIASES += uml{3}=""
Furthermore, Doxygen adds images to HTML documentation as <img src=""/>,
which disables interactive links in SVG diagrams. One way to go around it
is to use a special command for these images, for instance:
ALIASES += embed{1}="\htmlonly <embed src=\"\1\"/> \endhtmlonly"
and then use the following in the source code comments:
/**
* @brief Base class for all diagram models
*
* @embed{diagram_hierarchy_class.svg}
*/
class diagram {
public:
// ...
This directive in the configuration file will add the SVG diagrams using
<embed> HTML tag, and enable the links in the diagram on most browsers.
Finally, to have clang-uml generate links from diagram elements such as classes
or packages to Doxygen pages, it is only necessary to add the following
configuration file option:
generate_links:
link: "{% if existsIn(element, \"doxygen_link\") %}{{ element.doxygen_link }}{% endif %}"
tooltip: "{% if existsIn(element, \"comment\") and existsIn(element.comment, \"brief\") %}{{ abbrv(trim(replace(element.comment.brief.0, \"\\n+\", \" \")), 256) }}{% else %}{{ element.name }}{% endif %}"
This option will tell clang-uml to generate a link to a local Doxygen
documentation page, provided that it is possible to generate it. Currently,
this only works for diagram elements, it will not work for instance
for individual methods.