Sphinx 8.0.2__py3-none-any.whl → 8.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Sphinx might be problematic. Click here for more details.
- sphinx/__init__.py +6 -3
- sphinx/_cli/__init__.py +40 -20
- sphinx/_cli/util/colour.py +5 -4
- sphinx/_cli/util/errors.py +28 -11
- sphinx/application.py +361 -38
- sphinx/builders/__init__.py +229 -83
- sphinx/builders/_epub_base.py +118 -71
- sphinx/builders/changes.py +39 -21
- sphinx/builders/dirhtml.py +4 -4
- sphinx/builders/dummy.py +2 -5
- sphinx/builders/epub3.py +43 -22
- sphinx/builders/gettext.py +43 -25
- sphinx/builders/html/__init__.py +284 -218
- sphinx/builders/html/_assets.py +62 -26
- sphinx/builders/html/_build_info.py +76 -0
- sphinx/builders/html/transforms.py +11 -9
- sphinx/builders/latex/__init__.py +139 -81
- sphinx/builders/latex/constants.py +7 -7
- sphinx/builders/latex/nodes.py +3 -2
- sphinx/builders/latex/theming.py +7 -5
- sphinx/builders/latex/transforms.py +27 -19
- sphinx/builders/linkcheck.py +146 -72
- sphinx/builders/manpage.py +30 -13
- sphinx/builders/singlehtml.py +22 -14
- sphinx/builders/texinfo.py +67 -37
- sphinx/builders/text.py +5 -5
- sphinx/builders/xml.py +6 -9
- sphinx/cmd/build.py +282 -103
- sphinx/cmd/make_mode.py +106 -63
- sphinx/cmd/quickstart.py +341 -145
- sphinx/config.py +45 -12
- sphinx/deprecation.py +8 -2
- sphinx/directives/__init__.py +28 -19
- sphinx/directives/code.py +86 -56
- sphinx/directives/other.py +50 -36
- sphinx/directives/patches.py +29 -19
- sphinx/domains/__init__.py +20 -120
- sphinx/domains/_domains_container.py +281 -0
- sphinx/domains/_index.py +110 -0
- sphinx/domains/c/__init__.py +3 -3
- sphinx/domains/c/_parser.py +10 -6
- sphinx/domains/changeset.py +5 -3
- sphinx/domains/citation.py +5 -3
- sphinx/domains/cpp/__init__.py +9 -11
- sphinx/domains/cpp/_parser.py +8 -7
- sphinx/domains/index.py +3 -3
- sphinx/domains/javascript.py +12 -7
- sphinx/domains/math.py +2 -2
- sphinx/domains/python/__init__.py +10 -5
- sphinx/domains/python/_object.py +1 -1
- sphinx/domains/rst.py +5 -5
- sphinx/domains/std/__init__.py +16 -11
- sphinx/environment/__init__.py +206 -146
- sphinx/environment/adapters/asset.py +3 -2
- sphinx/environment/adapters/indexentries.py +74 -33
- sphinx/environment/adapters/toctree.py +100 -43
- sphinx/environment/collectors/__init__.py +19 -8
- sphinx/environment/collectors/asset.py +47 -15
- sphinx/environment/collectors/dependencies.py +8 -4
- sphinx/environment/collectors/metadata.py +7 -2
- sphinx/environment/collectors/title.py +7 -2
- sphinx/environment/collectors/toctree.py +54 -22
- sphinx/errors.py +4 -1
- sphinx/events.py +314 -7
- sphinx/ext/apidoc.py +42 -18
- sphinx/ext/autodoc/__init__.py +52 -24
- sphinx/ext/autodoc/importer.py +6 -9
- sphinx/ext/autosectionlabel.py +1 -2
- sphinx/ext/autosummary/__init__.py +3 -1
- sphinx/ext/autosummary/generate.py +28 -14
- sphinx/ext/coverage.py +7 -7
- sphinx/ext/doctest.py +4 -8
- sphinx/ext/duration.py +6 -5
- sphinx/ext/inheritance_diagram.py +1 -1
- sphinx/ext/intersphinx/_cli.py +6 -4
- sphinx/ext/intersphinx/_load.py +77 -32
- sphinx/ext/intersphinx/_resolve.py +173 -79
- sphinx/ext/intersphinx/_shared.py +7 -5
- sphinx/ext/linkcode.py +7 -1
- sphinx/ext/mathjax.py +1 -2
- sphinx/ext/napoleon/__init__.py +37 -24
- sphinx/ext/napoleon/docstring.py +202 -134
- sphinx/ext/todo.py +5 -3
- sphinx/highlighting.py +9 -2
- sphinx/io.py +1 -1
- sphinx/jinja2glue.py +27 -6
- sphinx/locale/__init__.py +6 -2
- sphinx/locale/ar/LC_MESSAGES/sphinx.js +8 -1
- sphinx/locale/ar/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ar/LC_MESSAGES/sphinx.po +2246 -2288
- sphinx/locale/bg/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/bg/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bg/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/bn/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/bn/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/bn/LC_MESSAGES/sphinx.po +2349 -2395
- sphinx/locale/ca/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ca/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ca/LC_MESSAGES/sphinx.po +2846 -2892
- sphinx/locale/cak/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/cak/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cak/LC_MESSAGES/sphinx.po +2213 -2259
- sphinx/locale/cs/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/cs/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cs/LC_MESSAGES/sphinx.po +2225 -2269
- sphinx/locale/cy/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/cy/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/cy/LC_MESSAGES/sphinx.po +2403 -2447
- sphinx/locale/da/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/da/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/da/LC_MESSAGES/sphinx.po +2214 -2260
- sphinx/locale/de/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/de/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de/LC_MESSAGES/sphinx.po +2230 -2276
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/de_DE/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/el/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/el/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/el/LC_MESSAGES/sphinx.po +2619 -2665
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_DE/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_FR/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_GB/LC_MESSAGES/sphinx.po +2519 -2565
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/en_HK/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/eo/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/eo/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eo/LC_MESSAGES/sphinx.po +2232 -2278
- sphinx/locale/es/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/es/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es/LC_MESSAGES/sphinx.po +2516 -2561
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/es_CO/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/et/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/et/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/et/LC_MESSAGES/sphinx.po +2317 -2363
- sphinx/locale/eu/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/eu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/eu/LC_MESSAGES/sphinx.po +2218 -2264
- sphinx/locale/fa/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/fa/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fa/LC_MESSAGES/sphinx.po +2505 -2551
- sphinx/locale/fi/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/fi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fi/LC_MESSAGES/sphinx.po +2303 -2349
- sphinx/locale/fr/LC_MESSAGES/sphinx.js +6 -2
- sphinx/locale/fr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr/LC_MESSAGES/sphinx.po +2863 -2908
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/gl/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/gl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/gl/LC_MESSAGES/sphinx.po +2571 -2617
- sphinx/locale/he/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/he/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/he/LC_MESSAGES/sphinx.po +2307 -2352
- sphinx/locale/hi/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi/LC_MESSAGES/sphinx.po +2580 -2626
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/hr/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/hr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hr/LC_MESSAGES/sphinx.po +2238 -2283
- sphinx/locale/hu/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/hu/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/hu/LC_MESSAGES/sphinx.po +2228 -2274
- sphinx/locale/id/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/id/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/id/LC_MESSAGES/sphinx.po +2787 -2834
- sphinx/locale/is/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/is/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/is/LC_MESSAGES/sphinx.po +2224 -2270
- sphinx/locale/it/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/it/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/it/LC_MESSAGES/sphinx.po +2231 -2276
- sphinx/locale/ja/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/ja/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ja/LC_MESSAGES/sphinx.po +2507 -2554
- sphinx/locale/ka/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ka/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ka/LC_MESSAGES/sphinx.po +2428 -2474
- sphinx/locale/ko/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/ko/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ko/LC_MESSAGES/sphinx.po +2516 -2563
- sphinx/locale/lt/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/lt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lt/LC_MESSAGES/sphinx.po +2425 -2469
- sphinx/locale/lv/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/lv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/lv/LC_MESSAGES/sphinx.po +2362 -2407
- sphinx/locale/mk/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/mk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/mk/LC_MESSAGES/sphinx.po +2121 -2167
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po +2220 -2266
- sphinx/locale/ne/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ne/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ne/LC_MESSAGES/sphinx.po +2221 -2267
- sphinx/locale/nl/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/nl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/nl/LC_MESSAGES/sphinx.po +2240 -2286
- sphinx/locale/pl/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/pl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pl/LC_MESSAGES/sphinx.po +2319 -2363
- sphinx/locale/pt/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt/LC_MESSAGES/sphinx.po +2114 -2159
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po +2854 -2899
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po +2224 -2269
- sphinx/locale/ro/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/ro/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ro/LC_MESSAGES/sphinx.po +2226 -2271
- sphinx/locale/ru/LC_MESSAGES/sphinx.js +8 -3
- sphinx/locale/ru/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ru/LC_MESSAGES/sphinx.po +2841 -2885
- sphinx/locale/si/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/si/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/si/LC_MESSAGES/sphinx.po +2294 -2340
- sphinx/locale/sk/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/sk/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sk/LC_MESSAGES/sphinx.po +2497 -2541
- sphinx/locale/sl/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/sl/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sl/LC_MESSAGES/sphinx.po +2331 -2375
- sphinx/locale/sphinx.pot +2121 -2167
- sphinx/locale/sq/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/sq/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sq/LC_MESSAGES/sphinx.po +2855 -2901
- sphinx/locale/sr/LC_MESSAGES/sphinx.js +5 -1
- sphinx/locale/sr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr/LC_MESSAGES/sphinx.po +2203 -2248
- sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/sv/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/sv/LC_MESSAGES/sphinx.po +2423 -2469
- sphinx/locale/te/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/te/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/te/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/tr/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/tr/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/tr/LC_MESSAGES/sphinx.po +2443 -2489
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.js +6 -1
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po +2329 -2373
- sphinx/locale/ur/LC_MESSAGES/sphinx.js +4 -1
- sphinx/locale/ur/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/ur/LC_MESSAGES/sphinx.po +2113 -2159
- sphinx/locale/vi/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/vi/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/vi/LC_MESSAGES/sphinx.po +2199 -2246
- sphinx/locale/yue/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/yue/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/yue/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po +2845 -2892
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.js +3 -1
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo +0 -0
- sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po +2112 -2159
- sphinx/parsers.py +3 -1
- sphinx/project.py +6 -2
- sphinx/pycode/__init__.py +11 -4
- sphinx/pycode/ast.py +58 -58
- sphinx/pycode/parser.py +49 -28
- sphinx/pygments_styles.py +49 -49
- sphinx/registry.py +8 -3
- sphinx/roles.py +133 -13
- sphinx/search/__init__.py +146 -87
- sphinx/search/da.py +2 -4
- sphinx/search/de.py +2 -4
- sphinx/search/en.py +4 -4
- sphinx/search/es.py +2 -4
- sphinx/search/fi.py +2 -4
- sphinx/search/fr.py +2 -4
- sphinx/search/hu.py +2 -4
- sphinx/search/it.py +2 -4
- sphinx/search/ja.py +55 -32
- sphinx/search/nl.py +2 -4
- sphinx/search/no.py +2 -4
- sphinx/search/pt.py +2 -4
- sphinx/search/ro.py +0 -2
- sphinx/search/ru.py +2 -4
- sphinx/search/sv.py +2 -4
- sphinx/search/tr.py +0 -2
- sphinx/search/zh.py +18 -13
- sphinx/templates/graphviz/graphviz.css +0 -7
- sphinx/testing/fixtures.py +6 -5
- sphinx/testing/path.py +7 -5
- sphinx/testing/util.py +63 -29
- sphinx/texinputs/sphinx.sty +107 -39
- sphinx/texinputs/sphinxlatexadmonitions.sty +51 -35
- sphinx/texinputs/sphinxlatexcontainers.sty +1 -1
- sphinx/texinputs/sphinxlatexgraphics.sty +3 -2
- sphinx/texinputs/sphinxlatexindbibtoc.sty +1 -1
- sphinx/texinputs/sphinxlatexlists.sty +1 -1
- sphinx/texinputs/sphinxlatexliterals.sty +4 -1
- sphinx/texinputs/sphinxlatexnumfig.sty +22 -9
- sphinx/texinputs/sphinxlatexobjects.sty +1 -1
- sphinx/texinputs/sphinxlatexshadowbox.sty +72 -10
- sphinx/texinputs/sphinxlatexstyleheadings.sty +7 -2
- sphinx/texinputs/sphinxlatexstylepage.sty +2 -8
- sphinx/texinputs/sphinxlatexstyletext.sty +2 -4
- sphinx/texinputs/sphinxlatextables.sty +1 -1
- sphinx/texinputs/sphinxoptionsgeometry.sty +1 -1
- sphinx/texinputs/sphinxoptionshyperref.sty +1 -1
- sphinx/themes/agogo/layout.html +1 -10
- sphinx/themes/agogo/static/agogo.css.jinja +0 -7
- sphinx/themes/basic/defindex.html +1 -8
- sphinx/themes/basic/domainindex.html +1 -9
- sphinx/themes/basic/genindex-single.html +1 -9
- sphinx/themes/basic/genindex-split.html +1 -9
- sphinx/themes/basic/genindex.html +1 -9
- sphinx/themes/basic/globaltoc.html +1 -9
- sphinx/themes/basic/layout.html +1 -9
- sphinx/themes/basic/localtoc.html +1 -9
- sphinx/themes/basic/page.html +1 -9
- sphinx/themes/basic/relations.html +1 -9
- sphinx/themes/basic/search.html +1 -9
- sphinx/themes/basic/searchbox.html +1 -9
- sphinx/themes/basic/searchfield.html +4 -10
- sphinx/themes/basic/sourcelink.html +1 -9
- sphinx/themes/basic/static/basic.css.jinja +2 -13
- sphinx/themes/basic/static/doctools.js +0 -7
- sphinx/themes/basic/static/language_data.js.jinja +0 -7
- sphinx/themes/basic/static/searchtools.js +25 -13
- sphinx/themes/bizstyle/layout.html +1 -9
- sphinx/themes/bizstyle/static/bizstyle.css.jinja +0 -7
- sphinx/themes/bizstyle/static/bizstyle.js.jinja +5 -11
- sphinx/themes/classic/layout.html +1 -9
- sphinx/themes/classic/static/classic.css.jinja +0 -7
- sphinx/themes/classic/static/sidebar.js.jinja +0 -6
- sphinx/themes/epub/epub-cover.html +1 -9
- sphinx/themes/epub/layout.html +1 -9
- sphinx/themes/epub/static/epub.css.jinja +0 -7
- sphinx/themes/haiku/layout.html +1 -9
- sphinx/themes/haiku/static/haiku.css.jinja +0 -6
- sphinx/themes/nature/static/nature.css.jinja +0 -7
- sphinx/themes/nonav/layout.html +1 -9
- sphinx/themes/nonav/static/nonav.css.jinja +0 -7
- sphinx/themes/pyramid/static/epub.css.jinja +0 -7
- sphinx/themes/pyramid/static/pyramid.css.jinja +0 -7
- sphinx/themes/scrolls/layout.html +1 -10
- sphinx/themes/scrolls/static/scrolls.css.jinja +0 -7
- sphinx/themes/sphinxdoc/static/sphinxdoc.css.jinja +2 -7
- sphinx/themes/traditional/static/traditional.css.jinja +0 -7
- sphinx/theming.py +18 -6
- sphinx/transforms/__init__.py +56 -35
- sphinx/transforms/compact_bullet_list.py +3 -2
- sphinx/transforms/i18n.py +132 -50
- sphinx/transforms/post_transforms/__init__.py +94 -43
- sphinx/transforms/post_transforms/code.py +7 -6
- sphinx/transforms/post_transforms/images.py +71 -54
- sphinx/transforms/references.py +1 -2
- sphinx/util/__init__.py +23 -194
- sphinx/util/_files.py +80 -0
- sphinx/util/_importer.py +27 -0
- sphinx/util/_io.py +1 -2
- sphinx/util/_lines.py +26 -0
- sphinx/util/_pathlib.py +5 -2
- sphinx/util/_serialise.py +53 -0
- sphinx/util/_timestamps.py +2 -1
- sphinx/util/_uri.py +16 -0
- sphinx/util/cfamily.py +48 -25
- sphinx/util/console.py +1 -0
- sphinx/util/display.py +1 -1
- sphinx/util/docfields.py +125 -45
- sphinx/util/docstrings.py +1 -1
- sphinx/util/docutils.py +118 -44
- sphinx/util/exceptions.py +11 -5
- sphinx/util/fileutil.py +53 -32
- sphinx/util/http_date.py +9 -7
- sphinx/util/i18n.py +49 -16
- sphinx/util/images.py +7 -6
- sphinx/util/inspect.py +29 -12
- sphinx/util/inventory.py +47 -29
- sphinx/util/logging.py +58 -85
- sphinx/util/matching.py +3 -3
- sphinx/util/math.py +1 -1
- sphinx/util/nodes.py +176 -108
- sphinx/util/osutil.py +13 -10
- sphinx/util/parallel.py +5 -4
- sphinx/util/parsing.py +5 -3
- sphinx/util/png.py +3 -3
- sphinx/util/requests.py +8 -4
- sphinx/util/rst.py +5 -3
- sphinx/util/tags.py +5 -2
- sphinx/util/template.py +26 -11
- sphinx/util/texescape.py +2 -2
- sphinx/util/typing.py +89 -38
- sphinx/versioning.py +3 -1
- sphinx/writers/html.py +22 -7
- sphinx/writers/html5.py +113 -64
- sphinx/writers/latex.py +408 -221
- sphinx/writers/manpage.py +25 -15
- sphinx/writers/texinfo.py +94 -82
- sphinx/writers/text.py +87 -53
- sphinx/writers/xml.py +5 -4
- sphinx-8.1.0.dist-info/LICENSE.rst +31 -0
- {sphinx-8.0.2.dist-info → sphinx-8.1.0.dist-info}/METADATA +13 -11
- sphinx-8.1.0.dist-info/RECORD +598 -0
- sphinx-8.0.2.dist-info/LICENSE.rst +0 -67
- sphinx-8.0.2.dist-info/RECORD +0 -590
- {sphinx-8.0.2.dist-info → sphinx-8.1.0.dist-info}/WHEEL +0 -0
- {sphinx-8.0.2.dist-info → sphinx-8.1.0.dist-info}/entry_points.txt +0 -0
sphinx/domains/javascript.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import contextlib
|
|
6
|
-
from typing import TYPE_CHECKING, Any, ClassVar
|
|
6
|
+
from typing import TYPE_CHECKING, Any, ClassVar
|
|
7
7
|
|
|
8
8
|
from docutils import nodes
|
|
9
9
|
from docutils.parsers.rst import directives
|
|
@@ -20,7 +20,7 @@ from sphinx.util.docutils import SphinxDirective
|
|
|
20
20
|
from sphinx.util.nodes import make_id, make_refnode
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING:
|
|
23
|
-
from collections.abc import Iterator
|
|
23
|
+
from collections.abc import Iterator, Set
|
|
24
24
|
|
|
25
25
|
from docutils.nodes import Element, Node
|
|
26
26
|
|
|
@@ -150,7 +150,7 @@ class JSObject(ObjectDescription[tuple[str, str]]):
|
|
|
150
150
|
signode['ids'].append(node_id)
|
|
151
151
|
self.state.document.note_explicit_target(signode)
|
|
152
152
|
|
|
153
|
-
domain =
|
|
153
|
+
domain = self.env.domains.javascript_domain
|
|
154
154
|
domain.note_object(fullname, self.objtype, node_id, location=signode)
|
|
155
155
|
|
|
156
156
|
if 'no-index-entry' not in self.options:
|
|
@@ -307,6 +307,12 @@ class JSModule(SphinxDirective):
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
def run(self) -> list[Node]:
|
|
310
|
+
# Copy old option names to new ones
|
|
311
|
+
# xref RemovedInSphinx90Warning
|
|
312
|
+
# # deprecate noindex in Sphinx 9.0
|
|
313
|
+
if 'no-index' not in self.options and 'noindex' in self.options:
|
|
314
|
+
self.options['no-index'] = self.options['noindex']
|
|
315
|
+
|
|
310
316
|
mod_name = self.arguments[0].strip()
|
|
311
317
|
self.env.ref_context['js:module'] = mod_name
|
|
312
318
|
no_index = 'no-index' in self.options
|
|
@@ -315,7 +321,7 @@ class JSModule(SphinxDirective):
|
|
|
315
321
|
|
|
316
322
|
ret: list[Node] = []
|
|
317
323
|
if not no_index:
|
|
318
|
-
domain =
|
|
324
|
+
domain = self.env.domains.javascript_domain
|
|
319
325
|
|
|
320
326
|
node_id = make_id(self.env, self.state.document, 'module', mod_name)
|
|
321
327
|
domain.note_module(mod_name, node_id)
|
|
@@ -417,7 +423,7 @@ class JavaScriptDomain(Domain):
|
|
|
417
423
|
if pkg_docname == docname:
|
|
418
424
|
del self.modules[modname]
|
|
419
425
|
|
|
420
|
-
def merge_domaindata(self, docnames:
|
|
426
|
+
def merge_domaindata(self, docnames: Set[str], otherdata: dict[str, Any]) -> None:
|
|
421
427
|
# XXX check duplicates
|
|
422
428
|
for fullname, (fn, node_id, objtype) in otherdata['objects'].items():
|
|
423
429
|
if fn in docnames:
|
|
@@ -435,8 +441,7 @@ class JavaScriptDomain(Domain):
|
|
|
435
441
|
typ: str | None,
|
|
436
442
|
searchorder: int = 0,
|
|
437
443
|
) -> tuple[str | None, tuple[str, str, str] | None]:
|
|
438
|
-
|
|
439
|
-
name = name[:-2]
|
|
444
|
+
name = name.removesuffix('()')
|
|
440
445
|
|
|
441
446
|
searches = []
|
|
442
447
|
if mod_name and prefix:
|
sphinx/domains/math.py
CHANGED
|
@@ -14,7 +14,7 @@ from sphinx.util import logging
|
|
|
14
14
|
from sphinx.util.nodes import make_refnode
|
|
15
15
|
|
|
16
16
|
if TYPE_CHECKING:
|
|
17
|
-
from collections.abc import Iterable
|
|
17
|
+
from collections.abc import Iterable, Set
|
|
18
18
|
|
|
19
19
|
from sphinx.addnodes import pending_xref
|
|
20
20
|
from sphinx.application import Sphinx
|
|
@@ -85,7 +85,7 @@ class MathDomain(Domain):
|
|
|
85
85
|
|
|
86
86
|
self.data['has_equations'].pop(docname, None)
|
|
87
87
|
|
|
88
|
-
def merge_domaindata(self, docnames:
|
|
88
|
+
def merge_domaindata(self, docnames: Set[str], otherdata: dict[str, Any]) -> None:
|
|
89
89
|
for labelid, (doc, eqno) in otherdata['objects'].items():
|
|
90
90
|
if doc in docnames:
|
|
91
91
|
self.equations[labelid] = (doc, eqno)
|
|
@@ -25,7 +25,7 @@ from sphinx.util.nodes import (
|
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
if TYPE_CHECKING:
|
|
28
|
-
from collections.abc import Iterable, Iterator
|
|
28
|
+
from collections.abc import Iterable, Iterator, Set
|
|
29
29
|
|
|
30
30
|
from docutils.nodes import Element, Node
|
|
31
31
|
|
|
@@ -449,7 +449,13 @@ class PyModule(SphinxDirective):
|
|
|
449
449
|
}
|
|
450
450
|
|
|
451
451
|
def run(self) -> list[Node]:
|
|
452
|
-
|
|
452
|
+
# Copy old option names to new ones
|
|
453
|
+
# xref RemovedInSphinx90Warning
|
|
454
|
+
# # deprecate noindex in Sphinx 9.0
|
|
455
|
+
if 'no-index' not in self.options and 'noindex' in self.options:
|
|
456
|
+
self.options['no-index'] = self.options['noindex']
|
|
457
|
+
|
|
458
|
+
domain = self.env.domains.python_domain
|
|
453
459
|
|
|
454
460
|
modname = self.arguments[0].strip()
|
|
455
461
|
no_index = 'no-index' in self.options
|
|
@@ -715,7 +721,7 @@ class PythonDomain(Domain):
|
|
|
715
721
|
if mod.docname == docname:
|
|
716
722
|
del self.modules[modname]
|
|
717
723
|
|
|
718
|
-
def merge_domaindata(self, docnames:
|
|
724
|
+
def merge_domaindata(self, docnames: Set[str], otherdata: dict[str, Any]) -> None:
|
|
719
725
|
# XXX check duplicates?
|
|
720
726
|
for fullname, obj in otherdata['objects'].items():
|
|
721
727
|
if obj.docname in docnames:
|
|
@@ -731,8 +737,7 @@ class PythonDomain(Domain):
|
|
|
731
737
|
and/or classname. Returns a list of (name, object entry) tuples.
|
|
732
738
|
"""
|
|
733
739
|
# skip parens
|
|
734
|
-
|
|
735
|
-
name = name[:-2]
|
|
740
|
+
name = name.removesuffix('()')
|
|
736
741
|
|
|
737
742
|
if not name:
|
|
738
743
|
return []
|
sphinx/domains/python/_object.py
CHANGED
|
@@ -337,7 +337,7 @@ class PyObject(ObjectDescription[tuple[str, str]]):
|
|
|
337
337
|
signode['ids'].append(node_id)
|
|
338
338
|
self.state.document.note_explicit_target(signode)
|
|
339
339
|
|
|
340
|
-
domain = self.env.domains
|
|
340
|
+
domain = self.env.domains.python_domain
|
|
341
341
|
domain.note_object(fullname, self.objtype, node_id, location=signode)
|
|
342
342
|
|
|
343
343
|
canonical_name = self.options.get('canonical')
|
sphinx/domains/rst.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import re
|
|
6
|
-
from typing import TYPE_CHECKING, Any, ClassVar
|
|
6
|
+
from typing import TYPE_CHECKING, Any, ClassVar
|
|
7
7
|
|
|
8
8
|
from docutils.parsers.rst import directives
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@ from sphinx.util import logging
|
|
|
16
16
|
from sphinx.util.nodes import make_id, make_refnode
|
|
17
17
|
|
|
18
18
|
if TYPE_CHECKING:
|
|
19
|
-
from collections.abc import Iterator
|
|
19
|
+
from collections.abc import Iterator, Set
|
|
20
20
|
|
|
21
21
|
from docutils.nodes import Element
|
|
22
22
|
|
|
@@ -51,7 +51,7 @@ class ReSTMarkup(ObjectDescription[str]):
|
|
|
51
51
|
signode['ids'].append(node_id)
|
|
52
52
|
self.state.document.note_explicit_target(signode)
|
|
53
53
|
|
|
54
|
-
domain =
|
|
54
|
+
domain = self.env.domains.restructuredtext_domain
|
|
55
55
|
domain.note_object(self.objtype, name, node_id, location=signode)
|
|
56
56
|
|
|
57
57
|
if 'no-index-entry' not in self.options:
|
|
@@ -164,7 +164,7 @@ class ReSTDirectiveOption(ReSTMarkup):
|
|
|
164
164
|
return name
|
|
165
165
|
|
|
166
166
|
def add_target_and_index(self, name: str, sig: str, signode: desc_signature) -> None:
|
|
167
|
-
domain =
|
|
167
|
+
domain = self.env.domains.restructuredtext_domain
|
|
168
168
|
|
|
169
169
|
directive_name = self.current_directive
|
|
170
170
|
if directive_name:
|
|
@@ -254,7 +254,7 @@ class ReSTDomain(Domain):
|
|
|
254
254
|
if doc == docname:
|
|
255
255
|
del self.objects[typ, name]
|
|
256
256
|
|
|
257
|
-
def merge_domaindata(self, docnames:
|
|
257
|
+
def merge_domaindata(self, docnames: Set[str], otherdata: dict[str, Any]) -> None:
|
|
258
258
|
# XXX check duplicates
|
|
259
259
|
for (typ, name), (doc, node_id) in otherdata['objects'].items():
|
|
260
260
|
if doc in docnames:
|
sphinx/domains/std/__init__.py
CHANGED
|
@@ -14,7 +14,7 @@ from docutils.statemachine import StringList
|
|
|
14
14
|
from sphinx import addnodes
|
|
15
15
|
from sphinx.addnodes import desc_signature, pending_xref
|
|
16
16
|
from sphinx.directives import ObjectDescription
|
|
17
|
-
from sphinx.domains import Domain, ObjType
|
|
17
|
+
from sphinx.domains import Domain, ObjType
|
|
18
18
|
from sphinx.locale import _, __
|
|
19
19
|
from sphinx.roles import EmphasizedLiteral, XRefRole
|
|
20
20
|
from sphinx.util import docname_join, logging, ws_re
|
|
@@ -23,12 +23,17 @@ from sphinx.util.nodes import clean_astext, make_id, make_refnode
|
|
|
23
23
|
from sphinx.util.parsing import nested_parse_to_nodes
|
|
24
24
|
|
|
25
25
|
if TYPE_CHECKING:
|
|
26
|
-
from collections.abc import Callable, Iterable, Iterator
|
|
26
|
+
from collections.abc import Callable, Iterable, Iterator, Set
|
|
27
27
|
|
|
28
28
|
from sphinx.application import Sphinx
|
|
29
29
|
from sphinx.builders import Builder
|
|
30
30
|
from sphinx.environment import BuildEnvironment
|
|
31
|
-
from sphinx.util.typing import
|
|
31
|
+
from sphinx.util.typing import (
|
|
32
|
+
ExtensionMetadata,
|
|
33
|
+
OptionSpec,
|
|
34
|
+
RoleFunction,
|
|
35
|
+
TitleGetter,
|
|
36
|
+
)
|
|
32
37
|
|
|
33
38
|
logger = logging.getLogger(__name__)
|
|
34
39
|
|
|
@@ -73,7 +78,7 @@ class GenericObject(ObjectDescription[str]):
|
|
|
73
78
|
indexentry = self.indextemplate % (name,)
|
|
74
79
|
self.indexnode['entries'].append((indextype, indexentry, node_id, '', None))
|
|
75
80
|
|
|
76
|
-
std =
|
|
81
|
+
std = self.env.domains.standard_domain
|
|
77
82
|
std.note_object(self.objtype, name, node_id, location=signode)
|
|
78
83
|
|
|
79
84
|
|
|
@@ -135,7 +140,8 @@ class ConfigurationValue(ObjectDescription[str]):
|
|
|
135
140
|
self.state.document.note_explicit_target(signode)
|
|
136
141
|
index_entry = self.index_template % name
|
|
137
142
|
self.indexnode['entries'].append(('pair', index_entry, node_id, '', None))
|
|
138
|
-
self.env.domains
|
|
143
|
+
domain = self.env.domains.standard_domain
|
|
144
|
+
domain.note_object(self.objtype, name, node_id, location=signode)
|
|
139
145
|
|
|
140
146
|
def transform_content(self, content_node: addnodes.desc_content) -> None:
|
|
141
147
|
"""Insert *type* and *default* as a field list."""
|
|
@@ -206,7 +212,7 @@ class Target(SphinxDirective):
|
|
|
206
212
|
if ':' in self.name:
|
|
207
213
|
_, name = self.name.split(':', 1)
|
|
208
214
|
|
|
209
|
-
std =
|
|
215
|
+
std = self.env.domains.standard_domain
|
|
210
216
|
std.note_object(name, fullname, node_id, location=node)
|
|
211
217
|
|
|
212
218
|
return ret
|
|
@@ -289,7 +295,7 @@ class Cmdoption(ObjectDescription[str]):
|
|
|
289
295
|
|
|
290
296
|
self.state.document.note_explicit_target(signode)
|
|
291
297
|
|
|
292
|
-
domain = self.env.domains
|
|
298
|
+
domain = self.env.domains.standard_domain
|
|
293
299
|
for optname in signode.get('allnames', []):
|
|
294
300
|
domain.add_program_option(currprogram, optname,
|
|
295
301
|
self.env.docname, signode['ids'][0])
|
|
@@ -360,8 +366,7 @@ def make_glossary_term(env: BuildEnvironment, textnodes: Iterable[Node], index_k
|
|
|
360
366
|
term['ids'].append(node_id)
|
|
361
367
|
document.note_explicit_target(term)
|
|
362
368
|
|
|
363
|
-
|
|
364
|
-
std._note_term(termtext, node_id, location=term)
|
|
369
|
+
env.domains.standard_domain._note_term(termtext, node_id, location=term)
|
|
365
370
|
|
|
366
371
|
# add an index entry too
|
|
367
372
|
indexnode = addnodes.index()
|
|
@@ -534,7 +539,7 @@ class ProductionList(SphinxDirective):
|
|
|
534
539
|
option_spec: ClassVar[OptionSpec] = {}
|
|
535
540
|
|
|
536
541
|
def run(self) -> list[Node]:
|
|
537
|
-
domain =
|
|
542
|
+
domain = self.env.domains.standard_domain
|
|
538
543
|
node: Element = addnodes.productionlist()
|
|
539
544
|
self.set_source_info(node)
|
|
540
545
|
# The backslash handling is from ObjectDescription.get_signatures
|
|
@@ -761,7 +766,7 @@ class StandardDomain(Domain):
|
|
|
761
766
|
if fn == docname:
|
|
762
767
|
del self.anonlabels[key]
|
|
763
768
|
|
|
764
|
-
def merge_domaindata(self, docnames:
|
|
769
|
+
def merge_domaindata(self, docnames: Set[str], otherdata: dict[str, Any]) -> None:
|
|
765
770
|
# XXX duplicates?
|
|
766
771
|
for key, data in otherdata['progoptions'].items():
|
|
767
772
|
if data[0] in docnames:
|