diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 34b4ce4..be85adf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,8 +17,13 @@ repos: hooks: - id: pyproject-fmt groups: [format] + - repo: https://github.com/djlint/djLint + rev: v1.46.2 + hooks: + - id: djlint-reformat + - id: djlint - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.8 + rev: v0.16.9 hooks: - id: ruff-check args: [--fix, --exit-non-zero-on-fix] @@ -51,7 +56,6 @@ repos: # Check that there are no merge conflicts (could be generated by template sync) - id: check-merge-conflict args: [--assume-in-merge] - - repo: https://github.com/zizmorcore/zizmor-pre-commit rev: v1.30.1 hooks: diff --git a/biome.jsonc b/biome.jsonc index 74b4277..fdb3aed 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -10,6 +10,11 @@ ], }, "formatter": { "useEditorconfig": true }, + "javascript": { + "formatter": { + "semicolons": "asNeeded", + }, + }, "overrides": [ { "includes": ["./.vscode/*.json", "**/*.jsonc"], @@ -21,5 +26,12 @@ }, }, }, + // HTML formatting is opt-in; most templates contain Jinja inside tags, which Biome can't parse. + { + "includes": [ + "src/scverse_doc/theme/scverse/components/sidebar-versions.html", + ], + "html": { "formatter": { "enabled": true } }, + }, ], } diff --git a/pyproject.toml b/pyproject.toml index a934e74..58f5509 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -97,6 +97,10 @@ envs.hatch-test.overrides.matrix.deps.env-vars = [ envs.hatch-test.default-args = [] envs.hatch-test.dependency-groups = [ "dev", "test" ] +[tool.djlint] +indent = 2 +single_attribute_per_line = true + [tool.ruff] line-length = 120 src = [ "src" ] diff --git a/src/scverse_doc/theme/scverse/components/scverse-ecosystem.html b/src/scverse_doc/theme/scverse/components/scverse-ecosystem.html index db83408..c0d5094 100644 --- a/src/scverse_doc/theme/scverse/components/scverse-ecosystem.html +++ b/src/scverse_doc/theme/scverse/components/scverse-ecosystem.html @@ -5,31 +5,31 @@ without any package touching its own conf.py. -#} {%- if theme_show_ecosystem_dropdown | tobool and scverse_ecosystem -%} - + {%- endif -%} diff --git a/src/scverse_doc/theme/scverse/components/scverse-footer.html b/src/scverse_doc/theme/scverse/components/scverse-footer.html index 823cfe1..f1a5d26 100644 --- a/src/scverse_doc/theme/scverse/components/scverse-footer.html +++ b/src/scverse_doc/theme/scverse/components/scverse-footer.html @@ -1,20 +1,18 @@ {#- Shared footer: the boilerplate every scverse README already carries, rendered identically on every docs site. -#} diff --git a/src/scverse_doc/theme/scverse/components/sidebar-versions.html b/src/scverse_doc/theme/scverse/components/sidebar-versions.html new file mode 100644 index 0000000..3e059c2 --- /dev/null +++ b/src/scverse_doc/theme/scverse/components/sidebar-versions.html @@ -0,0 +1,20 @@ + + diff --git a/src/scverse_doc/theme/scverse/layout.html b/src/scverse_doc/theme/scverse/layout.html new file mode 100644 index 0000000..4048c6e --- /dev/null +++ b/src/scverse_doc/theme/scverse/layout.html @@ -0,0 +1,5 @@ +{%- extends "pydata_sphinx_theme/layout.html" %} +{%- block extrahead %} + {{ super() }} + +{%- endblock %} diff --git a/src/scverse_doc/theme/scverse/static/styles/scverse.css b/src/scverse_doc/theme/scverse/static/styles/scverse.css index b1a631e..a8af92b 100644 --- a/src/scverse_doc/theme/scverse/static/styles/scverse.css +++ b/src/scverse_doc/theme/scverse/static/styles/scverse.css @@ -107,6 +107,29 @@ html { } } +/* --- Sidebar ------------------------------------------------------------ */ + +/* pydata hides the sidebar when it has no toctree (e.g. the root page), but the version selector should stay */ +@media (min-width: 960px) { + .bd-sidebar-primary.hide-on-wide:has(readthedocs-flyout) { + display: flex; + } +} +.sidebar-primary-item:has(> :only-child:empty) { + display: none; +} +.sidebar-primary-item readthedocs-flyout { + --readthedocs-flyout-background-color: transparent; + --readthedocs-flyout-font-family: inherit; + --readthedocs-flyout-divider-color: var(--scverse-color-border); + --readthedocs-flyout-color: var(--scverse-color-text-muted); + --readthedocs-flyout-section-heading-color: var(--scverse-color-text-muted); + --readthedocs-flyout-link-color: var(--pst-color-link-higher-contrast); + --readthedocs-flyout-item-link-color: var(--pst-color-link); + + padding: 0; +} + /* --- Cards -------------------------------------------------------------- */ /* .bd-content exists to beat sphinx-design in selector specificity */ diff --git a/src/scverse_doc/theme/scverse/theme.conf b/src/scverse_doc/theme/scverse/theme.conf deleted file mode 100644 index 09bb675..0000000 --- a/src/scverse_doc/theme/scverse/theme.conf +++ /dev/null @@ -1,26 +0,0 @@ -[theme] -inherit = pydata_sphinx_theme -stylesheet = styles/scverse.css -pygments_style = tango - -[options] -package = -accent = -show_ecosystem_dropdown = True - -navbar_align = left -navbar_start = navbar-logo -navbar_center = navbar-nav -navbar_end = scverse-ecosystem, theme-switcher, navbar-icon-links -navbar_persistent = search-button -secondary_sidebar_items = page-toc, edit-this-page, sourcelink -footer_start = scverse-footer -footer_center = -footer_end = -show_nav_level = 0 -show_toc_level = 2 -navigation_depth = 3 -collapse_navigation = False -pygments_light_style = tango -pygments_dark_style = monokai -announcement = https://scverse.org/announcement.html diff --git a/src/scverse_doc/theme/scverse/theme.toml b/src/scverse_doc/theme/scverse/theme.toml new file mode 100644 index 0000000..aeaa1fb --- /dev/null +++ b/src/scverse_doc/theme/scverse/theme.toml @@ -0,0 +1,28 @@ +[theme] +inherit = "pydata_sphinx_theme" +stylesheets = [ + "styles/scverse.css", +] +pygments_style = { default = "tango" } + +[options] +package = "" +accent = "" +show_ecosystem_dropdown = "True" +navbar_align = "left" +navbar_start = "navbar-logo" +navbar_center = "navbar-nav" +navbar_end = "scverse-ecosystem, theme-switcher, navbar-icon-links" +navbar_persistent = "search-button" +primary_sidebar_end = ["sidebar-ethical-ads", "sidebar-versions"] +secondary_sidebar_items = ["page-toc", "edit-this-page", "sourcelink"] +footer_start = "scverse-footer" +footer_center = "" +footer_end = "" +show_nav_level = "0" +show_toc_level = "2" +navigation_depth = "3" +collapse_navigation = "False" +pygments_light_style = "tango" +pygments_dark_style = "monokai" +announcement = "https://scverse.org/announcement.html"