summaryrefslogtreecommitdiff
path: root/utils/site-python
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2020-03-21 18:45:38 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2020-03-21 18:45:38 +0100
commit2d956696e94e5639db6e12648442989919c48c22 (patch)
tree375f5931ab94e4cf2c342721073a134e8fdaf433 /utils/site-python
parentd2cfe9ce5bb409472f10590aa1ae069b2a971a49 (diff)
downloadsearxng-2d956696e94e5639db6e12648442989919c48c22.tar.gz
searxng-2d956696e94e5639db6e12648442989919c48c22.zip
docs: building (PDF) books / build user book
BTW: cleaned up Makefile target help Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
Diffstat (limited to 'utils/site-python')
-rw-r--r--utils/site-python/sphinx_build_tools.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/utils/site-python/sphinx_build_tools.py b/utils/site-python/sphinx_build_tools.py
new file mode 100644
index 000000000..b9ebdeacc
--- /dev/null
+++ b/utils/site-python/sphinx_build_tools.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8; mode: python -*-
+"""Implement some sphinx-build tools.
+
+"""
+
+import os
+import sys
+from sphinx.util.pycompat import execfile_
+
+# ------------------------------------------------------------------------------
+def load_sphinx_config(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*. To your docs/conf.py add::
+
+ from sphinx_build_tools import load_sphinx_config
+ ...
+
+ # Since loadConfig overwrites settings from the global namespace, it has to be
+ # the last statement in the conf.py file
+
+ load_sphinx_config(globals())
+
+ """
+
+ 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)
+
+ if os.path.isfile(config_file):
+ sys.stdout.write(
+ "load additional sphinx-config: %s\n"
+ % config_file)
+ config = namespace.copy()
+ config['__file__'] = config_file
+ execfile_(config_file, config)
+ del config['__file__']
+ namespace.update(config)
+ else:
+ sys.stderr.write(
+ "WARNING: additional sphinx-config not found: %s\n"
+ % config_file)