2008-03-25 14:20:26 -05:00
|
|
|
.. _writing-builders:
|
|
|
|
|
2014-01-20 10:21:44 -06:00
|
|
|
Builder API
|
|
|
|
===========
|
2008-03-16 06:19:26 -05:00
|
|
|
|
2008-11-29 13:04:11 -06:00
|
|
|
.. currentmodule:: sphinx.builders
|
2008-06-18 13:46:46 -05:00
|
|
|
|
|
|
|
.. class:: Builder
|
2008-03-16 06:19:26 -05:00
|
|
|
|
|
|
|
This is the base class for all builders.
|
|
|
|
|
2024-06-19 07:51:20 -05:00
|
|
|
It follows this basic workflow:
|
|
|
|
|
2024-06-20 03:40:22 -05:00
|
|
|
.. graphviz:: /_static/diagrams/sphinx_build_flow.dot
|
2024-06-19 07:51:20 -05:00
|
|
|
:caption: UML for the standard Sphinx build workflow
|
|
|
|
|
|
|
|
.. rubric:: Overridable Attributes
|
|
|
|
|
|
|
|
These attributes should be set on builder sub-classes:
|
2017-04-14 04:01:09 -05:00
|
|
|
|
|
|
|
.. autoattribute:: name
|
|
|
|
.. autoattribute:: format
|
2017-12-28 14:45:02 -06:00
|
|
|
.. autoattribute:: epilog
|
2021-09-17 11:26:12 -05:00
|
|
|
.. autoattribute:: allow_parallel
|
2017-04-14 04:01:09 -05:00
|
|
|
.. autoattribute:: supported_image_types
|
2018-01-29 07:40:49 -06:00
|
|
|
.. autoattribute:: supported_remote_images
|
|
|
|
.. autoattribute:: supported_data_uri_images
|
|
|
|
.. autoattribute:: default_translator_class
|
2017-04-14 04:01:09 -05:00
|
|
|
|
2024-06-19 07:51:20 -05:00
|
|
|
.. rubric:: Core Methods
|
|
|
|
|
|
|
|
These methods are predefined and should generally not be overridden,
|
|
|
|
since they form the core of the build process:
|
2008-03-16 06:19:26 -05:00
|
|
|
|
|
|
|
.. automethod:: build_all
|
|
|
|
.. automethod:: build_specific
|
|
|
|
.. automethod:: build_update
|
|
|
|
.. automethod:: build
|
2024-06-19 07:51:20 -05:00
|
|
|
.. automethod:: read
|
|
|
|
.. automethod:: read_doc
|
|
|
|
.. automethod:: write_doctree
|
2008-03-16 06:19:26 -05:00
|
|
|
|
2024-06-19 07:51:20 -05:00
|
|
|
.. rubric:: Overridable Methods
|
|
|
|
|
|
|
|
These must be implemented in builder sub-classes:
|
2008-03-16 06:19:26 -05:00
|
|
|
|
|
|
|
.. automethod:: get_outdated_docs
|
|
|
|
.. automethod:: prepare_writing
|
|
|
|
.. automethod:: write_doc
|
2024-06-19 07:51:20 -05:00
|
|
|
.. automethod:: get_target_uri
|
|
|
|
|
|
|
|
These methods can be overridden in builder sub-classes:
|
|
|
|
|
|
|
|
.. automethod:: init
|
|
|
|
.. automethod:: write
|
|
|
|
.. automethod:: copy_assets
|
|
|
|
.. automethod:: get_relative_uri
|
2008-03-16 06:19:26 -05:00
|
|
|
.. automethod:: finish
|
2008-12-26 13:17:59 -06:00
|
|
|
|
2024-06-19 07:51:20 -05:00
|
|
|
.. rubric:: Attributes
|
|
|
|
|
|
|
|
Attributes that are callable from the builder instance:
|
2019-03-09 01:46:41 -06:00
|
|
|
|
|
|
|
.. attribute:: events
|
|
|
|
|
|
|
|
An :class:`.EventManager` object.
|
2024-10-06 16:54:02 -05:00
|
|
|
|
|
|
|
.. rubric:: Overridable Attributes (extensions)
|
|
|
|
|
|
|
|
Builder sub-classes can set these attributes to support built-in extensions:
|
|
|
|
|
|
|
|
.. attribute:: supported_linkcode
|
|
|
|
|
|
|
|
By default, the :mod:`linkcode <sphinx.ext.linkcode>` extension will
|
|
|
|
only inject references for an ``html`` builder.
|
|
|
|
The ``supported_linkcode`` attribute can be defined in a non-HTML builder
|
|
|
|
to support managing references generated by linkcode.
|
|
|
|
The expected value for this attribute is an expression
|
|
|
|
which is compatible with :rst:dir:`only`.
|
|
|
|
|
|
|
|
For example, if a builder was named ``custom-builder``,
|
|
|
|
the following can be used:
|
|
|
|
|
|
|
|
.. code-block:: python
|
|
|
|
|
|
|
|
class CustomBuilder(Builder):
|
|
|
|
supported_linkcode = 'custom-builder'
|
|
|
|
...
|