Sphinx 1.5

发布 1.5.6 (发布于 2017 年 5 月 15 日)

修复的 Bug

  • #3614:Sphinx 在 requests-2.5.0 下崩溃

  • #3618:autodoc 在元组参数下崩溃

  • #3664:Sphinx 生成的 latex 列表中,项目符号后没有空格

  • #3657:如果文档以 genindex 开头,EPUB 生成器会崩溃

  • #3588:即使 html_compact_listsTrue,i18n 文档构建中也没有紧凑(p 标签)html 输出。

  • #3685:使用第三方域时出现 AttributeError

  • #3702:LaTeX 写入器使用硬编码的 \small 样式图例

  • #3708:LaTeX 写入器允许 irc 方案

  • #3717:停止强制 favicon 必须是 .ico

  • #3731, #3732:保护 isenumclass 谓词免受非类参数的影响

  • #3320:关于找不到容器类型引用目标的警告

  • Makefile 中用于 latex 构建目录的 ARCHIVEPREFIX 拼写错误

发布 1.5.5 (发布于 2017 年 4 月 3 日)

修复的 Bug

  • #3597:如果给出无效名称,python 域会引发 UnboundLocalError

  • #3599:迁移到新的 MathJax CDN

发布 1.5.4 (发布于 2017 年 4 月 2 日)

新增功能

  • #3470:使 genindex 支持所有类型的字母,而不仅仅是拉丁字母

修复的 Bug

  • #3445:将 'inputenc' 键设置为 \\usepackage[utf8x]{inputenc} 导致 PDF 构建失败

  • EPUB 文件除了第一次构建外,content.opf 中有重复的 nav.xhtml 链接

  • #3488:当 releaseversion 包含返回码时,objects.inv 已损坏

  • #2073, #3443, #3490:gettext 生成器,除非内容相同(不带创建日期),否则写入 pot 文件。感谢 Yoshiki Shibukawa。

  • #3487:intersphinx:无法引用选项

  • #3496:latex longtable 的最后一列可能比其内容宽得多

  • #3507:productionlist 指令的 latex 输出中引号错误

  • #3533:从 Sphinx 1.3.1 迁移到 1.5.3 导致渲染为代码的链接的 LaTeX 编译中断

  • #2665, #2607:C++ 文档字段中的链接名称,并使其可用于其他域。

  • #3542:C++,修复非类型模板参数与模板的解析错误。

  • #3065, #3520:python 域无法识别嵌套类

  • #3575:用 Sphinx 构建的土耳其文档中 pdflatex 的问题再次出现(参考 #2997, #2397)

  • #3577:修复 intersphinx 调试工具

  • LaTeX 命令,例如 \\large 插入到 latex_documents 的标题项中会导致 PDF 构建失败(参考 #3551, #3567)

发布 1.5.3 (发布于 2017 年 2 月 26 日)

新增功能

  • 支持 requests-2.0.0 (实验性) (参考: #3367)

  • (latex) PDF 页面边距尺寸可自定义 (参考: #3387)

  • literalinclude 指令允许组合 :pyobject::lines: 选项 (参考: #3416)

  • #3400:make-mode 在构建文档时未使用 subprocess

修复的 Bug

  • #3370:code-block 的标题未被翻译

  • LaTeX: release 未转义 (参考: #3362)

  • #3364:sphinx-quickstart 在 80 字符宽度的控制台上提示溢出

  • 自 1.5 以来,PDF 的 TOC 和书签缺少总索引的条目 (参考: #3383)

  • #3392:latex_elements 中的 'releasename' 未生效

  • #3356:日语 'manual' 文档类的页面布局文本区域较短

  • #3394:当 'pointsize' 不是 10pt 时,日语 'manual' 文档的 PDF 页面尺寸错误

  • #3399:quickstart: conf.py 未被模板覆盖

  • #3366:option 指令不允许标点符号

  • #3410:release 中的返回码破坏了 html 搜索

  • #3427:autodoc:Windows 上未去除内存地址

  • #3428:由于 fontspec v2.6 定义了 \strong,xetex 构建测试失败

  • #3349:IndexBuilder.load() 的结果已损坏

  • #3450:EPUB 文档中出现了 &nbsp

  • #3418:nature 和 pyramid 主题中搜索按钮错位

  • #3421:无法翻译表格的标题

  • #3552:linkcheck 引发 UnboundLocalError

发布 1.5.2 (发布于 2017 年 1 月 22 日)

不兼容的变更

  • 依赖要求更新:requests 2.4.0 或更高版本 (参考: #3268, #3310)

新增功能

  • #3241:如果 titlesec 有 bug 则发出 latex 警告 (参考 #3210)

  • #3194:引用 $MAKE 环境变量以确定 make 命令

  • 为嵌套的带编号 toctree 发出警告 (参考: #3142)

  • #978:intersphinx_mapping 也允许列表作为参数

  • #3340:(LaTeX) parsed-literal 中的长行会像 code-block 一样换行,内联数学和脚注功能齐全。

修复的 Bug

  • #3246:xapian 搜索适配器崩溃

  • #3253:在 Py2 环境中,构建另一个区域设置(带无标题 toctree)会产生 None 标题

  • #185:包含原始节点的节标题引用已损坏

  • #3255:在 Py3.4 环境中,autodoc 无法正确支持 Enum 类的属性文档。

  • #3261:latex_use_parts 导致 Sphinx 崩溃

  • 警告类型 misc.highlighting_failure 不起作用

  • #3294:add_latex_package() 导致非 LaTeX 生成器崩溃

  • 表格标题被渲染为无效 HTML (参考: #3287)

  • #3268:Sphinx 在 Debian jessie 的 requests 包下崩溃

  • #3284:Sphinx 在并行构建时,如果扩展引发不可序列化异常则崩溃

  • #3315:使用 docclass ‘memoir’ 进行 latex 构建时,参考文献崩溃

  • #3328:无法隐式引用 rubric

  • #3329:如果 po 文件无效且无法读取,则发出警告。也写入 mo

  • #3337:定义列表项的分类器渲染丑陋

  • #3335:gettext 不提取 field_list 中字段的 field_name

  • #2952:C++,修复对 operator() 函数的引用。

  • 修复 code-block 和 parsed-literal LaTeX 输出中 Unicode 上标和下标数字 (参考 #3342)

  • LaTeX 写入器:将 parsed-literal 内的 " 字符原样保留 (参考 #3341)

  • #3234:intersphinx 对编码的清单失败

  • #3158:PDF 输出中标题后空间过多

  • #3317:parsed-literal 内容中的 URL 如果带连字符,在 PDF 中渲染错误

  • 如果通过替换插入到 parsed-literal 中的图像文件名包含连字符,LaTeX 崩溃 (参考 #3340)

  • parsed-literal 中插入的脚注的 LaTeX 渲染错误 (参考 #3340)

  • parsed-literal 中的内联数学无法被 LaTeX 很好地渲染 (参考 #3340)

  • #3308:使用 pdf 生成器时,Parsed-literals 不会换行很长的行 (参考 #3340)

  • #3295:无法导入扩展 sphinx.builders.linkcheck

  • #3285:autosummary:星号被转义两次

  • LaTeX,将 dvipdfm 选项传递给日语文档的 geometry 包 (参考 #3363)

  • 修复 parselinenos() 无法解析左半开范围(例如 “-4”)

发布 1.5.1 (发布于 2016 年 12 月 13 日)

新增功能

  • #3214:允许使用 suppress_warnings 抑制 epub 生成器的“未知 mimetype”警告。

已修复的错误

  • #3195:无法并行构建

  • #3198:当 toctree 具有 'self' 时引发 AttributeError

  • #3211:移除未翻译的 Sphinx 区域设置目录 (它被未翻译的 it_IT 覆盖)

  • #3212:HTML 构建器在 Docutils 0.13 下崩溃

  • #3207:parsed-literal 指令内部引用的更多 latex 问题 (\DUrole)

  • #3205:sphinx.util.requests 在旧版 pyOpenSSL (< 0.14) 下崩溃

  • #3220:当存在重复引用时出现 KeyError

  • #3200:LaTeX: desc_name 内部不允许 xref

  • #3228:build_sphinx 命令在缺少依赖时崩溃

  • #2469:忽略 gettext 生成器的目录文件更新。感谢 Hiroshi Ohkubo。

  • #3183:生成的索引页面中的随机跳转框顺序。

发布 1.5 (发布于 2016 年 12 月 5 日)

不兼容的更改

1.5a1

  • latex,package fancybox 不再是 sphinx.sty 的依赖

  • 使用 'locales' 作为 locale_dirs 的默认值

  • latex,package ifthen 不再是 sphinx.sty 的依赖

  • latex,样式文件不再修改 fancyvrb 的 Verbatim (也可用作 OriginalVerbatim),而是使用 sphinxVerbatim 作为自定义包装器的名称。

  • latex,package newfloat 不再使用 (也不再包含) (参考 #2660;它自 1.3.4 起使用,自 1.4 起随 Sphinx 提供)。

  • latex,表格中的字面块不使用 OriginalVerbatim,而是使用 sphinxVerbatimintable,它处理标题和换行 (参考 #2704)。

  • latex,如果在图像的 widthheight 属性中找到 pt,则替换为 TeX 等效的 bp

  • latex,如果图像的 widthheight 属性未指定单位,则使用 px 而不是忽略它。

  • latex:将 pygments 样式表分离到独立的 .sty 文件

  • #2454:sourcelink 的文件名现在已更改。html_sourcelink_suffix 的值将附加到原始文件名 (例如 index.rst.txt)。

  • sphinx.util.copy_static_entry() 现已弃用。请改用 sphinx.util.fileutil.copy_asset()

  • sphinx.util.osutil.filecopy() 如果文件未更改则跳过复制 (参考: #2510, #2753)

  • Internet Explorer 6-8、Opera 12.1x 或 Safari 5.1+ 的支持被取消,因为 jQuery 版本从 1.11.0 更新到 3.1.0 (参考: #2634, #2773)

  • QtHelpBuilder 不生成搜索页面 (参考: #2352)

  • QtHelpBuilder 使用 nonav 主题而不是默认主题来提高可读性。

  • latex:为了给日语文档提供良好的默认设置,如果 languageja,Sphinx 会使用 jreportjsbook 作为文档类。

  • sphinx-quickstart 现在允许项目版本为空

  • 修复 epub/qthelp 构建器上的 :download: 角色。它们忽略该角色,因为它们不支持它。

  • sphinx.ext.viewcode 默认情况下在 epub 构建时不起作用。viewcode_enable_epub 选项

  • sphinx.ext.viewcode 在 singlehtml 构建器上禁用。

  • 默认使用 sphinx-quickstart 的 make-mode。要禁用此功能,请使用 -M 选项

  • 修复 genindex.html(Sphinx 的文档模板)的链接地址,使其满足 xhtml 标准。

  • 默认使用 epub3 生成器。旧的 epub 生成器重命名为 epub2。

  • 修复 epubepub3 生成器,即使 epub_use_index = False,它们也包含指向 genindex 的链接。

  • html_translator_class 现已弃用。请改用 set_translator() API。

  • 放弃对 Python 2.6 和 3.3 的支持

  • 放弃 epub3 生成器的 epub3_page_progression_direction 选项 (使用 epub3_writing_mode)。

  • #2877:将 latex_elements['footer'] 重命名为 latex_elements['atendofbody']

1.5a2

  • #2983:将 epub3_descriptionepub3_contributor 重命名为 epub_descriptionepub_contributor

  • 删除 themes/basic/defindex.html;不再使用

  • Sphinx 不再提供(但仍使用)LaTeX 样式文件 fncychap

  • #2435:精简快速启动的 conf.py

  • sphinx.sty latex 包不再自行加载“hyperref”,因为这将在 latex 输出的序言中通过 'hyperref' 键稍后完成。

  • Sphinx 不再提供自定义修改的 LaTeX 样式文件 tabulary。使用未修改的包。

  • #3057:默认情况下,latex PDF 输出中的脚注标记不再前面有空格,\sphinxBeforeFootnote 允许用户根据需要自定义。

  • LaTeX 目标要求 hyperref 包的 hyperfootnotes 选项保持不变,使用其默认值 (即 true) (参考: #3022)

1.5 最终版

  • #2986:themes/basic/defindex.html 现已弃用

  • 默认情况下,发出将在 Sphinx 1.6 中弃用的警告。用户可以通过设置环境变量 PYTHONWARNINGS 来更改行为。请参阅 弃用警告

  • #2454:新增 JavaScript 变量 SOURCELINK_SUFFIX

已弃用

这些功能在 Sphinx 1.6 中被移除

  • i18n 功能中的 LDML 格式支持

  • sphinx.addnodes.termsep

  • sphinx.util.pycompat 中的一些函数和类:zip_longestproductallanynextopenclass_typesbase_exceptionrelpathStringIOBytesIO。请改用标准库版本;

如果显示任何弃用警告,例如 RemovedInSphinxXXXWarning,请参阅 弃用警告

新增功能

1.5a1

  • #2951:为 apidoc 添加 --implicit-namespaces PEP-0420 支持。

  • 为 sphinx.ext.inheritance_diagram 添加 :caption: 选项。

  • #2471:为默认 doctest 标志添加配置变量。

  • 将 linkcheck 生成器转换为 requests 以更好地处理编码

  • #2463, #2516:将 “meta” 指令的关键字添加到搜索索引

  • toctree 的 :maxdepth: 选项影响 secnumdepth (参考: #2547)

  • #2575:现在 sphinx.ext.graphviz 允许 :align: 选项

  • 如果 latex_elements 指定了未知键,则显示警告

  • 如果没有域与 primary_domain 匹配,则显示警告 (参考: #2001)

  • C++,当角色类型与它引用的目标类型不一致时(例如,将 class 角色用于函数),显示警告。

  • latex,写入器将更多的文本样式抽象为可自定义的宏,例如 visit_emphasis 将输出 \sphinxstyleemphasis 而不是 \emph(可能在其他地方或在添加的 LaTeX 包中使用)。请参阅 sphinx.sty 末尾的列表 (参考: #2686)

  • latex,用于 note、warning 和其他告诫类型的环境和参数的公共名称,允许通过 'preamble' 键或输入文件完全自定义 (参考: 功能请求 #2674, #2685)

  • latex,更好地计算某些表格的列宽 (因此,表格现在正确地填充行宽,会有细微变化;参考: #2708)

  • latex,sphinxVerbatim 环境更易于自定义 (参考: #2704)。除了已有的 VerbatimColor 和 VerbatimBorderColor

    • 两个长度 \sphinxverbatimsep\sphinxverbatimborder

    • 布尔值 \ifsphinxverbatimwithframe\ifsphinxverbatimwrapslines

  • latex,处理表格内字面块的标题,并换行长代码行以适应表格单元格 (参考: #2704)

  • #2597:将警告消息显示为深红色

  • latex,允许图像尺寸使用 px 单位 (默认为 96px=1in)

  • 如果发现无效尺寸单位,则显示警告

  • #2650:为 setup.py 命令添加 --pdb 选项

  • latex,使代码列表的 \small 用法可自定义 (参考 #2721)

  • #2663:为 setup.py 命令添加 --warning-is-error 选项

  • 如果使用了已弃用的 latex 选项,则显示警告

  • 添加 sphinx.config.ENUM 以检查配置值是否在候选列表中

  • 数学:在 HTML 输出中为每个方程添加超链接标记

  • 添加新主题 nonav,不包含任何导航链接。这适用于任何帮助生成器,如 qthelp。

  • #2680:如果 todo_emit_warnings 启用,sphinx.ext.todo 现在会发出警告。此外,它还发出一个名为 todo-defined 的额外事件,以处理第三方扩展中的 TODO 条目。

  • Python 域签名解析器现在将 xref 混合器用于“exceptions”,允许异常类自动链接。

  • #2513:添加 latex_engine 以通过 conf.py 切换 LaTeX 引擎

  • #2682:C++,对属性的基本支持 (C++11 风格和 GNU 风格)。新的配置变量 'cpp_id_attributes' 和 'cpp_paren_attributes' 可用于引入自定义属性。

  • #1958:C++,添加配置变量 'cpp_index_common_prefix' 用于从 C++ 对象的索引文本中移除前缀。

  • C++,添加了概念指令。感谢 mickk-on-cpp。

  • C++,添加了对模板引入语法的支持。感谢 mickk-on-cpp。

  • #2725:latex 生成器:允许使用用户定义模板文件 (实验性)

  • apidoc 现在通过不写入内容不变的文件来避免使缓存文件失效。如果频繁运行 apidoc,这可以显著提高性能。

  • #2851:如果未找到方程,sphinx.ext.math 会发出 missing-reference 事件

  • #1210:eqref 角色现在支持交叉引用

  • #2892:为 sphinx-apidoc 添加了 -a (--append-syspath) 选项

  • #1604:epub3 生成器:在 iBooks 中查看时遵守与字体相关的 CSS。

  • #646:option 指令支持 '.' 字符作为选项的一部分

  • 添加了关于 kindlegen 的文档并修复了其文档结构。

  • #2474:为 sphinx.ext.intersphinx 添加 intersphinx_timeout 选项

  • #2926:EPUB3 生成器支持垂直模式 (epub3_writing_mode 选项)

  • #2695:setuptools 的 build_sphinx 子命令与 sphinx-build 处理异常的方式相同

  • #326:numref 角色也可以引用章节

  • #2916:numref 角色也可以将标题作为其链接文本

1.5a2

  • #3008:linkcheck 生成器忽略自签名证书 URL

  • #3020:latex_elements 字典中新增 'geometry' 键,其默认值使用 LaTeX 样式文件 geometry.sty 来设置页面布局

  • #2843:为 literalinclude 指令添加 :start-at: 和 :end-at: 选项

  • #2527:为 toctree 指令添加 :reversed: 选项

  • sphinx-quickstart 添加 -t-d 选项,以支持模板化生成的 Sphinx 项目。

  • #3028:将 {path}{basename} 添加到 figure_language_filename 的格式中

  • latex_elements 字典中新增 'hyperref' 键 (参考 #3030)

  • #3022:允许 LaTeX PDF 输出中的脚注中使用代码块

1.5b1

  • #2513:XeLaTeX 的更好默认设置

  • #3096:'maxlistdepth' 键以解决 LaTeX 列表限制

  • #3060:autodoc 支持 Enum 类属性的文档。现在 autodoc 只渲染 Enum 属性的值,而不是 Enum 属性的表示。

  • sphinx-quickstart 添加 --extensions,以支持从命令行启用任意扩展 (参考: #2904)

  • #3104, #3122:'sphinxsetup' 用于 Sphinx LaTeX 的 key=value 样式设置

  • #3071:Autodoc:允许模拟模块装饰器不变地传递函数

  • #2495:linkcheck:允许使用 linkcheck_anchors_ignore 跳过锚点检查

  • #3083:使 Unicode 不间断空格像 LaTeX 的 ~ 一样作用 (修复 #3019)

  • #3116:允许 PDF 输出中内联字面值换行 (参考 #3110)

  • #930:sphinx-apidoc 允许通配符用于排除路径。感谢 Nick Coghlan。

  • #3121:添加 inlineliteralwraps 选项以控制 latex 中内联字面值是否换行

1.5 最终版

  • #3095:添加 tls_verifytls_cacerts 以支持 linkcheck 和 intersphinx 中的自签名 HTTPS 服务器

  • #2215:sphinx-quickstart 生成的 make.bat 可以从其他目录调用。感谢 Timotheus Kampik。

  • #3185:添加新的警告类型 misc.highlighting_failure

修复的错误

1.5a1

  • #2707:(latex) tabular 的列宽计算错误

  • #2799:Sphinx 在导入 sphinx 模块时自动安装角色和指令。现在 Sphinx 在运行应用程序时安装它们。

  • 如果目标代码从模拟模块中 * 导入(通过 autodoc_mock_imports),sphinx.ext.autodoc 会崩溃。

  • #1953:Sphinx.add_node 未添加 html_translator_class 安装的翻译器处理程序

  • #1797:文本生成器在顶部插入空行

  • #2894:quickstart main() 未使用 argv 参数

  • #2874:gettext 生成器无法提取 only 指令下的所有文本

  • #2485:autosummary 在多个 source_suffix 值下崩溃

  • #1734:无法翻译 toctree 指令的标题

  • 无法翻译 meta 指令的内容 (参考: #1734)

  • #2550:外部链接在帮助查看器中打开

  • #2687:多次运行 Sphinx 会产生“已注册”警告

1.5a2

  • #2810:意大利文档中 pdflatex 的问题

  • 使用 latex_elements.papersize 在 Makefile 中指定 LaTeX 的纸张尺寸

  • #2988:linkcheck:如果 HEAD 请求被拒绝,则使用 GET 请求重试

  • #2990:如果启用 linkcheck_anchors,linkcheck 会引发“无法隐式将 'bytes' 对象转换为 str”错误

  • #3004:使用了无效的链接类型“top”和“up”

  • #3009:自 Sphinx 1.4.4 以来,LaTeX 中 parsed-literals 的渲染效果不佳

  • #3000:option 指令生成无效的 HTML 锚点

  • #2984:如果启用 html_split_index,则生成了无效 HTML

  • #2986:themes/basic/defindex.html 应更改为对 html5 友好

  • #2987:如果将多个 ID 分配给列表,则生成了无效 HTML

  • #2891:HTML 搜索未提供所有结果

  • #1986:PDF 输出中的标题

  • #147:latex 章节样式问题

  • #3018:LaTeX 页面布局尺寸和章节标题问题

  • 修复 LaTeX 样式文件中 \pysigline 的问题 (参考 #3023)

  • #3038:如果标签重复,sphinx.ext.math* 会引发 TypeError

  • #3031:与 LaTeX 包 tocloft 不兼容

  • #3003:LaTeX 不支持脚注中的字面块

  • #3047:pdf 输出中脚注前的间距不一致并允许中断

  • #3045:HTML 搜索索引创建器应忽略“原始”内容(如果不是 html)

  • #3039:如果单词大写,英文词干提取器返回错误单词

  • 修复 make-mode Makefile 模板 (参考 #3056, #2936)

1.5b1

  • #2432:修复变长参数和仅关键字参数之间不必要的 *。感谢 Alex Grönholm。

  • #3062:使用 1.5a2 构建 PDF 失败 (自 PR#3030 以来,日语文档中 \hypersetup 未定义)

  • HTML 中多行签名的更好渲染。

  • #777:LaTeX 输出“嵌套太深” (参考 #3096)

  • 让 LaTeX 图像包含在适应文本宽度之前遵守 scale (参考 #2865, #3059)

  • #3019:带参数的 C 函数描述导致 LaTeX 失败 (参考 #3083)

  • 修复 latex 内联字面值,其中 < > - 吞噬了一个空格

1.5 最终版

  • #3069:即使 'babel' 键设置为空字符串,LaTeX 输出仍包含一个 \addto\captions...

  • #3123:用户 'babel' 键设置不再遵守

  • #3155:修复 html_sourcelink_suffix 的 JavaScript 在 IE 和 Opera 中失败的问题

  • #3085:在中断构建文档后保持当前目录。感谢 Timotheus Kampik。

  • #3181:pLaTeX 在包含破折号的节中崩溃

  • #3180:latex:在连续的单行或多行 cpp 签名之间添加拉伸/收缩 (参考 #3072)

  • #3128:globing 图像不支持 .svgz 文件

  • #3015:修复 Windows 上的一个损坏测试。

  • #1843:修复具有自定义元类的描述符类的文档。感谢 Erik Bray。

  • #3190:util.split_docinfo 无法解析多行字段体

  • #3024, #3037:在 Python3 中,当日志消息无法编码为控制台编码时,application.Sphinx._log 崩溃。

测试

  • 为简化起见,Sphinx 甚至在 unittest.mock 存在时也使用外部 mock 包。