An .rst file is a reStructuredText document: plain-text markup where headings are made by underlining a line with punctuation, and where an extensible directive syntax lets a document embed anything the processor knows how to render. It is the native language of Python's documentation.
Private for supported formats — processed in your browser
Convert supported files
Runs on your device
+
Drop RST files here
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.
David Goodger designed reStructuredText in 2002 as part of the Docutils project, aiming for markup readable enough that a plain-text file was already a decent document. Sphinx, released in 2008 to document Python itself, built cross-referencing, indexing and multi-format output on top of it, and in doing so made reST the standard for Python library documentation and for Read the Docs.
How RST works
Headings are formed by underlining text with a punctuation character; the character does not matter, but the order in which characters first appear defines the level hierarchy for the whole document.
The underline must be at least as long as the title, which is the single most common source of parser warnings.
Directives use the .. name:: form and are the extension mechanism — Sphinx adds dozens, so a file may be unreadable without knowing which processor it targets.
Indentation is significant and defines block structure, so a stray space changes meaning.
Roles like :ref: and :class: provide inline semantics that Markdown has no equivalent for.
When to use RST
Python package documentation, especially anything built with Sphinx
Read the Docs projects and their cross-referenced API documentation
Converting legacy Python documentation to Markdown for a new platform
Extracting prose from a documentation tree for review or translation
Strengths and limitations
Strengths
Extensible through directives without inventing new syntax
Strong semantic cross-referencing, which plain Markdown cannot express
A single reference implementation, so behaviour is predictable
Limitations
Underline-based headings are fiddly and easy to get subtly wrong
Significant indentation makes editing error-prone
Files that rely on Sphinx directives are not really portable reST
Compatibility
Docutils, Sphinx, GitHub, GitLab, PyPI and Read the Docs all render reStructuredText. Novus Convert reads it locally without raw directives or file includes — both of which would otherwise let a document pull in arbitrary content — and converts to HTML, Markdown and plain text.
Docinfo fields are read as document metadata; the targets have no structured field to carry them into.