Cross-Reference¶
This section shows how to cross-reference documentation or code.
Documentation References¶
Ref Titles¶
The autosectionlabel Sphinx extension automatically internally adds labels to headings. So no need to explicitly manually add labels.
Examples
:ref:`PlantUML`
E.g. PlantUML
| 1 2 3 | ======================================================
PlantUML
======================================================
 | 
Ref Labels¶
If we want to reference something that isn’t a heading or section then we can add our own labels manually. Labels can be added anywhere. And these can be referenced from elsewhere.
Add label to target location
| 1 2 3 4 5 6 | .. _plantuml-label:
======================================================
PlantUML
======================================================
 | 
Reference the label
:ref:`plantuml-label`
E.g. PlantUML
Code References¶
We already have the code references from Doxygen already.
To reference them, we use Breathe’s rich set of directives:
- doxygenstruct 
- doxygenfunction 
- doxygenclass 
- doxygendefine 
- doxygenenum 
- doxygenenumvalue 
- doxygenfile 
- doxygengroup 
- doxygenindex 
- doxygennamespace 
- doxygeninterface 
- doxygentypedef 
- doxygenunion 
- doxygenvariable 
Examples are given here for our HelloWorld C source for:
- doxygenstruct 
- doxygenfunction 
Structure¶
.. doxygenstruct:: Hellomessage
:members:
gives
- 
struct Hellomessage
- A dummy struct - Public Members - 
char message[20]
- message to use to say hello 
 
- 
char 
for this structure
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** 
 *  @file hello-world.h
 */
#pragma once
/**
 * A dummy struct
 */
struct Hellomessage {
  /**
  * message to use to say hello
  */
	char message [20];
} hellomessage;
 | 
Function¶
.. doxygenfunction:: HelloWorld
gives
- 
int HelloWorld(void)
- brief explanation of hello-world.c - Return
- 1 
 
for this function
| 1 2 3 4 5 | /**
 * @brief	brief explanation of hello-world.c
 * @return 1
 */
int HelloWorld(void);
 |