Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 646
Aditya ultra Avatar asked May 31 '16 19:05

Aditya ultra


People also ask

What is Toctree?

The toctree directive is the central element. Note. Simple “inclusion” of one file in another can be done with the include directive. Note. To create table of contents for current document (.

How do you comment in RST?

For comments, add 2 periods .. followed by a newline and then your comment indented.


5 Answers

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.

like image 69
Ryszard Cetnarski Avatar answered Oct 06 '22 04:10

Ryszard Cetnarski


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']
like image 36
Eme Eme Avatar answered Oct 06 '22 02:10

Eme Eme


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.

like image 38
michcio1234 Avatar answered Oct 06 '22 04:10

michcio1234


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

like image 20
m4sterbunny Avatar answered Oct 06 '22 03:10

m4sterbunny


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.

like image 34
Simon Crum Avatar answered Oct 06 '22 03:10

Simon Crum