Skip to content

Sphinx should be aware of all.py to find its links #9128

@hivert

Description

@hivert

Though sphinx is perfectly working with target in the local module he isn't
able to find reference target from other modules even if they are exported in
all.py. For example, if I want to link Parent from anywhere but parent.pyx, I
have to write the full path (ie. :class:`~sage.structure.parent.Parent`)
even if it is imported in my module. I find this extremely annoying since, in
the task of improving the category doc, I'm setting up a lot of huge cross
references such as:

    :meth:`Algebras.ParentMethods.algebra_generators()
    <sage.categories.algebras.Algebras.ParentMethods.algebra_generators>`.

I would be very happy if I had to write only

    :meth:`Algebras.ParentMethods.algebra_generators`

The following patch should solve this issue

I set up intersphinx so that links to Python's doc are correctly
resolved. The patch
attachment: trac_9128-intersphinx_python_database-fh.patch contains Python's
crossref database downloaded from http://docs.python.org/objects.inv I'm also
using intersphinx to solve links to the reference manual from the other
documents.

New option for docbuild

I added the option --warn-links to the documentation build command as in

    sage -docbuild --warn-links reference htm

When the option is used, Sphinx will issue a warning, whenever a link is not resolved.

Extra features

Moreover, I add a reference target to every automatically created .rst
file associated to python source files. It can by used to set-up a link toward
the file and thus get the title rather than the module. For example
:ref:sage.categories.primer setup a link to the help page with title
"Elements, parents, and categories in Sage: a (draft of) primer" rather
than
sage.categories.primer which you get with the link
:mod:sage.categories.primer.

Apply both:

Note: order is irrelevant

Depends on #11251
Depends on #12490
Depends on #12572

CC: @nthiery @nexttime @novoselt @mwhansen

Component: documentation

Keywords: Sphinx links

Author: Florent Hivert

Reviewer: Andrey Novoseltsev, Nicolas M. Thiéry

Merged: sage-5.0.beta8

Issue created by migration from https://trac.sagemath.org/ticket/9128

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions