Sphinx

# 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

Linux Kernel

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.

The Basics

- Installing Sphinx
  - PyPI package
  - Conda package
  - OS-specific package manager
  - Docker
  - Installation of the latest development release
  - Installation from source
- Getting started
  - Setting up the documentation sources
  - Defining document structure
  - Adding content
  - Running the build
  - Documenting objects
  - Basic configuration
  - Autodoc
  - Intersphinx
  - More topics to be covered
- Build your first project
  - Getting started
  - First steps to document your project using Sphinx
  - More Sphinx customization
  - Narrative documentation in Sphinx
  - Describing code in Sphinx
  - Automatic documentation generation from code
  - Appendix: Deploying a Sphinx project online
  - Where to go from here

## User guide

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.

User guide

- Using Sphinx
  - reStructuredText
  - Markdown
  - Cross-references
  - Configuration
  - Builders
  - Domains
  - Extensions
  - HTML theming
  - Internationalization
  - Sphinx Web Support
- Extending Sphinx
  - Tutorials
  - How-tos
  - HTML theme development
- Sphinx API
  - Important objects
  - Build phases
  - Extension metadata
  - APIs used for writing extensions
- LaTeX customization
  - The `latex_elements` configuration setting
  - The `sphinxsetup` configuration setting
  - Additional CSS-like `'sphinxsetup'` keys
  - LaTeX macros and environments

## 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.

Community

- Get support
- Contribute to Sphinx
  - Contributing to Sphinx
  - Sphinx’s release process
  - Organization of the Sphinx project
  - Sphinx Code of Conduct
- Sphinx FAQ
  - How do I…
  - Using Sphinx with…
  - Sphinx vs. Docutils
  - Epub info
  - Texinfo info
- Sphinx authors
  - Maintainers
  - Contributors
  - Former maintainers

## 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 guide.

Reference

- Command-line tools
  - Core applications
  - Additional applications
- Configuration
  - Project tags
  - Project information
  - General configuration
  - Builder options
  - Domain options
  - Extension options
  - Example configuration file
- Extensions
  - Built-in extensions
  - Third-party extensions
- reStructuredText
  - reStructuredText Primer
  - Roles
  - Directives
  - Field Lists
- Glossary
- Changelog
  - Release 8.3.0 (in development)
  - Prior releases
- Projects using Sphinx
  - Documentation using the alabaster theme
  - Documentation using the classic theme
  - Documentation using the sphinxdoc theme
  - Documentation using the nature theme
  - Documentation using another builtin theme
  - Documentation using Read the Docs Sphinx Theme
  - Documentation using Sphinx Bootstrap Theme
  - Documentation using PyData Sphinx Theme
  - Documentation using Furo theme
  - Documentation using a custom theme or integrated in a website
  - Homepages and other non-documentation sites
  - Books produced using Sphinx
  - Theses produced using Sphinx
  - Projects integrating Sphinx functionality