The build configuration file
The :term:`configuration directory` must contain a file named :file:`conf.py`. This file (containing Python code) is called the "build configuration file" and contains all configuration needed to customize Sphinx input and output behavior.
The configuration file is executed as Python code at build time (using :func:`execfile`, and with the current directory set to its containing directory), and therefore can execute arbitrarily complex code. Sphinx then reads simple names from the file's namespace as its configuration.
Important points to note:
- If not otherwise documented, values must be strings, and their default is the empty string.
- The term "fully-qualified name" refers to a string that names an importable Python object inside a module; for example, the FQN "sphinx.builders.Builder" means the Builder class in the sphinx.builders module.
- Remember that document names use / as the path separator and don't contain the file name extension.
- Since :file:`conf.py` is read as a Python file, the usual rules apply for encodings and Unicode support: declare the encoding using an encoding cookie (a comment like # -*- coding: utf-8 -*-) and use Unicode string literals when you include non-ASCII characters in configuration values.
- The contents of the config namespace are pickled (so that Sphinx can find out when configuration changes), so it may not contain unpickleable values -- delete them from the namespace with del if appropriate. Modules are removed automatically, so you don't need to del your imports after use.
- There is a special object named tags available in the config file. It can be used to query and change the tags (see :ref:`tags`). Use tags.has('tag') to query, tags.add('tag') and tags.remove('tag') to change.
Options for HTML output
These options influence HTML as well as HTML Help output, and other builders that use Sphinx' HTMLWriter class.
Options for LaTeX output
These options influence LaTeX output.