diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 306298c4..c5cc1adc 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -82,6 +82,20 @@ Pyvec Guide
Tento projekt se původně jmenoval ``pyvec-guide`` a proto se tak jmenuje i projekt na ReadTheDocs. Projekt nemá smysl přejmenovávat, když máme nyní doménu ``docs.pyvec.org``, akorát bychom rozbili staré odkazy. JavaScript ``_static/redirect.js`` zajišťuje, že staré odkazy se přesměrují.
+Obrázek pro sociální sítě
+-------------------------
+
+Když někdo sdílí odkaz na dokumentaci, třeba na sociálních sítích nebo na Slacku, zobrazí se u něj náhledový obrázek ``docs/_static/images/og-image.png``. Zdrojem je ``docs/_static/images/og-image.svg`` a PNG se z něj vyrábí ručně:
+
+#. Upravte ``og-image.svg``, např. v `Inkscape `__. Nadpis je napsaný písmem `Inter Display `__ v řezu Bold, takže ho musíte mít nainstalované.
+#. Vyexportujte z něj PNG o rozměrech 1200 × 630 px:
+
+ .. code-block:: console
+
+ $ inkscape docs/_static/images/og-image.svg --export-type=png --export-filename=docs/_static/images/og-image.png -w 1200 -h 630
+
+#. Commitněte oba soubory.
+
Verze Pythonu
-------------
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
index 356b2745..222855a5 100644
--- a/docs/_static/custom.css
+++ b/docs/_static/custom.css
@@ -1,13 +1,80 @@
-.rst-content blockquote {
+/*
+ Single-colour illustrations are drawn black. In dark mode, invert them to
+ light grey (#ccc). Follows both Furo's toggle and, in its "auto" mode, the
+ system setting, the same way Furo switches its own colours.
+
+ Sphinx puts the image's class on the wrapping link too, so the selector
+ must target only the img, or the filter would apply twice.
+*/
+body[data-theme="dark"] img.adaptive-image {
+ filter: invert(80%);
+}
+
+@media (prefers-color-scheme: dark) {
+ body:not([data-theme="light"]) img.adaptive-image {
+ filter: invert(80%);
+ }
+}
+
+/*
+ The logo is drawn black, but the sidebar is dark slate in both modes.
+*/
+.sidebar-logo {
+ filter: invert(80%);
+}
+
+/*
+ Furo's overflow-wrap:break-word makes the title wrap mid-word
+ ("česk/é") in the sidebar, even though whole words fit on the line.
+*/
+.sidebar-brand-text {
+ overflow-wrap: normal;
+}
+
+/*
+ Furo doesn't declare color-scheme, so browsers follow the OS. On a light
+ page with the OS in dark mode, the native text selection was dark blue
+ and unreadable. Declare the active scheme, so the browser and OS pick
+ fitting native colours for selection, scrollbars, and form controls.
+ The sidebar is slate in both modes, so it's always dark.
+*/
+body {
+ color-scheme: light;
+}
+
+body[data-theme="dark"],
+.sidebar-drawer {
+ color-scheme: dark;
+}
+
+@media (prefers-color-scheme: dark) {
+ body:not([data-theme="light"]) {
+ color-scheme: dark;
+ }
+}
+
+/*
+ The browser's default placeholder grey has poor contrast on the slate
+ sidebar. Use the same colour as the search icon (5.8:1).
+*/
+.sidebar-search::placeholder {
+ color: var(--color-sidebar-search-icon);
+}
+
+/*
+ Sphinx centres tables that don't set :align:, and Furo keeps that.
+ Align them to the left like the rest of the text.
+*/
+article table.align-default {
margin-left: 0;
- padding: 24px 12px 24px 24px;
- border-left: 0.5rem solid #bbb;
- background: #eee;
+ margin-right: 0;
}
/*
- Fixing margin of illustrations
+ Furo's logo has no dimensions, so the sidebar jumps when it loads.
+ Reserve its space with the proportions of org.svg (viewBox 2923×1573).
*/
-.rst-content .image-reference img {
- margin-bottom: 12px;
+.sidebar-logo {
+ width: 100%;
+ aspect-ratio: 2923 / 1573;
}
diff --git a/docs/_static/images/community.svg b/docs/_static/images/community.svg
index 52271ffc..78f3be71 100644
--- a/docs/_static/images/community.svg
+++ b/docs/_static/images/community.svg
@@ -1,4 +1,3 @@
-
diff --git a/docs/_static/images/money.svg b/docs/_static/images/money.svg
index d967d333..c8561feb 100644
--- a/docs/_static/images/money.svg
+++ b/docs/_static/images/money.svg
@@ -1,3 +1,2 @@
-
diff --git a/docs/_static/images/og-image.png b/docs/_static/images/og-image.png
index beefa744..2dac251a 100644
Binary files a/docs/_static/images/og-image.png and b/docs/_static/images/og-image.png differ
diff --git a/docs/_static/images/og-image.svg b/docs/_static/images/og-image.svg
index abbd9577..2bdd29d3 100644
--- a/docs/_static/images/og-image.svg
+++ b/docs/_static/images/og-image.svg
@@ -58,7 +58,7 @@
cx="-25.910154"
cy="87.785156"
r="0.027257873" />
-
-
-
-Created by potrace 1.13, written by Peter Selinger 2001-2015
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/_static/images/org.svg b/docs/_static/images/org.svg
index 564a9d1f..576e7d0d 100644
--- a/docs/_static/images/org.svg
+++ b/docs/_static/images/org.svg
@@ -1,4 +1,3 @@
-
diff --git a/docs/_static/images/pylady.svg b/docs/_static/images/pylady.svg
index 0a747bf5..019baadd 100644
--- a/docs/_static/images/pylady.svg
+++ b/docs/_static/images/pylady.svg
@@ -1,4 +1,3 @@
-
diff --git a/docs/_static/images/snake.svg b/docs/_static/images/snake.svg
index 7702c50f..025a88c1 100644
--- a/docs/_static/images/snake.svg
+++ b/docs/_static/images/snake.svg
@@ -1,4 +1,3 @@
-
diff --git a/docs/_static/images/ukulele.svg b/docs/_static/images/ukulele.svg
index 56642045..dfc1e5d4 100644
--- a/docs/_static/images/ukulele.svg
+++ b/docs/_static/images/ukulele.svg
@@ -1,3 +1,3 @@
-
+
diff --git a/docs/conf.py b/docs/conf.py
index 7a802f8d..33ccc816 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -37,6 +37,7 @@
"sphinxemoji.sphinxemoji",
"pyvec_docs.ext.slack",
"pyvec_docs.ext.board_dates",
+ "pyvec_docs.ext.image_dimensions",
"myst_parser",
]
@@ -64,9 +65,6 @@
# This pattern also affects html_static_path and html_extra_path .
exclude_patterns = ["Thumbs.db", ".DS_Store"]
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = "monokai"
-
# -- Options for HTML output -------------------------------------------------
@@ -75,8 +73,52 @@
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
-html_theme = "sphinx_rtd_theme"
-html_logo = "_static/images/org-i.svg"
+html_theme = "furo"
+html_title = project
+html_logo = "_static/images/org.svg"
+# Colours from https://pyvec.org/ (blue #0097df, slate #232f36 and #3b4f5a).
+# The blues are adjusted so that text passes WCAG AA contrast. The sidebar is
+# slate in both light and dark mode, like the header on pyvec.org.
+sidebar_css_variables = {
+ "color-sidebar-background": "#232f36",
+ "color-sidebar-background-border": "#232f36",
+ "color-sidebar-brand-text": "#ffffff",
+ "color-sidebar-caption-text": "#aab8c0",
+ "color-sidebar-link-text": "#d6dee3",
+ "color-sidebar-link-text--top-level": "#33b1ec",
+ "color-sidebar-item-background--hover": "#2b3a42",
+ "color-sidebar-item-expander-background--hover": "#2b3a42",
+ "color-sidebar-search-background": "#2b3a42",
+ "color-sidebar-search-background--focus": "#1b2429",
+ "color-sidebar-search-border": "#3b4f5a",
+ "color-sidebar-search-icon": "#aab8c0",
+ "color-sidebar-search-text": "#ffffff",
+}
+html_theme_options = {
+ "light_css_variables": {
+ "color-brand-primary": "#0079b3",
+ "color-brand-content": "#0079b3",
+ **sidebar_css_variables,
+ },
+ "dark_css_variables": {
+ **sidebar_css_variables,
+ "color-brand-primary": "#33b1ec",
+ "color-brand-content": "#33b1ec",
+ "color-background-primary": "#1b2429",
+ "color-background-secondary": "#232f36",
+ "color-background-hover": "#2b3a42",
+ "color-background-border": "#3b4f5a",
+ "color-card-background": "#1f292f",
+ "color-admonition-background": "#232f36",
+ # Furo's greys fall below 4.5:1 contrast on the slate backgrounds
+ "color-foreground-secondary": "#aab8c0",
+ "color-foreground-muted": "#909ca4",
+ "color-brand-visited": "#bb8aee",
+ },
+ "source_repository": "https://github.com/pyvec/docs.pyvec.org/",
+ "source_branch": "master",
+ "source_directory": "docs/",
+}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
diff --git a/docs/guides/beginners-course.rst b/docs/guides/beginners-course.rst
index 260b2388..a71e629a 100644
--- a/docs/guides/beginners-course.rst
+++ b/docs/guides/beginners-course.rst
@@ -14,6 +14,7 @@ nebo něco mezi tím – je to jen na tobě!
.. image:: ../_static/images/pylady.svg
:width: 20%
:align: center
+ :class: adaptive-image
Před začátkem
diff --git a/docs/guides/meetup.rst b/docs/guides/meetup.rst
index 2a1258d0..16b6b4e3 100644
--- a/docs/guides/meetup.rst
+++ b/docs/guides/meetup.rst
@@ -10,6 +10,7 @@ Tato příručka si klade za cíl shromáždit veškeré zkušenosti, jež jsme
.. image:: ../_static/images/ukulele.svg
:width: 30%
:align: center
+ :class: adaptive-image
Python v ČR
@@ -441,6 +442,7 @@ Pokud chceš nabrat nějakou další inspiraci k tomu, jak organizovat Python sr
.. image:: ../_static/images/snake.svg
:width: 30%
:align: center
+ :class: adaptive-image
.. _srazy-globalni-zdroje:
diff --git a/docs/index.rst b/docs/index.rst
index cb8425a2..32e3a252 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -3,6 +3,7 @@
.. image:: _static/images/community.svg
:width: 80%
:align: center
+ :class: adaptive-image
Obsah
-----
diff --git a/docs/operations/bylaws.rst b/docs/operations/bylaws.rst
index 2905e335..2693ba67 100644
--- a/docs/operations/bylaws.rst
+++ b/docs/operations/bylaws.rst
@@ -8,9 +8,6 @@ Stanovy Pyvec, z.s.
.. note::
Vizuálně oddělené poznámky, jako je tato, nejsou oficiální součástí stanov a slouží pouze k lepšímu porozumění právnického textu běžnými smrtelníky. Originální znění stanov je k dispozici na `webových stránkách spolku`_ (dole v patičce) nebo na `justice.cz`_.
-.. contents::
- :depth: 2
-
I. Název, forma a sídlo
^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/operations/runbooks.rst b/docs/operations/runbooks.rst
index db694ed6..7a51ce19 100644
--- a/docs/operations/runbooks.rst
+++ b/docs/operations/runbooks.rst
@@ -1,13 +1,6 @@
Jak řešit situace
=================
-.. contents::
- :depth: 2
- :local:
- :backlinks: none
-
-
-
Návody pro kohokoliv
--------------------
diff --git a/docs/operations/support-money.rst b/docs/operations/support-money.rst
index 0092aecc..75fcacd7 100644
--- a/docs/operations/support-money.rst
+++ b/docs/operations/support-money.rst
@@ -3,14 +3,10 @@
Finanční podpora
================
-.. contents:: Obsah
- :depth: 1
- :local:
- :backlinks: none
-
.. image:: ../_static/images/money.svg
:width: 80%
:align: center
+ :class: adaptive-image
.. _financni-sluzby:
@@ -24,6 +20,7 @@ Přes Pyvec tečou peníze české Python komunity. Poskytujeme tyto hlavní slu
:depth: 1
:local:
:backlinks: none
+ :class: this-will-duplicate-information-and-it-is-still-useful-here
Pokud je vám cokoliv nejasné, ozvěte se v kanálu :slack:`#money` na :ref:`Slacku `.
diff --git a/docs/operations/support.rst b/docs/operations/support.rst
index 4a9fc4a8..b99adf7e 100644
--- a/docs/operations/support.rst
+++ b/docs/operations/support.rst
@@ -7,10 +7,13 @@ Pyvec nikomu neříká, co má dělat. Pomáhá těm, kteří se o něco snaží
Dotazy pište na info@pyvec.org nebo do kanálu :slack:`#pyvec` na :ref:`Slacku `.
-.. contents:: Oblasti podpory
+Oblasti podpory:
+
+.. contents::
:depth: 1
:local:
:backlinks: none
+ :class: this-will-duplicate-information-and-it-is-still-useful-here
.. _slack:
diff --git a/docs/operations/twitter.rst b/docs/operations/twitter.rst
index e1d353db..b4ee2458 100644
--- a/docs/operations/twitter.rst
+++ b/docs/operations/twitter.rst
@@ -15,10 +15,6 @@ Jestliže organizujete nějaké `Pyvo `_, nebojte si říct o
Účty
----
-.. contents::
- :depth: 1
- :local:
-
@napyvo
^^^^^^^
diff --git a/pyproject.toml b/pyproject.toml
index 38ef218c..09a34974 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,11 +4,11 @@ version = "0"
requires-python = "==3.12.*"
dependencies = [
"click>=8.5.0",
+ "furo>=2025.12.19",
"jinja2>=3.1.6",
"myst-parser>=5.1.0",
"pydantic>=2.14.2",
"requests>=2.34.2",
- "sphinx-rtd-theme>=3.1.0",
"sphinx<10", # see https://github.com/executablebooks/MyST-Parser/issues/1077
"sphinxemoji>=0.3.2",
]
diff --git a/src/pyvec_docs/ext/image_dimensions.py b/src/pyvec_docs/ext/image_dimensions.py
new file mode 100644
index 00000000..50480452
--- /dev/null
+++ b/src/pyvec_docs/ext/image_dimensions.py
@@ -0,0 +1,61 @@
+"""
+Sphinx extension which adds width and height attributes to SVG images in the
+HTML output, read from the SVG's viewBox. Browsers use them as the image's
+aspect ratio and reserve space for it before it loads, so the page content
+doesn't jump. The displayed size still comes from CSS and the :width: option.
+"""
+
+import re
+from pathlib import Path
+
+
+IMG_RE = re.compile(r" ]*>")
+SRC_RE = re.compile(r'\bsrc="([^"]+\.svg)"')
+VIEWBOX_RE = re.compile(
+ r'viewBox="\s*[-\d.]+[\s,]+[-\d.]+[\s,]+([\d.]+)[\s,]+([\d.]+)\s*"'
+)
+
+
+def get_svg_size(svg_text):
+ if match := VIEWBOX_RE.search(svg_text):
+ return match.groups()
+ return None
+
+
+def add_dimensions(html, resolve_svg_text):
+ def replace(match):
+ tag = match.group(0)
+ if re.search(r"\s(width|height)=", tag):
+ return tag
+ if not (src := SRC_RE.search(tag)):
+ return tag
+ if not (svg_text := resolve_svg_text(src.group(1))):
+ return tag
+ if not (size := get_svg_size(svg_text)):
+ return tag
+ width, height = size
+ return tag.replace(" '
+
+
+@pytest.mark.parametrize(
+ "svg_text, expected",
+ [
+ (SVG, ("4467", "2012")),
+ ('', ("317.5", "166.6875")),
+ ("", None),
+ ],
+)
+def test_get_svg_size(svg_text, expected):
+ assert get_svg_size(svg_text) == expected
+
+
+def test_add_dimensions():
+ html = 'Hi
'
+
+ assert add_dimensions(html, lambda src: SVG) == (
+ 'Hi
'
+ )
+
+
+@pytest.mark.parametrize(
+ "html",
+ [
+ ' ',
+ ' ',
+ ' ',
+ ],
+)
+def test_add_dimensions_skips(html):
+ def resolve(src):
+ return None if src.startswith("https://") else SVG
+
+ assert add_dimensions(html, resolve) == html
diff --git a/uv.lock b/uv.lock
index cd3535f0..8fadd88d 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2,6 +2,18 @@ version = 1
revision = 5
requires-python = "==3.12.*"
+[[package]]
+name = "accessible-pygments"
+version = "0.0.5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pygments" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" },
+]
+
[[package]]
name = "alabaster"
version = "1.0.0"
@@ -42,6 +54,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" },
]
+[[package]]
+name = "beautifulsoup4"
+version = "4.15.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "soupsieve" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/88/c6/92fcd42f1ba33e1184263f25bfabf3d27c383410470f169e4b8163bf9c17/beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9", size = 109924, upload-time = "2026-06-07T16:44:21.566Z" },
+]
+
[[package]]
name = "certifi"
version = "2026.10.23"
@@ -119,6 +144,22 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/02/10/5da547df7a391dcde17f59520a231527b8571e6f46fc8efb02ccb370ab12/docutils-0.22.4-py3-none-any.whl", hash = "sha256:d0013f540772d1420576855455d050a2180186c91c15779301ac2ccb3eeb68de", size = 633196, upload-time = "2025-12-18T19:00:18.077Z" },
]
+[[package]]
+name = "furo"
+version = "2025.12.19"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "accessible-pygments" },
+ { name = "beautifulsoup4" },
+ { name = "pygments" },
+ { name = "sphinx" },
+ { name = "sphinx-basic-ng" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/ec/20/5f5ad4da6a5a27c80f2ed2ee9aee3f9e36c66e56e21c00fde467b2f8f88f/furo-2025.12.19.tar.gz", hash = "sha256:188d1f942037d8b37cd3985b955839fea62baa1730087dc29d157677c857e2a7", size = 1661473, upload-time = "2025-12-19T17:34:40.889Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f4/b2/50e9b292b5cac13e9e81272c7171301abc753a60460d21505b606e15cf21/furo-2025.12.19-py3-none-any.whl", hash = "sha256:bb0ead5309f9500130665a26bee87693c41ce4dbdff864dbfb6b0dae4673d24f", size = 339262, upload-time = "2025-12-19T17:34:38.905Z" },
+]
+
[[package]]
name = "h11"
version = "0.16.0"
@@ -347,12 +388,12 @@ version = "0"
source = { editable = "." }
dependencies = [
{ name = "click" },
+ { name = "furo" },
{ name = "jinja2" },
{ name = "myst-parser" },
{ name = "pydantic" },
{ name = "requests" },
{ name = "sphinx" },
- { name = "sphinx-rtd-theme" },
{ name = "sphinxemoji" },
]
@@ -366,12 +407,12 @@ dev = [
[package.metadata]
requires-dist = [
{ name = "click", specifier = ">=8.5.0" },
+ { name = "furo", specifier = ">=2025.12.19" },
{ name = "jinja2", specifier = ">=3.1.6" },
{ name = "myst-parser", specifier = ">=5.1.0" },
{ name = "pydantic", specifier = ">=2.14.2" },
{ name = "requests", specifier = ">=2.34.2" },
{ name = "sphinx", specifier = "<10" },
- { name = "sphinx-rtd-theme", specifier = ">=3.1.0" },
{ name = "sphinxemoji", specifier = ">=0.3.2" },
]
@@ -458,6 +499,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl", hash = "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752", size = 104164, upload-time = "2026-06-03T00:56:38.614Z" },
]
+[[package]]
+name = "soupsieve"
+version = "4.0.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/01/7c/a64eedae0b7776cb9602d2da9cb8f8caae8e1b4c1da5e8e87bf1e68121ec/soupsieve-4.0.1.tar.gz", hash = "sha256:7621e3c5f6b371ed2c5eabaac5de300ac3d66d05e6d7f34783e31b63c4f90c75", size = 153302, upload-time = "2026-11-04T16:36:27.749Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2c/5c/4f68370847b561a389dd9a2d7eb3d19fd8cbb8acbae543a0c6b8d0d9700b/soupsieve-4.0.1-py3-none-any.whl", hash = "sha256:2e68cf7dd5a0f29d81f9d485275ccf294e6475f615e211895d91cb81f8614f04", size = 50688, upload-time = "2026-11-04T16:36:26.158Z" },
+]
+
[[package]]
name = "sphinx"
version = "9.1.1"
@@ -504,17 +554,15 @@ wheels = [
]
[[package]]
-name = "sphinx-rtd-theme"
-version = "3.1.0"
+name = "sphinx-basic-ng"
+version = "1.0.0b2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "docutils" },
{ name = "sphinx" },
- { name = "sphinxcontrib-jquery" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/84/68/a1bfbf38c0f7bccc9b10bbf76b94606f64acb1552ae394f0b8285bfaea25/sphinx_rtd_theme-3.1.0.tar.gz", hash = "sha256:b44276f2c276e909239a4f6c955aa667aaafeb78597923b1c60babc76db78e4c", size = 7620915, upload-time = "2026-01-12T16:03:31.17Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/98/0b/a866924ded68efec7a1759587a4e478aec7559d8165fac8b2ad1c0e774d6/sphinx_basic_ng-1.0.0b2.tar.gz", hash = "sha256:9ec55a47c90c8c002b5960c57492ec3021f5193cb26cebc2dc4ea226848651c9", size = 20736, upload-time = "2023-07-08T18:40:54.166Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/87/c7/b5c8015d823bfda1a346adb2c634a2101d50bb75d421eb6dcb31acd25ebc/sphinx_rtd_theme-3.1.0-py2.py3-none-any.whl", hash = "sha256:1785824ae8e6632060490f67cf3a72d404a85d2d9fc26bce3619944de5682b89", size = 7655617, upload-time = "2026-01-12T16:03:28.101Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/dd/018ce05c532a22007ac58d4f45232514cd9d6dd0ee1dc374e309db830983/sphinx_basic_ng-1.0.0b2-py3-none-any.whl", hash = "sha256:eb09aedbabfb650607e9b4b68c9d240b90b1e1be221d6ad71d61c52e29f7932b", size = 22496, upload-time = "2023-07-08T18:40:52.659Z" },
]
[[package]]
@@ -544,18 +592,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" },
]
-[[package]]
-name = "sphinxcontrib-jquery"
-version = "4.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "sphinx" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104, upload-time = "2023-03-14T15:01:00.356Z" },
-]
-
[[package]]
name = "sphinxcontrib-jsmath"
version = "2.0.0"