Files
Jungfraujoch/docs/conf.py
T
leonarski_f 8ff2abf3aa docs: a standalone front page with the three programs and the downloads, the Sphinx tree one page below it
docs/landing/ is a self-contained page (HTML, CSS, a little JS, no framework): a hero, a card per
program, the download section with the archives of the newest release and the reader's own
platform marked, the licence in one paragraph, light and dark. The jfjoch_downloads extension
renders it into the HTML output root as index.html at the end of every Sphinx build, so it is
served wherever the documentation is - Read the Docs, the gitea-pages branch and the broker's
frontend bundle - and its download buttons are the same ones as on the Sphinx download pages,
built from the configured release and repointed at the newest published one by the shared script.

The Sphinx root page moves to documentation.html (root_doc), and the frontend's documentation
frame opens that page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015CeEGgpKdfkCTJb3YNMJcu
(cherry picked from commit 64cde61f0b941b3e8c99eaa9b74afeaa75aefc78)
2026-10-25 07:20:29 +01:00

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.180'
# -- 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