Sphinx

Create intelligent and beautiful documentation with ease

📝 Rich Text Formatting

Author in reStructuredText or MyST Markdown to create highly structured technical documents, including tables, highlighted code blocks, mathematical notations, and more.

🔗 Powerful Cross-Referencing

Create cross-references within your project, and even across different projects. Include references to sections, figures, tables, citations, glossaries, code objects, and more.

📚 Versatile Documentation Formats

Generate documentation in the preferred formats of your audience, including HTML, LaTeX (for PDF), ePub, Texinfo, and more.

🎨 Extensive Theme Support

Create visually appealing documentation, with a wide choice of built-in and third-party HTML themes and the ability to customize or create new themes.

🔌 Fully Extensible

Add custom functionality, via robust extension mechanisms with numerous built-in and third-party extensions available for tasks like creating diagrams, testing code, and more.

🛠️ Automatic API Documentation

Generate API documentation for Python, C++ and other software domains, manually or automatically from docstrings, ensuring your code documentation stays up-to-date with minimal effort.

🌍 Internationalization (i18n)

Add documentation translations multiple languages to reach a global audience.

🌟 Active Community and Support

Benefit from an active community, with numerous resources, tutorials, forums, and examples.


As used by:

Python Logo

Python Foundation

Linux Logo

Linux Kernel

Jupyter Logo

Project Jupyter


See below for how to navigate Sphinx’s documentation.

See also

The Sphinx documentation Table of Contents has a full list of this site’s pages.

Get started

These sections cover the basics of getting started with Sphinx, including creating and building your own documentation from scratch.

User Guides

These sections cover various topics in using and extending Sphinx for various use-cases. They are a comprehensive guide to using Sphinx in many contexts and assume more knowledge of Sphinx. If you are new to Sphinx, we recommend starting with Get started.

Community guide

Sphinx is community supported and welcomes contributions from anybody. The sections below should help you get started joining the Sphinx community as well as contributing.

See the Sphinx contributors’ guide if you would like to contribute to the project.

Reference guide

Reference documentation is more complete and programmatic in nature, it is a collection of information that can be quickly referenced. If you would like usecase-driven documentation, see Get started or User Guides.