Convert reStructuredText markup to HTML format. Part of the DevTools Surf developer suite. Browse more tools in the Converters collection.
Use Cases
Convert legacy Python project documentation from RST to HTML for standalone web hosting.
Preview RST formatting without a full Sphinx build pipeline.
Extract HTML content from RST-formatted README files for display in non-Sphinx contexts.
Convert RST content to HTML as part of a migration to a Markdown-based documentation system.
Tips
Use rst2html (docutils) to verify local rendering matches the converter output — docutils is the reference RST implementation.
RST code blocks require consistent indentation — a single-space inconsistency in an indented block causes a parse error that disrupts the entire document.
For Sphinx documentation, note that Sphinx extends RST with custom directives (.. toctree::, .. automodule::) that standard RST-to-HTML converters will not render.
Fun Facts
reStructuredText was created by David Goodger in 2001 as a standardized, parseable plain-text format for Python documentation, addressing the fragmentation of informal text conventions in the Python community.
Python's official documentation was written in LaTeX until 2008, when it was migrated to RST with Sphinx — a migration that took over a year and involved converting thousands of pages.
Sphinx, the documentation generator built on RST, was created by Georg Brandl in 2007 and is now used by Django, NumPy, SQLAlchemy, and thousands of other projects for API documentation.
FAQ
What's the difference between RST and Markdown?
RST is more structured and consistent (one correct way to do most things) but has steeper syntax complexity. Markdown has simpler syntax but many incompatible flavors. Python projects use RST; JavaScript and general web projects use Markdown.
Will Sphinx-specific directives convert correctly?
No — directives like .. toctree::, .. note::, and .. automodule:: are Sphinx extensions, not standard RST. The converter processes standard RST only; Sphinx-specific markup will appear as unprocessed blocks.