1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#!/usr/bin/env python3
# This file is managed by 'repo_helper'. Don't edit it directly.
# stdlib
import os
import re
import sys
# 3rd party
from sphinx_pyproject import SphinxConfig
sys.path.append('.')
config = SphinxConfig(globalns=globals())
project = config["project"]
author = config["author"]
documentation_summary = config.description
github_url = "https://github.com/{github_username}/{github_repository}".format_map(config)
rst_prolog = f""".. |pkgname| replace:: sphinx-toolbox
.. |pkgname2| replace:: ``sphinx-toolbox``
.. |browse_github| replace:: `Browse the GitHub Repository <{github_url}>`__
"""
slug = re.sub(r'\W+', '-', project.lower())
release = version = config.version
sphinx_builder = os.environ.get("SPHINX_BUILDER", "html").lower()
todo_include_todos = int(os.environ.get("SHOW_TODOS", 0)) and sphinx_builder != "latex"
intersphinx_mapping = {
"python": ("https://docs.python.org/3/", None),
"sphinx": ("https://www.sphinx-doc.org/en/stable/", None),
"pytest": ("https://docs.pytest.org/en/stable", None),
"pytest-regressions": ("https://pytest-regressions.readthedocs.io/en/latest/", None),
"coincidence": ("https://coincidence.readthedocs.io/en/latest", None),
"autodocsumm": ("https://autodocsumm.readthedocs.io/en/latest", None),
}
html_theme_options = {"logo_only": False}
html_context = {
"display_github": True,
"github_user": "sphinx-toolbox",
"github_repo": "sphinx-toolbox",
"github_version": "master",
"conf_py_path": "/doc-source/",
}
htmlhelp_basename = slug
latex_documents = [("index", f'{slug}.tex', project, author, "manual")]
man_pages = [("index", slug, project, [author], 1)]
texinfo_documents = [("index", slug, project, author, slug, project, "Miscellaneous")]
toctree_plus_types = set(config["toctree_plus_types"])
autodoc_default_options = {
"members": None, # Include all members (methods).
"special-members": None,
"autosummary": None,
"show-inheritance": None,
"exclude-members": ','.join(config["autodoc_exclude_members"]),
}
latex_elements = {
"printindex": "\\begin{flushleft}\n\\printindex\n\\end{flushleft}",
"tableofcontents": "\\pdfbookmark[0]{\\contentsname}{toc}\\sphinxtableofcontents",
}
# Fix for pathlib issue with sphinxemoji on Python 3.9 and Sphinx 4.x
def copy_asset_files(app, exc):
# 3rd party
from domdf_python_tools.compat import importlib_resources
from sphinx.util.fileutil import copy_asset
if exc:
return
asset_files = ["twemoji.js", "twemoji.css"]
for path in asset_files:
path_str = os.fspath(importlib_resources.files("sphinxemoji") / path)
copy_asset(path_str, os.path.join(app.outdir, "_static"))
def setup(app):
# 3rd party
from sphinx_toolbox.latex import better_header_layout
from sphinxemoji import sphinxemoji
app.connect("config-inited", lambda app, config: better_header_layout(config))
app.connect("build-finished", copy_asset_files)
app.add_js_file("https://unpkg.com/twemoji@latest/dist/twemoji.min.js")
app.add_js_file("twemoji.js")
app.add_css_file("twemoji.css")
app.add_transform(sphinxemoji.EmojiSubstitutions)
html_logo = "../sphinx_toolbox.png"
toctree_plus_types.add("fixture")
sys.path.append(os.path.abspath(".."))
latex_elements["preamble"] = r"\usepackage{multicol}"
nitpicky = True
needspace_amount = r"4\baselineskip"
autodoc_type_aliases = {"ForwardRef": "ForwardRef"}
|