Writing new builders

Todo

Expand this.

class sphinx.builders.Builder

This is the base class for all builders.

These methods are predefined and will be called from the application:

get_relative_uri(from_, to, typ=None)

Return a relative URI between two source filenames.

May raise environment.NoUri if there’s no way to return a sensible URI.

build_all()

Build all source files.

build_specific(filenames)

Only rebuild as much as needed for changes in the filenames.

build_update()

Only rebuild what was changed or added since last build.

build(docnames, summary=None, method='update')

Main build method.

First updates the environment, and then calls write().

These methods can be overridden in concrete builder classes:

init()

Load necessary templates and perform initialization. The default implementation does nothing.

get_outdated_docs()

Return an iterable of output files that are outdated, or a string describing what an update build will build.

If the builder does not output individual files corresponding to source files, return a string here. If it does, return an iterable of those files that need to be written.

get_target_uri(docname, typ=None)

Return the target URI for a document name.

typ can be used to qualify the link characteristic for individual builders.

prepare_writing(docnames)

A place where you can add logic before write_doc() is run

write_doc(docname, doctree)

Where you actually write something to the filesystem.

finish()

Finish the building process.

The default implementation does nothing.