Adding Documentation¶
Building the documentation¶
When you clone the Manim repository from GitHub, you can access the
docs/
folder which contains the necessary files to build the
documentation.
To build the docs locally, open a CLI, enter the docs/
folder with the
cd
command and execute the following depending on your OS:
Windows:
./make.bat html
macOS and Linux:
make html
The first time you build the docs, the process will take several
minutes because it needs to generate all the .rst
(reST:
reStructured Text) files from scratch by reading and parsing all the
Manim content. The process becomes much shorter the next time, as it
rebuilds only the parts which have changed.
Sphinx library and extensions¶
Manim uses Sphinx for building the docs. It also makes use of Sphinx extensions such as:
Autodoc: imports Manim’s Python source code, extracts its docstrings and generates documentation from them.
Autosummary: a complement to Autodoc which adds a special directive
autosummary
, used in Manim to automatically document classes, methods, attributes, functions, module-level variables and exceptions. Autosummary makes use of Jinja templates, which Manim defines for autosummarizing classes and modules insidedocs/source/_templates/
.Graphviz extension for Sphinx: embeds graphs generated by the Graphviz module, which must be installed in order to render the inheritance diagrams in the Reference Manual.
Napoleon: enables Sphinx to read Google style docstrings and, in particular for Manim, NumPy style docstrings - see Adding Docstrings for more information.
Sphinx theme¶
The theme used for this website is Furo.
Custom Sphinx directives¶
Manim implements custom directives for use with Autodoc and Autosummary, which
are defined in docbuild
:
A directive for documenting type aliases and other module-level attributes. |
|
A directive for documenting colors in Manim. |
|
A directive for including Manim videos in a Sphinx document |