
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.
