Files

108 lines
3.8 KiB
Python

# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'Jungfraujoch'
copyright = '2024, Paul Scherrer Institute'
author = 'Filip Leonarski'
release = '1.0.0-rc.183'
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
import os
import sys
# docs/_ext/jfjoch_downloads.py: the download pages' buttons, versioned from `release` above.
sys.path.insert(0, os.path.abspath('_ext'))
extensions = [
'myst_parser',
'sphinx.ext.mathjax',
'jfjoch_downloads',
]
# The site's front page is docs/landing/index.html, a standalone page the jfjoch_downloads
# extension renders into the output root as index.html; the Sphinx tree starts one page below it.
root_doc = 'documentation'
templates_path = ['_templates']
# docs/review/ is gitignored working material (review reports, work plans); Sphinx renders
# whatever is on disk, so without this a local review file would become a published page.
exclude_patterns = ['review']
myst_enable_extensions = [
'linkify',
'smartquotes',
'dollarmath',
'amsmath',
]
myst_heading_anchors = 3
# The OpenAPI Python-client pages under docs/python_client/ are generated by the
# openapi-generator and contain header-level jumps and intra-page anchors that MyST
# cannot resolve. We do not hand-edit generated files, so silence that noise here;
# the hand-written docs are anchor-clean once myst_heading_anchors is set above.
# 'config.cache' fires only because the sphinx_material theme stores a function in
# html_context, which is harmless for our single-shot builds.
suppress_warnings = ['myst.header', 'myst.xref_missing', 'config.cache']
# Render LaTeX-style math nicely in HTML and support AMS-style equation numbering.
mathjax3_config = {
"tex": {
"tags": "ams",
"inlineMath": [['\\(', '\\)'], ['$', '$']],
"displayMath": [['\\[', '\\]'], ['$$', '$$']],
"processEscapes": True,
}
}
# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
html_theme = 'sphinx_material'
html_static_path = ['../broker/redoc-static.html', '_static']
# The home page's program cards and the download pages' buttons (docs/_static); the script asks
# the Gitea API for the newest release and repoints the download buttons at its assets.
html_css_files = ['jfjoch.css']
html_js_files = ['jfjoch_downloads.js']
#html_theme_options = {
# 'sidebar_width': '300px',
# 'page_width': 'auto'
#}
html_theme_options = {
'repo_url': 'https://gitea.psi.ch/mx/jungfraujoch',
'repo_name': 'Jungfraujoch',
'nav_title': 'PSI Jungfraujoch',
'html_minify': True,
'css_minify': True,
'globaltoc_depth': 2,
# The generated python-client pages live in a hidden toctree on PYTHON_CLIENT.md: built and
# linked, but out of the sidebar - with the default includehidden=True they were 195 of the
# sidebar's 256 entries.
'globaltoc_includehidden': False,
# sphinx_material only knows github/gitlab/bitbucket; the repository is Gitea, so 'gitlab' is
# picked purely for the icon it renders next to repo_url above.
'repo_type': 'gitlab',
'color_primary': 'indigo',
'color_accent': 'lime',
'logo_icon': '&#xe30d'
}
html_logo = 'jfjoch.png'
html_favicon = 'jfjoch.png'
html_sidebars = {
"**": ["logo-text.html", "globaltoc.html", "searchbox.html"]
}
html_show_sourcelink = False