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("', ("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

x' + + assert add_dimensions(html, lambda src: SVG) == ( + '

Hi

x' + ) + + +@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"