Sphinx 2.0¶
版本 2.0.1(发行于 2019 年 4 月 08 日)¶
修复的错误¶
LaTeX:一些系统标签未翻译
RemovedInSphinx30Warning 被标记为待定
不发出弃用警告
sphinx.application.CONFIG_FILENAMEsphinx.builders.htmlhelpviewcode_import
#6208: C++,正确解析恰好以短引用为前缀的完整交叉引用
#6220, #6225: napoleon: 引发的节有引用时引发AttributeError
#6245: 导入 SerializingHTMLBuilder 时的循环导入错误
#6243: LaTeX: ‘releasename’ 设置在 latex_elements 中被忽略
#6244: html: 搜索功能在第三方主题下损坏
#6263: html: HTML5Translator因无效的字段节点崩溃
#6262: html 主题:在 bizstyle 主题中,字段列表的样式已更改
发布 2.0.0(于2019年3月29日发布)¶
依赖项¶
2.0.0b1
LaTeX构建器现在依赖于TeX Live 2015或更高版本.
LaTeX 生成器(使用
'pdflatex'latex_engine)将通过文本字体处理文本中的 Unicode 希腊字母(而不是在数学标记中),并且不会将它们转义为数学标记.请参见latex_elements中'fontenc'关键字的讨论;这种(可选)对希腊语的支持,例如在 Ubuntu xenial 上,添加了texlive-lang-greek,并且(如果默认字体设置未修改)添加了cm-super(-minimal)作为额外的 Sphinx LaTeX 需求.LaTeX构建器当:confval:latex_engine 设置为
'xelatex'或'lualatex'时(默认情况下)需要FreeFont字体,在Ubuntu xenial中,这些字体由fonts-freefont-otf包提供,而在Fedora 29中通过texlive-gnu-freefont包提供.requests 2.5.0 或更高版本
六个包不再是依赖项
sphinxcontrib-websupport 软件包不再是依赖项
一些包被分离为子包:
sphinxcontrib.applehelp
sphinxcontrib.devhelp
sphinxcontrib.htmlhelp
sphinxcontrib.jsmath
sphinxcontrib.serializinghtml
sphinxcontrib.qthelp
不兼容的更改¶
2.0.0b1
放弃对 Python 2.7 和 3.4 的支持
删除对Docutils 0.11的支持
删除在1.7.x中已弃用的功能和API
默认设置
master_doc已更改为'index',这是 sphinx-quickstart 长期以来使用的默认值.LaTeX: 将消息资源移动到
sphinxmessage.styLaTeX:停止使用
\captions<lang>宏用于某些标签LaTeX:对于
'xelatex'和'lualatex',使用FreeFontOpenType 字体作为默认选择(参考:#5645)LaTeX:
'xelatex'和'lualatex'现在在代码块中使用\small(由于FreeMono字符宽度的原因),就像'pdflatex'已经做的那样(由于Courier字符宽度).您可能需要通过latex_elements的'fvset'键进行调整,以便使用某些其他的 OpenType 字体(参考:#5768).LaTeX:文本中的希腊字母不会被转义为数学模式标记,它们将使用文本字体而不是数学字体.必须将
LGR字体编码添加到:confval:latex_elements 的'fontenc'键中,以使其正常工作(当然,这仅在文档需要时).LaTeX: 将
language设置为'en'触发了fncychap的Sonny选项,现在它变为Bjarne以匹配未指定语言的情况. (参考: #5772)#5770: doctest: 根据
highlight_language规则高亮 doctest 块.因此,它们默认以 python3 的格式高亮显示.The order of argument for
HTMLTranslator,HTML5TranslatorandManualPageTranslatorare changedLaTeX:在加载
'manual'文档类时进行的\l@section和\l@subsection的硬编码重定义现在在\sphinxtableofcontents时执行.这意味着 LaTeX 前言中的自定义用户定义现在会被覆盖.使用\sphinxtableofcontentshook来插入自定义用户定义.请参见 宏 .quickstart: 简化生成的
conf.py#4148: 快速入门: 一些问题已被移除.用户仍然可以通过命令行选项进行指定
websupport:已从 Sphinx 核心中分离.请使用 sphinxcontrib-websupport
C++中,基类的可见性现在始终在输入中呈现为存在.也就是说,现在显示
private,而之前是省略的.LaTeX:大图像的图形包含会被重新缩放,以不超过文本的宽度和高度,即使使用了宽度和/或高度选项.(参考:#5956)
epub:
epub_title默认为project选项#4550: 所有没有
align选项的表格和图形都居中显示#4587: html: 默认输出 HTML5
2.0.0b2
texinfo: 图像文件被复制到
name-figure目录
Deprecated¶
2.0.0b1
支持评估 Python 2 语法的功能已被弃用.这包括应该转换为 Python 3 的配置文件.
The arguments of
EpubBuilder.build_mimetype(),EpubBuilder.build_container(),EpubBuilder.bulid_content(),EpubBuilder.build_toc()andEpubBuilder.build_epub()The arguments of
Epub3Builder.build_navigation_doc()配置变量
html_experimental_html5_writer
The
encodingargument ofautodoc.Documenter.get_doc(),autodoc.DocstringSignatureMixin.get_doc(),autodoc.DocstringSignatureMixin._find_signature(), andautodoc.ClassDocumenter.get_doc()are deprecated.The
importerargument ofsphinx.ext.autodoc.importer._MockModuleThe
nodetypeargument ofsphinx.search.WordCollector. is_meta_keywords()The
suffixargument ofenv.doc2path()is deprecated.The string style
baseargument ofenv.doc2path()is deprecated.允许在重写的
IndexBuilder.feed()方法中省略filename参数的回退功能已被弃用.sphinx.addnodes.abbreviationsphinx.application.Sphinx._setting_up_extensionsphinx.builders.epub3.Epub3Builder.validate_config_value()sphinx.builders.html.SingleFileHTMLBuildersphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()sphinx.cmd.quickstart.term_decode()sphinx.cmd.quickstart.TERM_ENCODINGsphinx.config.check_unicode()sphinx.config.string_classessphinx.domains.cpp.DefinitionError.descriptionsphinx.domains.cpp.NoOldIdError.descriptionsphinx.domains.cpp.UnsupportedMultiCharacterCharLiteral.decodedsphinx.ext.autodoc.importer._MockImportersphinx.ext.autosummary.Autosummary.warn()sphinx.ext.autosummary.Autosummary.genoptsphinx.ext.autosummary.Autosummary.warningssphinx.ext.autosummary.Autosummary.resultsphinx.ext.doctest.doctest_encode()sphinx.io.SphinxBaseFileInputsphinx.io.SphinxFileInput.supportedsphinx.io.SphinxRSTFileInputsphinx.registry.SphinxComponentRegistry.add_source_input()sphinx.roles.abbr_role()sphinx.roles.emph_literal_role()sphinx.roles.menusel_role()sphinx.roles.index_role()sphinx.roles.indexmarkup_role()sphinx.testing.util.remove_unicode_literal()sphinx.util.attrdictsphinx.util.force_decode()sphinx.util.get_matching_docs()sphinx.util.inspect.Parametersphinx.util.jsonimplsphinx.util.osutil.EEXISTsphinx.util.osutil.EINVALsphinx.util.osutil.ENOENTsphinx.util.osutil.EPIPEsphinx.util.osutil.walk()sphinx.util.PeekableIteratorsphinx.util.pycompat.NoneTypesphinx.util.pycompat.TextIOWrappersphinx.util.pycompat.UnicodeMixinsphinx.util.pycompat.htmlescapesphinx.util.pycompat.indentsphinx.util.pycompat.sys_encodingsphinx.util.pycompat.terminal_safe()sphinx.util.pycompat.usphinx.writers.latex.ExtBabelsphinx.writers.latex.LaTeXTranslator._make_visit_admonition()sphinx.writers.latex.LaTeXTranslator.babel_defmacro()sphinx.writers.latex.LaTeXTranslator.collect_footnotes()sphinx.writers.latex.LaTeXTranslator.generate_numfig_format()sphinx.writers.texinfo.TexinfoTranslator._make_visit_admonition()sphinx.writers.text.TextTranslator._make_depart_admonition()LaTeX 模板的模板变量
logonumfig_formatpageautorefnametranslatablestrings
有关更多详细信息,请参见 废弃的 API 列表 .
功能新增¶
2.0.0b1
#1618: 生成的HTML文档的搜索结果预览更加适合读者使用:现在Sphinx不再以原始的reStructuredText标记显示片段,而是渲染相应的HTML.这意味着Sphinx扩展 `Sphinx: pretty search results`__不再是必需的.请注意,对自定义或第三方HTML模板搜索功能的更改可能会覆盖此改进.
#4182: autodoc: 支持
suppress_warnings#5533: autodoc:
autodoc_default_options支持member-order#5394: autodoc: 显示可读名称在模拟对象的类型注解中
#5459: autodoc:
autodoc_default_options接受True作为值#1148: autodoc: 为装饰器添加
autodecorator指令#5635: autosummary: 添加
autosummary_mock_imports以在导入目标时模拟外部库#4018: htmlhelp: 添加
htmlhelp_file_suffix和htmlhelp_link_suffix#5559: 文本: 支持复杂表格 (colspan 和 rowspan)
LaTeX: 支持在非西里尔文档中渲染希腊字母和西里尔字母的Unicode字符(尚不支持数学模式),即使在
latex_engine为'pdflatex'的情况下也可使用(参考:#5645)#5660:
versionadded,versionchanged和deprecated指令现在除了通用的versionmodified类外,还生成了各自特定的 CSS 类 (added,changed和deprecated).#5841: apidoc: 为sphinx-apidoc添加–extensions选项
#4981: C++,新增了一个别名指令,用于插入声明列表,并引用现有的声明(例如,用于制作概要).
C++: 增加
cpp:struct来补充cpp:class.#1341: HTML搜索将包含长度为三个或更长的搜索词的单词视为匹配.
#4611: epub: 对于重复的 ToC 条目显示警告
#1851: 允许省略
code-block指令的一个参数.如果省略,它将遵循highlight或highlight_language#4587: html: 添加
html4_writer以使用旧的 HTML4 写入器#6016: HTML搜索:搜索摘要的占位符防止搜索结果链接在搜索终止时改变位置.这使得导航搜索结果变得更简单.
#5196:linkcheck 还检查远程图像是否存在
#5924: githubpages: 当
html_baseurl设置时,为自定义域创建 CNAME 文件#4261: autosectionlabel: 通过新的配置值限制标记的章节;
autosectionlabel_maxdepth
修复的错误¶
2.0.0b1
#1682: LaTeX: 写入器不应翻译希腊字母的unicode,而应使用textgreek包
#5247: LaTeX: 使用默认字体配置、俄语和
'xelatex'或'lualatex'作为latex_engine时 PDF 无法构建 (参考: #5251)#5248: LaTeX: 希腊字母在节标题中从PDF书签中消失
#5249: LaTeX: 数学指令中的Unicode希腊字母破坏PDF构建(修复需要额外设置,请参见
latex_elements``’textgreek’``键和/或latex_engine设置)#5772: LaTeX: 如果作为语言选项传递,Bjarne 风格的 fncychap 是否也应该用于英语?
#5179: LaTeX: (仅限 lualatex)使用
\textgreater{}转义>不够,因为\textgreater{}\textgreater{}会应用 TeX 连字符LaTeX: 如果省略了
latex_documents,项目名称则未转义LaTeX: 如果省略
latex_documents,则不显示作者HTML: 为具有多个术语的单一描述生成了无效的HTML5文件(参考:#4611)
QtHelp: .qhp 文件中使用操作系统依赖的路径分隔符
HTML搜索:当使用多个搜索词且其中一个搜索词短于三个字符时,搜索始终返回无结果
2.0.0b2
#6096: html: 锚链接未添加到图形
#3620: html: 延迟加载 searchindex.js,而不是通过 ajax 加载
#6113: html: 表格单元格和列表项的边距过大
#5508:
linenothreshold选项在highlight指令中被忽略texinfo:
make install-info造成语法错误texinfo:
make install-info在 macOS 上失败#3079:texinfo:在
make install-info时未复制图像文件#5391: 标题中的交叉引用呈现为文字
#5946: C++,修复LaTeX(和singlehtml)中的
cpp:alias问题#6147:
citation_reference节点的 classes 属性丢失当自定义
citation_reference节点的类属性引用缺失的引用时,会引发 AssertionError(引用:#6147)#2155: 支持
code指令C++,修复花括号初始化器的解析.
#6172: 对旧式索引节点引发AttributeError
#4872: inheritance_diagram: 正确描述文档中
parts选项的行为,允许负值.#6178: i18n: 隐藏的目录中缺失翻译的标题
2.0.0 最终版
#6196: py 域:生成了意外的前缀
Testing¶
2.0.0b1
停止使用
SPHINX_TEST_TEMPDIR环境变量
2.0.0b2
添加辅助函数:
sphinx.testing.restructuredtext.parse()