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:
|
|
|
|
|
|
|
|
.. graphviz::
|
|
|
|
:caption: UML for the standard Sphinx build workflow
|
|
|
|
|
|
|
|
digraph build {
|
|
|
|
graph [
|
|
|
|
rankdir=LR
|
|
|
|
];
|
|
|
|
node [
|
|
|
|
shape=rect
|
|
|
|
style=rounded
|
|
|
|
];
|
|
|
|
|
|
|
|
"Sphinx" [
|
|
|
|
shape=record
|
|
|
|
label = "Sphinx | <init> __init__ | <build> build"
|
|
|
|
];
|
|
|
|
"Sphinx":init -> "Builder.init";
|
|
|
|
"Sphinx":build -> "Builder.build_all";
|
|
|
|
"Sphinx":build -> "Builder.build_specific";
|
|
|
|
"Builder.build_update" [
|
|
|
|
shape=record
|
|
|
|
label = "<p1> Builder.build_update | Builder.get_outdated_docs"
|
|
|
|
];
|
|
|
|
"Sphinx":build -> "Builder.build_update":p1 ;
|
|
|
|
|
|
|
|
"Builder.build_all" -> "Builder.build";
|
|
|
|
"Builder.build_specific" -> "Builder.build";
|
|
|
|
"Builder.build_update":p1 -> "Builder.build";
|
|
|
|
|
|
|
|
"Builder.build" -> "Builder.read";
|
|
|
|
"Builder.write" [
|
|
|
|
shape=record
|
|
|
|
label = "<p1> Builder.write | Builder._write_serial | Builder._write_parallel"
|
|
|
|
];
|
|
|
|
"Builder.build" -> "Builder.write";
|
|
|
|
"Builder.build" -> "Builder.finish";
|
|
|
|
|
|
|
|
"Builder.read" -> "Builder.read_doc";
|
|
|
|
"Builder.read_doc" -> "Builder.write_doctree";
|
|
|
|
|
|
|
|
"Builder.write":p1 -> "Builder.prepare_writing";
|
|
|
|
"Builder.write":p1 -> "Builder.copy_assets";
|
|
|
|
"Builder.write":p1 -> "Builder.write_doc";
|
|
|
|
|
|
|
|
"Builder.write_doc" -> "Builder.get_relative_uri";
|
|
|
|
|
|
|
|
"Builder.get_relative_uri" -> "Builder.get_target_uri";
|
|
|
|
}
|
|
|
|
|
|
|
|
.. 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.
|