Sphinx 7.3

版本 7.3.7 (发布于 2024 年 4 月 19 日)

修复的 Bug

  • #12299: 推迟通过入口点定义的主题的加载,直到用户或子主题明确使用它们。补丁由 Adam Turner 提供。

  • #12305: 对于不支持的主题配置部分,返回 theme.get_config() 的默认值。补丁由 Adam Turner 提供。

版本 7.3.6 (发布于 2024 年 4 月 17 日)

修复的 Bug

  • #12295: 在 C 和 C++ 域中重新导出所有 AST 类型。补丁由 Adam Turner 提供。

  • #12295: 将 sphinx.domains.python._annotations 中的各种对象重新导出到 sphinx.domains.python 中。补丁由 Jacob Chesslo 和 Adam Turner 提供。

版本 7.3.5 (发布于 2024 年 4 月 17 日)

修复的 Bug

  • #12295: 将 sphinx.domains.python._object 中的各种对象重新导出到 sphinx.domains.python 中。补丁由 Jacob Chesslo 和 Adam Turner 提供。

版本 7.3.4 (发布于 2024 年 4 月 17 日)

修复的 Bug

  • 处理 Any 不是 type 实例的情况。补丁由 Adam Turner 提供。

版本 7.3.3 (发布于 2024 年 4 月 17 日)

修复的 Bug

  • #12290: 修复了当使用 Any 作为有效类型设置配置值到非默认类型时出现的误报警告。补丁由 Adam Turner 提供。

版本 7.3.2 (发布于 2024 年 4 月 17 日)

修复的 Bug

  • 预加载所有通过入口点定义的主题。补丁由 Adam Turner 提供。

  • 修复了 'Furo' 主题与新式配置值之间的不良交互。补丁由 Adam Turner 提供。

版本 7.3.1 (发布于 2024 年 4 月 17 日)

依赖项

  • 在 Python 3.10 及更早版本中需要 tomli。补丁由 Adam Turner 提供。

版本 7.3.0 (发布于 2024 年 4 月 16 日)

依赖项

  • #11858: 将 Alabaster 的最低支持版本提高到 0.7.14。补丁由 Adam Turner 提供。

  • #12267: 支持 Docutils 0.21。补丁由 Adam Turner 提供。

  • #12012: 使用 types-docutils 代替 docutils-stubs

已弃用

  • #11693: 在 sphinx-quickstart 中支持旧式的 Makefilemake.bat 输出,以及相关的选项 -M-m--no-use-make-mode--use-make-mode

  • #11285: 直接访问 sphinx.testing.util.SphinxTestApp._statussphinx.testing.util.SphinxTestApp._warning 已弃用。请改用公共属性 sphinx.testing.util.SphinxTestApp.statussphinx.testing.util.SphinxTestApp.warning。补丁由 Bénédikt Tran 提供。

  • 测试: sphinx.testing.util.strip_escseq() 已弃用,请改用 sphinx.util.console.strip_colors()。补丁由 Bénédikt Tran 提供。

新增功能

  • #12265: 通过 theme.toml 支持主题配置。

  • #11701: HTML 搜索: 采用新的 <search> 元素。补丁由 Bénédikt Tran 提供。

  • #11776: 为 sphinx-build 添加长选项名称。补丁由 Hugo van Kemenade、Adam Turner、Bénédikt Tran 和 Ezio Melotti 提供。

  • sphinx-build 选项组织成组。补丁由 Adam Turner 提供。

  • #11855: 推迟配置值的计算。补丁由 Adam Turner 提供。

  • 添加 :no-search: 作为 :nosearch: 元数据字段的别名。补丁由 Adam Turner 提供。

  • #11803: autodoc: 如果定义了枚举,则使用重写的 __repr__() 函数。补丁由 Shengyu Zhang 提供。

  • #11825: 允许在手册页角色中使用自定义目标。补丁由 Nicolas Peugnet 提供。

  • #11892: 提高了 C++ 域中解析交叉引用的性能。补丁由 Rouslan Korneychuk 提供。

  • #11905: 添加了 versionremoved 指令。补丁由 Hugo van Kemenade、Adam Turner 和 C.A.M. Gerlach 提供。

  • #11981: 改进了使用 slice 语法的签名渲染,例如 def foo(arg: np.float64[:,:]) -> None: ...

  • 手册页构建器现在使用 groff 设备控制命令,为超链接添加 OSC 8 锚点。

  • #11015: 将 versionadded 指令的文本从 New in [...] 更改为 Added in [...]。补丁由 Bénédikt Tran 提供。

  • #12131: 添加了 show_warning_types 配置选项。补丁由 Chris Sewell 提供。

  • #12193: 改进了未知角色的 external 警告。特别是,如果错误地使用了对象类型,则建议相关的角色名称。补丁由 Chris Sewell 提供。

  • 添加公共类型别名 sphinx.util.typing.ExtensionMetadata。扩展开发者可以使用它来注释其 setup 函数的返回类型。补丁由 Chris Sewell 提供。

修复的 Bug

  • #11668: 当 theme.conf 缺失时,引发一个有用的错误。补丁由 Vinay Sajip 提供。

  • #11622: 确保 searchindex.js 中键的顺序是确定性的。补丁由 Pietro Albini 提供。

  • #11617: 当写入警告文件时,使用 -w 将从输出中剥离 ANSI 控制序列。补丁由 Bénédikt Tran 提供。

  • #11666: 跳过 CatalogRepository.pofiles 中的所有隐藏目录。补丁由 Aryaz Eghbali 提供。

  • #9686: html 构建器: 修复了当标题中出现公式时 MathJax 懒加载的问题。补丁由 Bénédikt Tran 提供。

  • #11483: singlehtml 构建器: 修复了当索引不包含任何数学公式时 MathJax 懒加载的问题。补丁由 Bénédikt Tran 提供。

  • #11697: HTML 搜索: 添加“noindex”meta robots 标签。补丁由 James Addison 提供。

  • #11678: 修复了 sphinx.ext.coverage 中可能出现的 ZeroDivisionError。补丁由 Stephen Finucane 提供。

  • #11756: LaTeX: 由于缺少 substitutefont 包(在使用 fontencT2A 选项且文档语言不是西里尔语时触发),导致最近的 TeXLive 构建错误。补丁由 Jean-François B. 提供。

  • #11675: 修复了在不支持 ANSI 控制序列的环境中进度条的渲染问题。补丁由 Bénédikt Tran 提供。

  • #11861: 将更多具有不正确 __module__ 属性的类型列入白名单。补丁由 Adam Turner 提供。

  • #11715: 将 tls_verifytls_cacerts 配置应用到 ImageDownloader。补丁由 Nick Touran 提供。

  • 允许在 productionlist 交叉引用中组名包含连字符。补丁由 Adam Turner 提供。

  • #11433: 添加了 linkcheck_allow_unauthorized 配置选项。将此选项设置为 False 以将 HTTP 401(未授权)服务器响应报告为断开。补丁由 James Addison 提供。

  • #11868: linkcheck: 添加了一个不同的 timeout 报告状态码。通过将 linkcheck_report_timeouts_as_broken 设置为 False 可以启用此功能。补丁由 James Addison 提供。

  • #11869: 刷新 linkcheck_timeout 设置的文档。补丁由 James Addison 提供。

  • #11874: 为 linkcheck_timeout 配置默认的 30 秒值。补丁由 James Addison 提供。

  • #11886: 在 TemplateNotFound 异常中打印 Jinja2 模板路径链。补丁由 Colin Marquardt 提供。

  • #11598: 在 EPUB 渲染中,不对资产的 URL 使用查询组件。补丁由 David Runge 提供。

  • #11904: 在解析注释时支持一元减法。补丁由 James Addison 提供。

  • #11925: 将 sphinxprettysearchresults 扩展列入黑名单;它提供的功能已合并到 Sphinx v2.0.0 中。补丁由 James Addison 提供。

  • #11917: 修复了 Python 3.9 中带注释的继承成员的渲染问题。补丁由 Janet Carson 提供。

  • #11935: C 域: 修复命名空间弹出上下文。补丁由 Frank Dana 提供。

  • #11923: 避免并行构建失败时出现僵尸进程。补丁由 Felix von Drigalski 提供。

  • #11353: 支持继承自 mixin 或数据类型的枚举类。补丁由 Bénédikt Tran 提供。

  • #11962: 修复了使用 :paramtype: 字段时的目标解析问题。补丁由 Bénédikt Tran 提供。

  • #11944: 在搜索预览中使用锚点。补丁由 Will Lachance 提供。

  • #12008: 修复了 intersphinx 目录中 std:label 名称的大小写敏感查找问题。补丁由 Michael Goerz 提供。

  • #11958: HTML 搜索: 修复了部分匹配覆盖完整匹配的问题。补丁由 William Lachance 提供。

  • #11959: 修复了当单词同时出现在标题和文档中时的多词匹配问题。补丁由 Will Lachance 提供。

  • #11474: 修复了 doctrees 缓存导致在某些情况下(例如,当 numfigTrue 时)文件未重建的问题。补丁由 Bénédikt Tran 提供。

  • #11278: autodoc: 修复了 functools.singledispatchmethod@classmethod 结合使用时的渲染问题。补丁由 Bénédikt Tran 提供。

  • #11894: 如果使用 htmlhelp 构建器构建,则不向 css 文件添加校验和。补丁由 reduerK akiM 提供。

  • #12052: 从搜索结果摘要片段的内容中删除 <script><style> 标签。补丁由 James Addison 提供。

  • #11578: HTML 搜索: 将非主索引条目排在其他结果之后。补丁由 Brad King 提供。

  • #12147: autosummary: 修复了一个错误,即当 source_suffix 中指定了多个后缀时,可能会使用错误的文件扩展名。补丁由 Sutou Kouhei 提供。

  • #10786: 改进了当文件(例如资产)在 Sphinx 执行期间被删除时的错误消息。补丁由 Bénédikt Tran 提供。

  • #12040: HTML 搜索: 确保文档标题如果被用户搜索查询部分匹配,则包含在搜索结果中。补丁由 James Addison 提供。

  • #11970: singlehtml 构建器: 使目标 URI 成为 RFC 3986, §4.4 意义上的同文档引用,例如 index.html#foo 变为 #foo。补丁由 Eric Norige 提供。

  • #12271: 部分恢复 Docutils 的 r9562 以修复 EPUB 文件。补丁由 Adam Turner 提供。

  • #12253: 在远程图像后转换下载缓存中转义保留路径字符。补丁由 James Addison 和 Adam Turner 提供。

测试

  • 将测试重新组织到目录中。补丁由 Adam Turner 提供。

  • 清理 SphinxTestApp 中的全局状态。补丁由 Adam Turner 提供。

  • #11285: pytest.mark.sphinx()sphinx.testing.util.SphinxTestApp 接受 warningiserrorkeep_goingverbosity 作为关键字参数。补丁由 Bénédikt Tran 提供。

  • #11285: sphinx.testing.util.SphinxTestAppstatuswarning 参数被检查是否为 io.StringIO 对象(公共 API 错误地假设了这一点而未进行检查)。补丁由 Bénédikt Tran 提供。

  • 当 Java 或 epubcheck 不可用时,将 test_run_epubcheck 的结果报告为 skipped 而不是 success

  • 对测试 HTTP(S) 服务器使用动态分配未使用的端口号。作为副作用,这消除了对测试服务器锁文件的需求,这意味着任何剩余的 tests/test-server.lock 文件都可以安全删除。