How can I link/reference another reST file in the documentation?

Python SphinxRestructuredtextRead the-Docs

Python Sphinx Problem Overview


I have simply no idea on how can I link to another document in the reST file.

I want to link a file named install.rst to my quickstart guide in a paragraph. I don't know how can I achieve this.

Please can you also refer to a great resource from where I can look up syntax for rest. The default quickstart is a little boring and not involves great depth discussion of using rest with sphinx.

The doc in question is : http://todx.rtfd.io

Python Sphinx Solutions


Solution 1 - Python Sphinx

To create links between different reStructuredText (.rst) files you can use the inline markup provided by sphinx. See the documentation under the heading Cross-referencing documents

on top of the file you define its label

.. _my-reference-label:

then you can link to it from other documents using

:ref:`my-reference-label`.

I do not believe you need to use the intersphinx extension, since it is for links between different projects. With this method you can link between different .rst files using their relative paths as described in the documentaion link above.

Solution 2 - Python Sphinx

I write the link to another document using this:

:doc:`my document <../my_doc>` 

../my_doc is the path to my my_doc.rst file.

I also have inter-sphinx extension in my conf.py file.

extensions = ['sphinx.ext.intersphinx']

Solution 3 - Python Sphinx

Simplifying @eme-eme's answer, you can just do:

:doc:`path/to/document`

You don't need to enclose the path in <> and provide a text to be displayed. In this case, a top-level header from the referenced document will be displayed as a link.

You don't need inter-sphinx extension for that.

Solution 4 - Python Sphinx

To link from one page (.rst file) in your project to another page (different .rst file) use the following inline format:

See :ref: `topLevelHeadingofOtherPage`

For example:

See :ref:`Perform Bulk Actions`.

That's it. I agree, this information is hard to find in the Sphinx guide. It's because it's so simple I think that people assume you want to do something far more complicated.

Solution 5 - Python Sphinx

An existing file {example.rst} may be linked to with the following syntax:

:ref:`Optional Link text <example>`

However, pop this inside a topic or even a bullet point and behaviour may alter. So, you can refer to the final built file:

`Optional Link text <example.html>`_

Here is a great guide

Solution 6 - Python Sphinx

To referecnce other files I had to include the following in the conf.py. I took the code from the docs of Pillow(PIL fork) here.

extensions = ['sphinx.ext.intersphinx']

I think the inter-sphinx extension came to my help. It linked across the other doc pages.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAditya ultraView Question on Stackoverflow
Solution 1 - Python SphinxRyszard CetnarskiView Answer on Stackoverflow
Solution 2 - Python SphinxEme EmeView Answer on Stackoverflow
Solution 3 - Python Sphinxmichcio1234View Answer on Stackoverflow
Solution 4 - Python SphinxSimon CrumView Answer on Stackoverflow
Solution 5 - Python Sphinxm4sterbunnyView Answer on Stackoverflow
Solution 6 - Python SphinxAditya ultraView Answer on Stackoverflow