Search code examples
markdownpython-sphinxrestructuredtext

Render output from markdown file inside .rst file


I am using Sphinx for documenting a Python project and would like to have content from an existing .md file display inside of a .rst file. ( I have already set up my conf.py to allow for markdown).

For example, I have a file called tutorial.md. I also have a .rst file as follows:

ml
==

w2v
^^^

.. automodule:: package.ml.w2v
:members:

I would like be able to include a link to tutorial.md as follows, such that the content of tutorial.md will display in the file upon rendering. This can be achieved with the following:

ml
==

Tutorial
--------
.. include:: ../tutorial.md

w2v
^^^

.. automodule:: package.ml.w2v
:members:

However, the resulting content looks bad, as it doesn't render the markdown as markdown.

I realize I can avoid this issue by writing the entire documentation as .md, but this exercise has left me with the following question:

Is it possible to have .md content render as markdown, inside of an .rst file?


Solution

  • NOTE

    The mr2 extension seems to be abandoned. You can use the actively-maintained fork m2r2 instead.

    Original Answer:

    Try M2R sphinx extension.

    https://github.com/miyakogi/m2r#sphinx-integration

    After install m2r and change conf.py, just change .. include to .. mdinclude would work well.

    ml
    ==
    
    Tutorial
    --------
    .. mdinclude:: ../tutorial.md
    
    w2v
    ^^^
    
    .. automodule:: package.ml.w2v
    :members: