mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2026-10-13 00:42:11 -05:00
565d4104d5121f111bf1a32d4d31f4b92c5aa36a
This commit fixes the issue of `objects.inv` denoting object names, whilst the `external` role only allows for role names.
As an example, take the `objects.inv` for the sphinx documentation, which contains:
```
py:function
compile : usage/domains/python.html#compile
```
A user might understandably expect that they could reference this using `` :external:py:function:`compile` ``, but actually this would previously error with:
```
WARNING: role for external cross-reference not found: py:function
```
this is because, `function` is the object type, yet `external` expects the related role name `func`.
It should not be necessary for the user to know about this distinction,
so in this commit, we add logic, to first look if the name relates to a role name (as previous, to not be back-breaking) but, if not, then also look if the name relates to an object that has a known role and, if so, use that.
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
======== Sphinx ======== .. image:: https://img.shields.io/pypi/v/sphinx.svg :target: https://pypi.org/project/Sphinx/ :alt: Package on PyPI .. image:: https://github.com/sphinx-doc/sphinx/actions/workflows/main.yml/badge.svg :target: https://github.com/sphinx-doc/sphinx/actions/workflows/main.yml :alt: Build Status .. image:: https://readthedocs.org/projects/sphinx/badge/?version=master :target: https://www.sphinx-doc.org/ :alt: Documentation Status .. image:: https://img.shields.io/badge/License-BSD%202--Clause-blue.svg :target: https://opensource.org/licenses/BSD-2-Clause :alt: BSD 2 Clause **Sphinx makes it easy to create intelligent and beautiful documentation.** Sphinx uses reStructuredText as its markup language, and many of its strengths come from the power and straightforwardness of reStructuredText and its parsing and translating suite, the Docutils. Features ======== * **Output formats**: HTML, PDF, plain text, EPUB, TeX, manual pages, and more * **Extensive cross-references**: semantic markup and automatic links for functions, classes, glossary terms and similar pieces of information * **Hierarchical structure**: easy definition of a document tree, with automatic links to siblings, parents and children * **Automatic indices**: general index as well as a module index * **Code highlighting**: automatic highlighting using the Pygments highlighter * **Templating**: Flexible HTML output using the Jinja 2 templating engine * **Extension ecosystem**: Many extensions are available, for example for automatic function documentation or working with Jupyter notebooks. * **Language Support**: Python, C, C++, JavaScript, mathematics, and many other languages through extensions. For more information, refer to `the documentation`_. Installation ============ The following command installs Sphinx from the `Python Package Index`_. You will need a working installation of Python and pip. .. code-block:: sh pip install -U sphinx Contributing ============ We appreciate all contributions! Refer to `the contributors guide`_ for information. .. _the documentation: https://www.sphinx-doc.org/ .. _the contributors guide: https://www.sphinx-doc.org/en/master/internals/contributing.html .. _Python Package Index: https://pypi.org/project/Sphinx/
Languages
Python
72.6%
JavaScript
18.9%
TeX
5.5%
Jinja
2.2%
HTML
0.5%
Other
0.2%