Blame view
Documentation/sphinx/load_config.py
2.13 KB
606b9ac81
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# -*- coding: utf-8; mode: python -*- # pylint: disable=R0903, C0330, R0914, R0912, E0401 import os import sys from sphinx.util.pycompat import execfile_ # ------------------------------------------------------------------------------ def loadConfig(namespace): # ------------------------------------------------------------------------------ u"""Load an additional configuration file into *namespace*. The name of the configuration file is taken from the environment ``SPHINX_CONF``. The external configuration file extends (or overwrites) the configuration values from the origin ``conf.py``. With this you are able to maintain *build themes*. """ config_file = os.environ.get("SPHINX_CONF", None) if (config_file is not None and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ): config_file = os.path.abspath(config_file) |
a84d9e899
|
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# Let's avoid one conf.py file just due to latex_documents start = config_file.find('Documentation/') if start >= 0: start = config_file.find('/', start + 1) end = config_file.rfind('/') if start >= 0 and end > 0: dir = config_file[start + 1:end] print("source directory: %s" % dir) new_latex_docs = [] latex_documents = namespace['latex_documents'] for l in latex_documents: |
d6f0f2f19
|
37 |
if l[0].find(dir + '/') == 0: |
a84d9e899
|
38 39 40 41 42 43 44 45 |
has = True fn = l[0][len(dir) + 1:] new_latex_docs.append((fn, l[1], l[2], l[3], l[4])) break namespace['latex_documents'] = new_latex_docs # If there is an extra conf.py file, load it |
606b9ac81
|
46 47 48 49 50 51 52 53 54 |
if os.path.isfile(config_file): sys.stdout.write("load additional sphinx-config: %s " % config_file) config = namespace.copy() config['__file__'] = config_file execfile_(config_file, config) del config['__file__'] namespace.update(config) else: |
a84d9e899
|
55 56 57 |
config = namespace.copy() config['tags'].add("subproject") namespace.update(config) |