Sphinx (documentation generator)

Last updated
Sphinx
Developer(s) Georg Brandl
Initial releaseMarch 21, 2008 (2008-03-21)
Stable release
7.2.6 [1] / September 13, 2023;10 days ago (2023-09-13)
Repository
Written in Python
Operating system Cross-platform
Type Documentation generator
License BSD
Website www.sphinx-doc.org

Sphinx is a documentation generator written and used by the Python community. It is written in Python, and also used in other environments.

Contents

Purpose and function

Sphinx converts reStructuredText files into HTML websites and other formats including PDF, EPub, Texinfo and man.

reStructuredText is extensible, and Sphinx exploits its extensible nature through a number of extensions – for autogenerating documentation from source code, writing mathematical notation or highlighting source code, etc.

HTML themes

Sphinx provides the ability to apply themes to HTML and HTML-based formats. Sphinx has several built-in themes, including alabaster, classic, sphinxdoc, and scrolls. [2] Popular themes that can be installed as Python modules include: [3]

History and use

The first public release, version 0.1.61611, was announced on March 21, 2008. [8] It was developed for, and is used extensively by, the Python project for documentation. [9]

Since its introduction in 2008, Sphinx has been adopted by many other important Python projects, including Bazaar, SQLAlchemy, MayaVi, SageMath, SciPy, Django and Pylons. It is also used for the Blender user manual [10] and Python API documentation. [11]

In 2010, Eric Holscher announced [12] the creation of the Read the Docs project as part of an effort to make maintenance of software documentation easier. Read the Docs automates the process of building and uploading Sphinx documentation after every commit.

Linux kernel

The Linux kernel's documentation subsystem underwent changes in 2016. Starting in the 4.7 cycle, the documentation started switching over to use Sphinx. [13]

See also

Related Research Articles

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

<span class="mw-page-title-main">Doxygen</span> Free software for generating software documentation from source code

Doxygen is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxygen uses its parse tree to generate diagrams and charts of the code structure. Doxygen can cross reference documentation and code, so that the reader of a document can easily refer to the actual code.

reStructuredText is a file format for textual data used primarily in the Python programming language community for technical documentation.

Pygame is a cross-platform set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.

<span class="mw-page-title-main">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

Google Developers is Google's site for software development tools and platforms, application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers using Google's developer products.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

AsciiDoc is a human-readable document format, semantically equivalent to DocBook XML, but using plain-text mark-up conventions. AsciiDoc documents can be created using any text editor and read “as-is”, or rendered to HTML or any other format supported by a DocBook tool-chain, i.e. PDF, TeX, Unix manpages, e-books, slide presentations, etc. Common file extensions for AsciiDoc files are txt and adoc.

JSDoc is a markup language used to annotate JavaScript source code files. Using comments containing JSDoc, programmers can add documentation describing the application programming interface of the code they're creating. This is then processed, by various tools, to produce documentation in accessible formats like HTML and Rich Text Format. The JSDoc specification is released under CC BY-SA 3.0, while its companion documentation generator and parser library is free software under the Apache License 2.0.

<span class="mw-page-title-main">IPython</span> Advanced interactive shell for Python

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers introspection, rich media, shell syntax, tab completion, and history. IPython provides the following features:

<span class="mw-page-title-main">SymPy</span>

SymPy is an open-source Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live or SymPy Gamma. SymPy is simple to install and to inspect because it is written entirely in Python with few dependencies. This ease of access combined with a simple and extensible code base in a well known language make SymPy a computer algebra system with a relatively low barrier to entry.

Benevolent dictator for life (BDFL) is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community. The phrase originated in 1995 with reference to Guido van Rossum, creator of the Python programming language. Shortly after Van Rossum joined the Corporation for National Research Initiatives, the term appeared in a follow-up mail by Ken Manheimer to a meeting trying to create a semi-formal group that would oversee Python development and workshops; this initial use included an additional joke of naming Van Rossum the "First Interim BDFL". Van Rossum announced in July 2018 that he would be stepping down as BDFL of Python without appointing a successor, effectively eliminating the title within the Python community structure.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

<span class="mw-page-title-main">Flask (web framework)</span> Python web framework

Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers, form validation, upload handling, various open authentication technologies and several common framework related tools.

<span class="mw-page-title-main">PyScripter</span>

PyScripter is a free and open-source Python integrated development environment (IDE) for Windows. It is built with Delphi's Object Pascal and Python.

<span class="mw-page-title-main">Numba</span>

Numba is an open-source JIT compiler that translates a subset of Python and NumPy into fast machine code using LLVM, via the llvmlite Python package. It offers a range of options for parallelising Python code for CPUs and GPUs, often with only minor code changes.

The following table compares notable software frameworks, libraries and computer programs for deep learning.

<span class="mw-page-title-main">Read the Docs</span>

Read the Docs is an open-sourced free software documentation hosting platform. It generates documentation written with the Sphinx documentation generator, MkDocs, or Jupyter Book.

ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains: general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), heterogeneous computing. It offers several programming models: HIP, OpenMP/Message Passing Interface (MPI), OpenCL.

CuPy is an open source library for GPU-accelerated computing with Python programming language, providing support for multi-dimensional arrays, sparse matrices, and a variety of numerical algorithms implemented on top of them. CuPy shares the same API set as NumPy and SciPy, allowing it to be a drop-in replacement to run NumPy/SciPy code on GPU. CuPy supports NVIDIA CUDA GPU platform, and AMD ROCm GPU platform starting in v9.0.

References

  1. "Changes in Sphinx". Sphinx.
  2. "HTML Theming". Sphinx documentation. Georg Brandl and the Sphinx team. Retrieved 2022-06-25.
  3. "Sphinx Themes". Write the Docs. Retrieved 2022-06-25.
  4. "Read the Docs Sphinx Theme". sphinx-rtd-theme code repository. GitHub. Retrieved 2022-06-25.
  5. "Sphinx Bootstrap Theme". sphinx_bootstrap_theme code repository. GitHub. Retrieved 2022-06-25.
  6. "Guzzle Sphinx Theme". guzzle_sphinx_theme code repository. GitHub. Retrieved 2022-06-25.
  7. "Documatt Sphinx Themes Collection". Documatt.com. Retrieved 2022-06-25.
  8. "Sphinx is released! » And now for something completely Pythonic..." And now for something completely Pythonic... Georg Brandl. Archived from the original on 2012-03-22. Retrieved 2011-04-03.
  9. "About these documents Python v2.7.1 documentation". Python documentation. Python Software Foundation. Retrieved 2011-04-03.
  10. "Blender User Manual". Blender Wiki. Blender Foundation.
  11. "Dev:2.5/Py/API/Generating API Reference - BlenderWiki!". Blender Foundation. Blender Foundation.
  12. "Announcing Read The Docs". Python Software Foundation News. Eric Holscher. Retrieved 2015-02-15.
  13. "Kernel documentation update". LWN.net . 2016-11-02.