首页/新闻资讯/正文详情

Sphinx 5.1 特性深度解析:include_patterns、option_emphasise_placeholders 与 Docutils 0.19 支持

发布时间:2026/9/27 21:32:35 来源:云帆数科 栏目:资讯中心
Sphinx 5.1 特性深度解析:include_patterns、option_emphasise_placeholders 与 Docutils 0.19 支持
文档开发工具【免费下载链接】sphinxThe Sphinx documentation generator项目地址https://gitcode.com/gh_mirrors/sp/sphinx点击查看免费下载Sphinx 5.1含补丁版本 5.1.0 与 5.1.1于 2022 年 7 月发布是 5.x 系列中承上启下的一个重要版本。本指南以仓库中的官方变更日志 doc/changes/5.1.rst 为骨架系统讲解该版本引入的include_patterns配置、option_emphasise_placeholders选项、HTML/LaTeX 主题增强、Docutils 0.19 兼容性等核心变更并结合sphinx/config.py、sphinx/project.py、sphinx/domains/std/__init__.py等源码与官方文档 doc/usage/configuration.rst、doc/latex.rst 进行源码级佐证。读完本文你将掌握 5.1 版本的全部新特性、已知问题修复清单及其底层实现原理能够据此评估升级路径并配置新选项。版本概览版本发布日期定位5.1.02022-07-24引入主要新特性include_patterns、option_emphasise_placeholders、LaTeX 盒子样式扩展、Docutils 0.19 支持5.1.12022-07-26修复 5.1.0 引入的两个回归问题napoleon 迭代器 ValueError、第三方 builder 兼容性5.1.1 作为紧随 5.1.0 两日后发布的补丁版本修复了 5.1.0 引入的回归问题建议所有 5.1.0 用户在升级时直接使用 5.1.1。新特性详解1. 支持 Docutils 0.19#106565.1.0 起 Sphinx 官方支持 Docutils 0.192022-07-05 发布。这意味着构建环境可以将docutils依赖升级到 0.19 而不会破坏 Sphinx 构建流程。需要特别注意的是5.1.0 的 HTML 主题在 Docutils 0.18 早期版本非 0.18.1下存在构建失败问题详见下文Bug 修复章节的 #10596原因是 Docutils 0.18 缺少Node.findall()方法。因此若停留在 Docutils 0.18 系列应至少使用 0.18.1。2. 新增include_patterns配置项#10518include_patterns是exclude_patterns的对偶配置用于正向指定需要纳入构建的源文件。# conf.py include_patterns [**] # 默认值递归包含源目录下所有文件 include_patterns [library/xml] # 仅包含 library/xml 目录 include_patterns [**/doc] # 包含所有 doc 目录文档与源码共存时很有用优先级规则exclude_patterns的优先级高于include_patterns见 doc/usage/configuration.rst。也就是说被exclude_patterns排除的文件即使匹配include_patterns也不会被纳入。源码级原理配置注册于 sphinx/config.pyinclude_patterns: _Opt([**], env, frozenset((str,)))默认值为[**]类型为字符串序列属于环境级env配置。文件发现流程BuildEnvironment.find_files()在 sphinx/environment/init.py 中将exclude_patterns templates_path builder.get_asset_paths()作为排除路径将include_patterns作为包含模式一并传给Project.discover()。Project.discover()sphinx/project.py调用get_matching_files(srcdir, include_paths, [*exclude_paths, *EXCLUDE_PATHS])完成 glob 匹配其中EXCLUDE_PATHS是 Sphinx 内置的默认排除项如.git等。匹配规则与exclude_patterns一致模式针对相对于源目录的路径进行匹配所有平台统一使用斜杠作为目录分隔符。这一配置尤其适合文档与源码混放的仓库可以精确圈定文档范围避免把无关的.rst/.md文件卷入构建。3. 新增option_emphasise_placeholders配置项#10366该选项用于在option指令std 域的命令行选项描述中强调占位符。# conf.py option_emphasise_placeholders True.. option:: -foption{TYPE} 如上配置下TYPE 会被强调渲染要显示字面量花括号需用反斜杠转义\{。官方文档doc/usage/configuration.rst给出的示例option_emphasise_placeholdersTrue且.. option:: -foption{TYPE}时TYPE会被强调显示。该选项类型为bool默认False在 sphinx/config.py 注册为option_emphasise_placeholders: _Opt(False, env, frozenset((bool,)))。源码级原理该选项在Cmdoption.handle_signature()sphinx/domains/std/init.py中生效选项签名按,分隔成多个潜在选项逐个用option_desc_re正则校验当option_emphasise_placeholders开启时多个选项之间使用desc_sig_punctuation(,)与desc_sig_space分隔而非默认的desc_addname(, )参数部分会被samp_role.parse()解析[/]/等作为标点节点其余文本作为强调节点输出{TYPE}中的TYPE因此被强调渲染关闭时参数整体作为desc_addname(args, args)输出保持旧行为。4. HTML 主题stylesheet支持多个 CSS 文件#104445.1 允许通过theme.conf的stylesheet设置指定多个 CSS 文件也允许将html_style设为字符串可迭代对象# conf.py html_style [custom1.css, custom2.css]此前stylesheet只能填单个文件现在可以按顺序加载多个样式表为复杂主题定制提供了便利。5. HTML 主题脚注包裹aside元素#10599使用 Docutils 0.18 或更高版本时连续的脚注会被包裹进aside元素便于独立样式化。该行为与 Docutils 0.19 引入的行为保持一致相当于在 5.1 中提前对齐了 Docutils 0.19 的输出结构。6. LaTeXCSS 风格命名的sphinxsetup键扩展#106485.1 为 LaTeX 输出引入了与 CSS 命名风格类似的sphinxsetup键用于对code-block、topic、attention、caution、danger、error、warning这 7 类指令的盒子分别配置四条独立的border-widthborder-width四个独立的paddingpadding四个corner-radius圆角半径阴影shadow可设为 inset 内阴影边框色、背景色、阴影色border color、background color、shadow color示例配置doc/latex.rstlatex_elements { sphinxsetup: ( pre_border-width2pt, # code-block 边框宽度 pre_border-radius3pt, # code-block 圆角 div.warning_border-width3pt, # warning 指令边框 ... ), }这些键通过latex_elements[sphinxsetup]写入生成的.tex文件也可在文档前导中使用\sphinxsetup{key1value1, key2value2, ...}LaTeX 宏直接设置详见 doc/latex.rst 与 doc/latex.rst。键的详细列表覆盖边框、内边距、圆角、阴影及颜色含additionalcss等。7. LaTeXLatinRules.xdy 中非标准编码的说明#10655LatinRules.xdy见 sphinx/texinputs/LatinRules.xdy中使用的非标准编码在 5.1 中补充了说明文档方便维护者理解 xindy 索引规则的编码约定。8. std 域警告信息使用变量 repr#10439当 std 域显示警告时部分变量改用repr形式输出使空白字符等问题更容易被识别例如不可见的前导/尾随空格会在引号中显现。9. quickstart精简生成的conf.py#10571sphinx-quickstart生成的conf.py模板内容被精简去除了冗余注释减少初始项目的噪音让用户按需自行添加配置。Bug 修复清单HTML 主题#10594使用 Docutils 0.18 时字段名field term后的冒号出现重复。#10596Docutils 版本恰为 0.18而非 0.18.1时因缺少Node.findall()导致构建失败。#10520修复agogo.css_t中 sidebar 类名的使用。#6679修复 agogo 主题中隐藏 toctree 被错误包含的问题。#10566修复enable_search_shortcuts设置不生效的问题。HTML 搜索HTML 标签被当作对象名称的一部分显示——已修复。搜索摘要snippets不应被折叠——已修复。获取搜索摘要时发出次要错误——已修复。搜索结果中显示了头部链接标记——已修复。#10548修复搜索摘要的若干次要问题。Python 域py domain#10550修复反解析各种运算符、-、~、**时出现的多余空白refs: #10551。#9577 / #10088修复同时使用:any:与 autodoc 时重复 Python 引用产生的警告。LaTeX#10506图注figure caption中高亮行内代码角色导致构建错误refs: #10251。#8686code-block 在页面末尾时文本可能溢出并在下一页留下残留物——已修复。#10633用户在 topic 或 admonition 盒子中注入的\color命令可能因上游framed.sty缺陷导致 PDF 颜色泄漏。#10638高亮代码中的彩色盒子如使用 Pygments 样式manni的高亮 diff错误继承了 code-block 边框厚度。#10647desc_signature节点即使有多个节点 ID 也只生成一个\label——已修复。其他#10634使-Ppdb 调试选项在事件触发的异常下工作得更好。#10460日志中节点源码位置始终以绝对路径显示。#10579i18n 在翻译 raw 指令时抛出UnboundLocalError——已修复。5.1.1 补丁版本修复5.1.12022-07-26 发布仅包含两个修复#10701修复新的基于deque的sphinx.ext.napoleon迭代器实现中的ValueError。#10702恢复与第三方 builder 的兼容性。这两项修复直接对应 5.1.0 引入的回归#10467 中 napoleon 迭代器被标记弃用并改用deque实现见下文弃用项以及 5.1.0 对内部接口的调整影响了第三方 builder。升级到 5.1.x 时应使用 5.1.1。弃用项5.1.0 引入两项弃用sphinx.util.stemmer#10467推荐改用snowballstemmer。这意味着基于sphinx.util.stemmer的第三方代码应迁移搜索相关的词干提取逻辑转向snowballstemmer库。sphinx.ext.napoleon.iterators#9856napoleon 扩展的迭代器模块被弃用5.1 内部改用deque实现该实现正是 5.1.1 中 #10701 修复的对象。弃用项会保留一段兼容期但建议在新代码中立即使用替代方案。升级与验证建议升级 Docutils确认 Docutils 版本不低于 0.18.1推荐直接使用 0.19 以享受官方支持。使用 5.1.1 而非 5.1.05.1.1 修复了两个回归问题直接安装Sphinx5.1.1,5.2即可。检查弃用警告构建时留意sphinx.util.stemmer与sphinx.ext.napoleon.iterators的弃用警告及时迁移依赖。验证新增配置若启用include_patterns或option_emphasise_placeholders通过sphinx-build -b html实际构建并检查输出文档树与选项指令渲染效果。第三方 builder 兼容性若项目使用自定义或第三方 builder升级到 5.1.0 后务必测试构建确认不受 #10702 涉及的变化影响5.1.1 已恢复兼容。参考资源官方变更日志doc/changes/5.1.rstinclude_patterns配置说明doc/usage/configuration.rstoption_emphasise_placeholders配置说明doc/usage/configuration.rst配置注册与默认值sphinx/config.py文件发现与 glob 匹配sphinx/environment/init.py、sphinx/project.pyoption指令占位符强调实现sphinx/domains/std/init.pyLaTeXsphinxsetup完整文档doc/latex.rst赞分享文档开发工具【免费下载链接】sphinxThe Sphinx documentation generator项目地址https://gitcode.com/gh_mirrors/sp/sphinx点击查看免费下载相关推荐Sphinx 7.1 版本特性深度解析签名换行、PEP 695 泛型支持与 linkcheck 增强Sphinx 7.1 版本特性深度解析签名换行、PEP 695 泛型支持与 linkcheck 增强 导读 Sphinx 7.1 是 Sphinx 文档生成器文档开发工具IBAnimatable 6.1.0全面解析Swift 5.1支持与100% UIKit兼容性深度评测IBAnimatable 6.1.0全面解析Swift 5.1支持与100% UIKit兼容性深度评测 你还在为iOS动画实现复杂、兼容性差而烦恼IBAni移动开发UI组件Sphinx 4.4 版本特性深度解析autodoc 类型提示、autosummary __all__ 支持与 linkcheck 文档排除实战指南Sphinx 4.4 版本特性深度解析autodoc 类型提示、autosummary __all__ 支持与 linkcheck 文档排除实战指南 导读 本文档开发工具上一篇Skidfuscator社区支持Discord、Wiki和问题解决资源汇总下一篇WeTextProcessing让文本在数字世界与人类语言间自由转换的智能工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

go-version 版本解析与约束库:在 Tekton Pipeline 中的解析、比较与约束校验实战
go-version 版本解析与约束库:在 Tekton Pipeline 中的解析、比较与约束校验实战

云原生CI/CDDevOps后端 【免费下载链接】pipeline A cloud-native Pipeline resource. 项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline 点击查看 免费下载 go-version 是 HashiCorp 出品的 Go 版本解析库,核心能力包括语义化版本&#xff… · 2026/9/27 21:32:35

std::forward 到底转发的是什么:完美转发与四类转发失败
std::forward 到底转发的是什么:完美转发与四类转发失败

std::forward<T>(arg) 转发的既不是对象本身&#xff0c;也不是引用本身&#xff0c;而是实参原本的值类别&#xff08;value category&#xff09;——传进来是左值&#xff0c;它还你一个左值&#xff1b;传进来是右值&#xff0c;它还你一个右值。听上去很虚&#xff… · 2026/9/27 21:32:28

readline()是Python文件对象的内置方法,其核心功能是从文件中读取一行内容,返回包含该行所有字符的字符串
readline()是Python文件对象的内置方法,其核心功能是从文件中读取一行内容,返回包含该行所有字符的字符串

在Python编程体系中&#xff0c;文件操作是数据持久化与外部交互的核心桥梁&#xff0c;无论是处理日志文件、配置文件&#xff0c;还是读取大规模数据集&#xff0c;都离不开对文件内容的精准读取。Python内置的文件对象提供了多种读取方法&#xff0c;其中readline()方法作为… · 2026/9/27 21:32:28

Codex 多 Agent 协作开发实战:一个人半天搞定全栈 AI 批改平台(TaoToken 统一 Key 配置篇)
Codex 多 Agent 协作开发实战:一个人半天搞定全栈 AI 批改平台(TaoToken 统一 Key 配置篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:36:14

别让AI代码,变成明天的技术债:用TaoToken统一Key管住配置漂移
别让AI代码,变成明天的技术债:用TaoToken统一Key管住配置漂移

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:36:14

Python和Python 3 的区别
Python和Python 3 的区别

和 3 都是现在非常流行的编程语言, 在软件开发的过程中, 它们各自都具备一些独特的优势以及特定的特性。以下列举的是其中几个人们比较值得关注的不同点:代码兼容性方面, 2.x 版本和 3.x 版本并不兼容, 这一点非常重要, 它们之间的区别也是极其重要的一个方面之一。其中, 2.x 属… · 2026/9/27 22:36:14

网站被黑挂马?搞懂什么是网站组件选哪家好才不踩坑
网站被黑挂马?搞懂什么是网站组件选哪家好才不踩坑

网站被黑挂马?搞懂什么是网站组件选哪家好才不踩坑 凌晨三点,服务器报警提示异常流量,你慌忙登录后台,发现首页被植入了赌博广告代码,甚至更糟的是,用户数据泄露。这时候你脑子里只有一个念头:我的网站怎么就被黑了?别急着哭,更别盲目找那些只会说“… · 2026/9/27 22:36:14

如何高效使用AI工具cursor(内置ChatGPT 4o+claude-3.5):TaoToken统一Key接入与settings.json配置实战
如何高效使用AI工具cursor(内置ChatGPT 4o+claude-3.5):TaoToken统一Key接入与settings.json配置实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:36:14

OpenClaw生产级部署指南:权限隔离、流量管控、用量追踪全方案(TaoToken统一Key接入版)
OpenClaw生产级部署指南:权限隔离、流量管控、用量追踪全方案(TaoToken统一Key接入版)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 22:36:07

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码