
Writing new builders
********************

Todo: Expand this.

class 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)

   write_doc(docname, doctree)

   finish()

      Finish the building process.  The default implementation does
      nothing.
