Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to properly write cross-references to external documentation with intersphinx?

Tags:

I'm trying to add cross-references to external API into my documentation but I'm facing three different behaviors.

I am using sphinx(1.3.1) with Python(2.7.3) and my intersphinx mapping is configured as:

{ 'python': ('https://docs.python.org/2.7', None), 'numpy': ('http://docs.scipy.org/doc/numpy/', None), 'cv2' : ('http://docs.opencv.org/2.4/', None), 'h5py' : ('http://docs.h5py.org/en/latest/', None) } 

I have no trouble writing a cross-reference to numpy API with :class:`numpy.ndarray` or :func:`numpy.array` which gives me, as expected, something like numpy.ndarray.

However, with h5py, the only way I can have a link generated is if I omit the module name. For example, :class:`Group` (or :class:`h5py:Group`) gives me Group but :class:`h5py.Group` fails to generate a link.

Finally, I cannot find a way to write a working cross-reference to OpenCV API, none of these seems to work:

:func:`cv2.convertScaleAbs` :func:`cv2:cv2.convertScaleAbs` :func:`cv2:convertScaleAbs` :func:`convertScaleAbs` 

How to properly write cross-references to external API, or configure intersphinx, to have a generated link as in the numpy case?

like image 863
Gall Avatar asked Jun 19 '15 13:06

Gall


1 Answers

In addition to the detailed answer from @gall, I've discovered that intersphinx can also be run as a module:

python -m sphinx.ext.intersphinx 'http://python-eve.org/objects.inv' 

This outputs nicely formatted info. For reference: https://github.com/sphinx-doc/sphinx/blob/master/sphinx/ext/intersphinx.py#L390

like image 60
lingfish Avatar answered Oct 21 '22 09:10

lingfish