- Fix
KeyErrorduring per-locale builds on Sphinx 9. Sphinx 9 normalizes thelanguageconfig to the hyphenated BCP-47 form (e.g.de-DE) before passing it to the Jinja template context, but the theme'slanguagesdict is keyed in the underscored form that Crowdin's locale strings are rewritten to at load time.get_language_code/get_language_display_namenow accept either form and fall back to the underscored variant, so theversions.htmltemplate renders cleanly under Sphinx 7, 8, and 9.
- Register
translations.jsviabuilder.add_js_file()instead of appending tobuilder.script_files. In Sphinx 7+,script_filescontainsJavaScriptobjects rather than strings, so the old duplicate-guard check no longer matched and caused the file to be re-appended on every build.
- Bump
install_requiresceiling tosphinx>=4.5,<10so the theme installs alongside Sphinx 9.x. No template, CSS, or Python API changes — verified by running a full SpongeDocs build with-Wagainst Sphinx 9.1.0.
- Bump
install_requirestosphinx-rtd-theme>=2.0,<4andsphinx>=4.5,<9so the theme installs alongside modern Sphinx (5.x / 6.x / 7.x).sphinx-rtd-theme 1.0pinneddocutils<0.18, which blocked SpongeDocs from upgrading past Sphinx 4.5. - No template or CSS changes. The RTD-theme 2.x/3.x class names this theme
hooks into (
wy-*,rst-versions,rst-current-version,rst-other-versions,rst-footer-buttons,headerlink) and the overridden block (sidebartitle) are unchanged in the target versions.
See Git history.