diff --git a/Documentation/Makefile b/Documentation/Makefile index 11f8b3b9a7ef..9f0f53db2f10 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -20,6 +20,7 @@ SPHINXBUILD = sphinx-build SPHINXOPTS = SPHINXDIRS = . DOCS_THEME = +DOCS_CSS = _SPHINXDIRS = $(sort $(patsubst $(srctree)/Documentation/%/index.rst,%,$(wildcard $(srctree)/Documentation/*/index.rst))) SPHINX_CONF = conf.py PAPER = @@ -85,7 +86,10 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4) -D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) \ $(ALLSPHINXOPTS) \ $(abspath $(srctree)/$(src)/$5) \ - $(abspath $(BUILDDIR)/$3/$4) + $(abspath $(BUILDDIR)/$3/$4) && \ + if [ "x$(DOCS_CSS)" != "x" ]; then \ + cp $(DOCS_CSS) $(BUILDDIR)/$3/_static/; \ + fi htmldocs: @$(srctree)/scripts/sphinx-pre-install --version-check @@ -157,4 +161,6 @@ dochelp: @echo @echo ' make DOCS_THEME={sphinx-theme} selects a different Sphinx theme.' @echo + @echo ' make DOCS_CSS={a .css file} adds a DOCS_CSS override file for html/epub output.' + @echo @echo ' Default location for the generated documents is Documentation/output' diff --git a/Documentation/conf.py b/Documentation/conf.py index 9a6a1009c2c4..923496396c3f 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -210,6 +210,7 @@ highlight_language = 'none' # Default theme html_theme = 'sphinx_rtd_theme' +html_css_files = [] if "DOCS_THEME" in os.environ: html_theme = os.environ["DOCS_THEME"] @@ -229,6 +230,12 @@ if html_theme == 'sphinx_rtd_theme': except ImportError: html_theme = 'classic' +if "DOCS_CSS" in os.environ: + css = os.environ["DOCS_CSS"].split(" ") + + for l in css: + html_css_files.append(l) + if major <= 1 and minor < 8: html_context = { 'css_files': [], diff --git a/Documentation/doc-guide/sphinx.rst b/Documentation/doc-guide/sphinx.rst index bef276c58ebe..7fb6e6168bbb 100644 --- a/Documentation/doc-guide/sphinx.rst +++ b/Documentation/doc-guide/sphinx.rst @@ -138,6 +138,9 @@ To pass extra options to Sphinx, you can use the ``SPHINXOPTS`` make variable. For example, use ``make SPHINXOPTS=-v htmldocs`` to get more verbose output. +It is also possible to pass an extra DOCS_CSS overlay file, in order to customize +the html layout, by using the ``DOCS_CSS`` make variable. + By default, the build will try to use the Read the Docs sphinx theme: https://github.com/readthedocs/sphinx_rtd_theme