版本 2.1.0 (开发中)



  • 忽略没有直接赋予 Builder.build_specific() API的文件扩展名的文件名


  • sphinx.builders.latex.LaTeXBuilder.apply_transforms()

  • sphinx.directives.Acks

  • sphinx.directives.Author

  • sphinx.directives.Centered

  • sphinx.directives.Class

  • sphinx.directives.CodeBlock

  • sphinx.directives.Figure

  • sphinx.directives.HList

  • sphinx.directives.Highlight

  • sphinx.directives.Include

  • sphinx.directives.Index

  • sphinx.directives.LiteralInclude

  • sphinx.directives.Meta

  • sphinx.directives.Only

  • sphinx.directives.SeeAlso

  • sphinx.directives.TabularColumns

  • sphinx.directives.TocTree

  • sphinx.directives.VersionChange

  • sphinx.environment.NoUri

  • sphinx.ext.autodoc.importer.MockFinder

  • sphinx.ext.autodoc.importer.MockLoader

  • sphinx.ext.autodoc.importer.mock()

  • sphinx.ext.autosummary.autolink_role()

  • sphinx.util.node.find_source_node()

  • sphinx.util.i18n.find_catalog()

  • sphinx.util.i18n.find_catalog_files()

  • sphinx.util.i18n.find_catalog_source_files()

有关更多详细信息, 请参阅 弃用API列表.


  • 添加一个辅助类 sphinx.transforms.post_transforms.SphinxPostTransform

  • Add a helper method SphinxDirective.set_source_info()

  • #6180: 支持 --keep-going 使用BuildDoc安装命令



Release 2.0.0 beta3 (in development)







Release 2.0.0 beta2 (released Mar 21, 2019)


  • texinfo: image files are copied into name-figure directory


  • #6096: html: Anchor links are not added to figures

  • #3620: html: Defer searchindex.js rather than loading it via ajax

  • #6113: html: Table cells and list items have large margins

  • #5508: linenothreshold option for highlight directive was ignored

  • texinfo: make install-info causes syntax error

  • texinfo: make install-info fails on macOS

  • #3079: texinfo: image files are not copied on make install-info

  • #5391: A cross reference in heading is rendered as literal

  • #5946: C++, fix cpp:alias problems in LaTeX (and singlehtml)

  • #6147: classes attribute of citation_reference node is lost

  • AssertionError is raised when custom citation_reference node having classes attribute refers missing citation (refs: #6147)

  • #2155: Support code directive

  • C++, fix parsing of braced initializers.

  • #6172: AttributeError is raised for old styled index nodes

  • #4872: inheritance_diagram: correctly describe behavior of parts option in docs, allow negative values.

  • #6178: i18n: Captions missing in translations for hidden TOCs


  • Add a helper function: sphinx.testing.restructuredtext.parse()

Release 2.0.0 beta1 (in development)


  • LaTeX构建器现在依赖于TeX Live 2015或更高版本。

  • LaTeX构建器(带有 'pdflatex' latex_engine)将通过文本字体处理文本中的Unicode希腊字母(不是数学标记), 并且不会将它们转义为数学标记。请参阅 'fontenc' 键的讨论 latex_elements ; 希腊语的这种(可选)支持添加, 例如在Ubuntu xenial, texlive-lang-greek 和(如果默认字体设置未被修改) cm-super(-minimal) 作为附加Sphinx LaTeX要求。

  • LaTeX构建器 latex_engine 设置为 'xelatex''lualatex' 需要(默认情况下) FreeFont 字体, 在Ubuntu xenial中由包 fonts-freefont-otf 提供, 例如在Fedora 29中通过包 texlive-gnu-freefont

  • 要求2.5.0或以上

  • 六个包不再是依赖

  • sphinxcontrib-websupport包不再是依赖项

  • 一些包被分离到子包:

    • sphinxcontrib.applehelp

    • sphinxcontrib.devhelp

    • sphinxcontrib.htmlhelp

    • sphinxcontrib.jsmath

    • sphinxcontrib.serializinghtml

    • sphinxcontrib.qthelp


  • 删除python 2.7和3.4支持

  • 删除docutils 0.11支持

  • The default setting for master_doc is changed to 'index' which has been longly used as default of sphinx-quickstart.

  • LaTeX: 将消息资源移动到 sphinxmessage.sty

  • LaTeX: Stop using \captions<lang> macro for some labels

  • LaTeX: for 'xelatex' and 'lualatex', use the FreeFont OpenType fonts as default choice (refs: #5645)

  • LaTeX: 'xelatex' and 'lualatex' now use \small in code-blocks (due to FreeMono character width) like 'pdflatex' already did (due to Courier character width). You may need to adjust this via latex_elements 'fvset' key, in case of usage of some other OpenType fonts (refs: #5768)

  • LaTeX: Greek letters in text are not escaped to math mode mark-up, and they will use the text font not the math font. The LGR font encoding must be added to the 'fontenc' key of latex_elements for this to work (only if it is needed by the document, of course).

  • LaTeX: setting the language to 'en' triggered Sonny option of fncychap, now it is Bjarne to match case of no language specified. (refs: #5772)

  • #5770: doctest: Follow highlight_language on highlighting doctest block. As a result, they are highlighted as python3 by default.

  • The order of argument for HTMLTranslator, HTML5Translator and ManualPageTranslator are changed

  • LaTeX: hard-coded redefinitions of \l@section and \l@subsection formerly done during loading of 'manual' docclass get executed later, at time of \sphinxtableofcontents. This means that custom user definitions from LaTeX preamble now get overwritten. Use \sphinxtableofcontentshook to insert custom user definitions. See .

  • quickstart: Simplify generated conf.py

  • #4148: quickstart: some questions are removed. They are still able to specify via command line options

  • websupport: unbundled from sphinx core. Please use sphinxcontrib-websupport

  • C++, the visibility of base classes is now always rendered as present in the input. That is, private is now shown, where it was ellided before.

  • LaTeX: graphics inclusion of oversized images rescales to not exceed the text width and height, even if width and/or height option were used. (refs: #5956)

  • epub: epub_title defaults to the project option

  • #4550: All tables and figures without align option are displayed to center

  • #4587: html: Output HTML5 by default


  • Support for evaluating Python 2 syntax is deprecated. This includes configuration files which should be converted to Python 3.

  • The arguments of EpubBuilder.build_mimetype(), EpubBuilder.build_container(), EpubBuilder.bulid_content(), EpubBuilder.build_toc() and EpubBuilder.build_epub()

  • The arguments of Epub3Builder.build_navigation_doc()

  • The config variables

  • The encoding argument of autodoc.Documenter.get_doc(), autodoc.DocstringSignatureMixin.get_doc(), autodoc.DocstringSignatureMixin._find_signature(), and autodoc.ClassDocumenter.get_doc() are deprecated.

  • The importer argument of sphinx.ext.autodoc.importer._MockModule

  • The nodetype argument of sphinx.search.WordCollector. is_meta_keywords()

  • The suffix argument of env.doc2path() is deprecated.

  • The string style base argument of env.doc2path() is deprecated.

  • The fallback to allow omitting the filename argument from an overridden IndexBuilder.feed() method is deprecated.

  • sphinx.addnodes.abbreviation

  • sphinx.application.Sphinx._setting_up_extension

  • sphinx.builders.epub3.Epub3Builder.validate_config_value()

  • sphinx.builders.html.SingleFileHTMLBuilder

  • sphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()

  • sphinx.cmd.quickstart.term_decode()

  • sphinx.cmd.quickstart.TERM_ENCODING

  • sphinx.config.check_unicode()

  • sphinx.config.string_classes

  • sphinx.domains.cpp.DefinitionError.description

  • sphinx.domains.cpp.NoOldIdError.description

  • sphinx.domains.cpp.UnsupportedMultiCharacterCharLiteral.decoded

  • sphinx.ext.autodoc.importer._MockImporter

  • sphinx.ext.autosummary.Autosummary.warn()

  • sphinx.ext.autosummary.Autosummary.genopt

  • sphinx.ext.autosummary.Autosummary.warnings

  • sphinx.ext.autosummary.Autosummary.result

  • sphinx.ext.doctest.doctest_encode()

  • sphinx.io.SphinxBaseFileInput

  • sphinx.io.SphinxFileInput.supported

  • sphinx.io.SphinxRSTFileInput

  • sphinx.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.attrdict

  • sphinx.util.force_decode()

  • sphinx.util.get_matching_docs()

  • sphinx.util.inspect.Parameter

  • sphinx.util.jsonimpl

  • sphinx.util.osutil.EEXIST

  • sphinx.util.osutil.EINVAL

  • sphinx.util.osutil.ENOENT

  • sphinx.util.osutil.EPIPE

  • sphinx.util.osutil.walk()

  • sphinx.util.PeekableIterator

  • sphinx.util.pycompat.NoneType

  • sphinx.util.pycompat.TextIOWrapper

  • sphinx.util.pycompat.UnicodeMixin

  • sphinx.util.pycompat.htmlescape

  • sphinx.util.pycompat.indent

  • sphinx.util.pycompat.sys_encoding

  • sphinx.util.pycompat.terminal_safe()

  • sphinx.util.pycompat.u

  • sphinx.writers.latex.ExtBabel

  • sphinx.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()

  • template variables for LaTeX template

    • logo

    • numfig_format

    • pageautorefname

    • translatablestrings

有关更多详细信息, 请参阅 弃用API列表.


  • #1618: The search results preview of generated HTML documentation is reader-friendlier: instead of showing the snippets as raw reStructuredText markup, Sphinx now renders the corresponding HTML. This means the Sphinx extension Sphinx: pretty search results is no longer necessary. Note that changes to the search function of your custom or 3rd-party HTML template might overwrite this improvement.

  • #4182: autodoc: Support suppress_warnings

  • #5533: autodoc: autodoc_default_options supports member-order

  • #5394: autodoc: Display readable names in type annotations for mocked objects

  • #5459: autodoc: autodoc_default_options accepts True as a value

  • #1148: autodoc: Add autodecorator directive for decorators

  • #5635: autosummary: Add autosummary_mock_imports to mock external libraries on importing targets

  • #4018: htmlhelp: Add htmlhelp_file_suffix and htmlhelp_link_suffix

  • #5559: text: Support complex tables (colspan and rowspan)

  • LaTeX: support rendering (not in math, yet) of Greek and Cyrillic Unicode letters in non-Cyrillic document even with 'pdflatex' as latex_engine (refs: #5645)

  • #5660: The versionadded, versionchanged and deprecated directives are now generated with their own specific CSS classes (added, changed and deprecated, respectively) in addition to the generic versionmodified class.

  • #5841: apidoc: Add –extensions option to sphinx-apidoc

  • #4981: C++, added an alias directive for inserting lists of declarations, that references existing declarations (e.g., for making a synopsis).

  • C++: add cpp:struct to complement cpp:class.

  • #1341 the HTML search considers words that contain a search term of length three or longer a match.

  • #4611: epub: Show warning for duplicated ToC entries

  • #1851: Allow to omit an argument for code-block directive. If omitted, it follows highlight or highlight_language

  • #4587: html: Add html4_writer to use old HTML4 writer

  • #6016: HTML search: A placeholder for the search summary prevents search result links from changing their position when the search terminates. This makes navigating search results easier.

  • #5196: linkcheck also checks remote images exist

  • #5924: githubpages: create CNAME file for custom domains when html_baseurl set

  • #4261: autosectionlabel: restrict the labeled sections by new config value; autosectionlabel_maxdepth


  • #1682: LaTeX: writer should not translate Greek unicode, but use textgreek package

  • #5247: LaTeX: PDF does not build with default font config for Russian language and 'xelatex' or 'lualatex' as latex_engine (refs: #5251)

  • #5248: LaTeX: Greek letters in section titles disappear from PDF bookmarks

  • #5249: LaTeX: Unicode Greek letters in math directive break PDF build (fix requires extra set-up, see latex_elements 'textgreek' key and/or latex_engine setting)

  • #5772: LaTeX: should the Bjarne style of fncychap be used for English also if passed as language option?

  • #5179: LaTeX: (lualatex only) escaping of > by \textgreater{} is not enough as \textgreater{}\textgreater{} applies TeX-ligature

  • LaTeX: project name is not escaped if latex_documents omitted

  • LaTeX: authors are not shown if latex_documents omitted

  • HTML: Invalid HTML5 file is generated for a glossary having multiple terms for one description (refs: #4611)

  • QtHelp: OS dependent path separator is used in .qhp file

  • HTML search: search always returns nothing when multiple search terms are used and one term is shorter than three characters


  • Stop to use SPHINX_TEST_TEMPDIR envvar

Release 1.8.6 (in development)







版本 1.8.5 (2019年3月10日)


  • LaTeX: Remove extraneous space after author names on PDF title page (refs: #6004)

  • #6026: LaTeX: A cross reference to definition list does not work

  • #6046: LaTeX: TypeError is raised when invalid latex_elements given

  • #6067: LaTeX: images having a target are concatenated to next line

  • #6067: LaTeX: images having a target are not aligned even if specified

  • #6149: LaTeX: :index: role in titles causes Use of \@icentercr doesn't match its definition error on latexpdf build

  • #6019: imgconverter: Including multipage PDF fails

  • #6047: autodoc: autofunction emits a warning for method objects

  • #6028: graphviz: Ensure the graphviz filenames are reproducible

  • #6068: doctest: skipif option may remove the code block from documentation

  • #6136: :name: option for math directive causes a crash

  • #6139: intersphinx: ValueError on failure reporting

  • #6135: changes: Fix UnboundLocalError when any module found

  • #3859: manpage: code-block captions are not displayed correctly

版本 1.8.4 (2019年2月3日)


  • #3707: latex: no bold checkmark (✔) available.

  • #5605: with the documentation language set to Chinese, English words could not be searched.

  • #5889: LaTeX: user numfig_format is stripped of spaces and may cause build failure

  • C++, fix hyperlinks for declarations involving east cv-qualifiers.

  • #5755: C++, fix duplicate declaration error on function templates with constraints in the return type.

  • C++, parse unary right fold expressions and binary fold expressions.

  • pycode could not handle egg files on windows

  • #5928: KeyError: ‘DOCUTILSCONFIG’ when running build

  • #5936: LaTeX: PDF build broken by inclusion of image taller than page height in an admonition

  • #5231: “make html” does not read and build “po” files in “locale” dir

  • #5954: :scale: image option may break PDF build if image in an admonition

  • #5966: mathjax has not been loaded on incremental build

  • #5960: LaTeX: modified PDF layout since September 2018 TeXLive update of parskip.sty

  • #5948: LaTeX: duplicated labels are generated for sections

  • #5958: versionadded指令导致Python 3.5.0崩溃

  • #5995: autodoc: autodoc_mock_imports与Python 3.7上的元类冲突

  • #5871: texinfo: a section title . is not allowed

版本 1.8.3 (2018年12月26日)


  • LaTeX: it is possible to insert custom material to appear on back of title page, see discussion of 'maketitle' key of latex_elements ('manual' docclass only)


  • #5725: mathjax: Use CDN URL for “latest” version by default

  • #5460: html search does not work with some 3rd party themes

  • #5520: LaTeX, caption package incompatibility since Sphinx 1.6

  • #5614: autodoc: incremental build is broken when builtin modules are imported

  • #5627: qthelp: index.html missing in QtHelp

  • #5659: linkcheck: crashes for a hyperlink containing multibyte character

  • #5754: DOC: Fix some mistakes in LaTeX 定制

  • #5810: LaTeX: sphinxVerbatim requires explicit “hllines” set-up since 1.6.6 (refs: #1238)

  • #5636: C++, fix parsing of floating point literals.

  • #5496 (again): C++, fix assertion in partial builds with duplicates.

  • #5724: quickstart: sphinx-quickstart fails when $LC_ALL is empty

  • #1956: Default conf.py is not PEP8-compliant

  • #5849: LaTeX: document class \maketitle is overwritten with no possibility to use original meaning in place of Sphinx custom one

  • #5834: apidoc: wrong help for --tocfile

  • #5800: todo: crashed if todo is defined in TextElement

  • #5846: htmlhelp: convert hex escaping to decimal escaping in .hhc/.hhk files

  • htmlhelp: broken .hhk file generated when title contains a double quote

版本 1.8.2 (2018年11月11日)


  • #5497: Do not include MathJax.js and jsmath.js unless it is really needed


  • #5471: 显示适当的弃用警告


  • #5490: latex: enumerated list causes a crash with recommonmark

  • #5492: sphinx-build fails to build docs w/ Python < 3.5.2

  • #3704: latex: wrong \label positioning for figures with a legend

  • #5496: C++, fix assertion when a symbol is declared more than twice.

  • #5493: gettext: crashed with broken template

  • #5495: csv-table directive with file option in included file is broken (refs: #4821)

  • #5498: autodoc: unable to find type hints for a functools.partial

  • #5480: autodoc: unable to find type hints for unresolvable Forward references

  • #5419: incompatible math_block node has been generated

  • #5548: Fix ensuredir() in case of pre-existing file

  • #5549: graphviz Correctly deal with non-existing static dir

  • #3002: i18n: multiple footnote_references referring same footnote cause duplicated node_ids

  • #5563: latex: footnote_references generated by extension causes a LaTeX builder crash

  • #5561: make all-pdf fails with old xindy version

  • #5557: quickstart: –no-batchfile isn’t honored

  • #3080: texinfo: multiline rubrics are broken

  • #3080: texinfo: multiline citations are broken

版本 1.8.1 (2018年9月22日)


  • LaTeX \pagestyle commands have been moved to the LaTeX template. No changes in PDF, except possibly if \sphinxtableofcontents, which contained them, had been customized in conf.py. (refs: #5455)


  • #5418: Incorrect default path for sphinx-build -d/doctrees files

  • #5421: autodoc emits deprecation warning for autodoc_default_flags

  • #5422: lambda object causes PicklingError on storing environment

  • #5417: Sphinx fails to build with syntax error in Python 2.7.5

  • #4911: add latexpdf to make.bat for non make-mode

  • #5436: Autodoc does not work with enum subclasses with properties/methods

  • #5437: autodoc: crashed on modules importing eggs

  • #5433: latex: ImportError: cannot import name ‘DEFAULT_SETTINGS’

  • #5431: autodoc: autofunction emits a warning for callable objects

  • #5457: Fix TypeError in error message when override is prohibited

  • #5453: PDF builds of ‘howto’ documents have no page numbers

  • #5463: mathbase: math_role and MathDirective was disappeared in 1.8.0

  • #5454: latex: Index has disappeared from PDF for Japanese documents

  • #5432: py domain: :type: field can’t process :term: references

  • #5426: py domain: TypeError has been raised for class attribute

版本 1.8.0 (2018年9月13日)



  • LaTeX: latex_use_xindy, if True (default for xelatex/lualatex), instructs make latexpdf to use xindy for general index. Make sure your LaTeX distribution includes it. (refs: #5134)

  • LaTeX: latexmk is required for make latexpdf on Windows



  • #5282: html theme: refer pygments_style settings of HTML themes preferentially

  • The URL of download files are changed

  • #5127: quickstart: Makefile and make.bat are not overwritten if exists


  • #5156: the sphinx.ext.graphviz: extension runs `dot in the directory of the document being built instead of in the root directory of the documentation.

  • #4460: extensions which stores any data to environment should return the version of its env data structure as metadata. In detail, please see 扩展元数据.

  • Sphinx expects source parser modules to have supported file formats as Parser.supported attribute

  • The default value of epub_author and epub_publisher are changed from 'unknown' to the value of author. This is same as a conf.py file sphinx-build generates.

  • The gettext_compact attribute is removed from document.settings object. Please use config.gettext_compact instead.

  • The processing order on reading phase is changed. smart_quotes, sphinx domains, doctree-read event and versioning doctrees are invoked earlier than so far. For more details, please read a description of Sphinx.add_transform()

  • #4827: All substitution_definition nodes are removed from doctree on reading phase

  • docutils.conf in $HOME or /etc directories are ignored. Only docutils.conf from confdir is obeyed.

  • #789: :samp: role supports to escape curly braces with backslash

  • #4811: The files under html_static_path are excluded from source files.

  • latex: Use \sphinxcite for citation references instead \hyperref

  • The config value viewcode_import is renamed to viewcode_follow_imported_members (refs: #4035)

  • #1857: latex: latex_show_pagerefs does not add pagerefs for citations

  • #4648: latex: Now “rubric” elements are rendered as unnumbered section title

  • #4983: html: The anchor for productionlist tokens has been changed

  • Modifying a template variable script_files in templates is allowed now. Please use app.add_js_file() instead.

  • #5072: 仅使用新文档保存环境对象

  • #5035: qthelp builder allows dashes in qthelp_namespace

  • LaTeX: with lualatex or xelatex use by default xindy as UTF-8 able replacement of makeindex (refs: #5134). After upgrading Sphinx, please clean latex build repertory of existing project before new build.

  • #5163: html: hlist items are now aligned to top

  • highlightlang directive is processed on resolving phase

  • #4000: LaTeX: template changed. Following elements moved to it:

    • \begin{document}

    • shorthandoff variable

    • maketitle variable

    • tableofcontents variable



  • sphinx.io.SphinxI18nReader.set_lineno_for_reporter() is deprecated

  • sphinx.io.SphinxI18nReader.line is deprecated

  • sphinx.util.i18n.find_catalog_source_file() has changed; the gettext_compact argument has been deprecated

  • #5403: sphinx.util.images.guess_mimetype() has changed; the content argument has been deprecated


  • source_parsers is deprecated

  • autodoc_default_flags is deprecated

  • quickstart: --epub option becomes default, so it is deprecated

  • Drop function based directive support. For now, Sphinx only supports class based directives (see Directive)

  • sphinx.util.docutils.directive_helper() is deprecated

  • sphinx.cmdline is deprecated

  • sphinx.make_mode is deprecated

  • sphinx.locale.l_() is deprecated

  • #2157: helper function warn() for HTML themes is deprecated

  • app.override_domain() is deprecated

  • app.add_stylesheet() is deprecated

  • app.add_javascript() is deprecated

  • app.import_object() is deprecated

  • app.add_source_parser() has changed; the suffix argument has been deprecated

  • sphinx.versioning.prepare() is deprecated

  • Config.__init__() has changed; the dirname, filename and tags argument has been deprecated

  • Config.check_types() is deprecated

  • Config.check_unicode() is deprecated

  • sphinx.application.CONFIG_FILENAME is deprecated

  • highlightlang directive is deprecated

  • BuildEnvironment.load() is deprecated

  • BuildEnvironment.loads() is deprecated

  • BuildEnvironment.frompickle() is deprecated

  • env.read_doc() is deprecated

  • env.update() is deprecated

  • env._read_serial() is deprecated

  • env._read_parallel() is deprecated

  • env.write_doctree() is deprecated

  • env._nitpick_ignore is deprecated

  • env.versionchanges is deprecated

  • env.dump() is deprecated

  • env.dumps() is deprecated

  • env.topickle() is deprecated

  • env.note_versionchange() is deprecated

  • sphinx.writers.latex.Table.caption_footnotetexts is deprecated

  • sphinx.writers.latex.Table.header_footnotetexts is deprecated

  • sphinx.writers.latex.LaTeXTranslator.footnotestack is deprecated

  • sphinx.writers.latex.LaTeXTranslator.in_container_literal_block is deprecated

  • sphinx.writers.latex.LaTeXTranslator.next_section_ids is deprecated

  • sphinx.writers.latex.LaTeXTranslator.next_hyperlink_ids is deprecated

  • sphinx.writers.latex.LaTeXTranslator.restrict_footnote() is deprecated

  • sphinx.writers.latex.LaTeXTranslator.unrestrict_footnote() is deprecated

  • sphinx.writers.latex.LaTeXTranslator.push_hyperlink_ids() is deprecated

  • sphinx.writers.latex.LaTeXTranslator.pop_hyperlink_ids() is deprecated

  • sphinx.writers.latex.LaTeXTranslator.check_latex_elements() is deprecated

  • sphinx.writers.latex.LaTeXTranslator.bibitems is deprecated

  • sphinx.writers.latex.LaTeXTranslator.hlsettingstack is deprecated

  • sphinx.writers.latex.ExtBabel.get_shorthandoff() is deprecated

  • sphinx.writers.html.HTMLTranslator.highlightlang is deprecated

  • sphinx.writers.html.HTMLTranslator.highlightlang_base is deprecated

  • sphinx.writers.html.HTMLTranslator.highlightlangopts is deprecated

  • sphinx.writers.html.HTMLTranslator.highlightlinenothreshold is deprecated

  • sphinx.writers.html5.HTMLTranslator.highlightlang is deprecated

  • sphinx.writers.html5.HTMLTranslator.highlightlang_base is deprecated

  • sphinx.writers.html5.HTMLTranslator.highlightlangopts is deprecated

  • sphinx.writers.html5.HTMLTranslator.highlightlinenothreshold is deprecated

  • sphinx.ext.mathbase extension is deprecated

  • sphinx.ext.mathbase.math node is deprecated

  • sphinx.ext.mathbase.displaymath node is deprecated

  • sphinx.ext.mathbase.eqref node is deprecated

  • sphinx.ext.mathbase.is_in_section_title() is deprecated

  • sphinx.ext.mathbase.MathDomain is deprecated

  • sphinx.ext.mathbase.MathDirective is deprecated

  • sphinx.ext.mathbase.math_role is deprecated

  • sphinx.ext.mathbase.setup_math() is deprecated

  • sphinx.directives.other.VersionChanges is deprecated

  • sphinx.highlighting.PygmentsBridge.unhighlight() is deprecated

  • sphinx.ext.mathbase.get_node_equation_number() is deprecated

  • sphinx.ext.mathbase.wrap_displaymath() is deprecated

  • The trim_doctest_flags argument of sphinx.highlighting.PygmentsBridge is deprecated

For more details, see deprecation APIs list



  • #5388: Ensure frozen object descriptions are reproducible

  • #5362: apidoc: Add --tocfile option to change the filename of ToC


  • Add config-inited event

  • Add sphinx.config.Any to represent the config value accepts any type of value

  • source_suffix allows a mapping fileext to file types

  • Add author as a configuration value

  • #2852: imgconverter: Support to convert GIF to PNG

  • sphinx-build command supports i18n console output

  • Add app.add_message_catalog() and sphinx.locale.get_translations() to support translation for 3rd party extensions

  • helper function warning() for HTML themes is added

  • Add Domain.enumerable_nodes to manage own enumerable nodes for domains (experimental)

  • Add a new keyword argument override to Application APIs

  • LaTeX: new key 'fvset' for latex_elements. For XeLaTeX/LuaLaTeX its default sets fanvyvrb to use normal, not small, fontsize in code-blocks (refs: #4793)

  • Add html_css_files and epub_css_files for adding CSS files from configuration

  • Add html_js_files for adding JS files from configuration

  • #4834: Ensure set object descriptions are reproducible.

  • #4828: Allow to override numfig_format partially. Full definition is not needed.

  • Improve warning messages during including (refs: #4818)

  • LaTeX: separate customizability of guilabel and menuselection (refs: #4830)

  • Add Config.read() classmethod to create a new config object from configuration file

  • #4866: Wrap graphviz diagrams in <div> tag

  • viewcode: Add viewcode-find-source and viewcode-follow-imported to load source code without loading

  • #4785: napoleon: Add strings to translation file for localisation

  • #4927: Display a warning when invalid values are passed to linenothreshold option of highlight directive

  • C++:

    • Add a cpp:texpr role as a sibling to cpp:expr.

    • Add support for unions.

    • #3593, #2683: add support for anonymous entities using names staring with @.

    • #5147: add support for (most) character literals.

    • Cross-referencing entities inside primary templates is supported, and now properly documented.

    • #1552: add new cross-referencing format for cpp:any and cpp:func roles, for referencing specific function overloads.

  • #3606: MathJax should be loaded with async attribute

  • html: Output canonical_url metadata if html_baseurl set (refs: #4193)

  • #5029: autosummary: expose inherited_members to template

  • #3784: mathjax: Add mathjax_options to give options to script tag for mathjax

  • #4362: latex: Don’t overwrite .tex file if document not changed

  • #1431: latex: Add alphanumeric enumerated list support

  • Add latex_use_xindy for UTF-8 savvy indexing, defaults to True if latex_engine is 'xelatex' or 'lualatex'. (refs: #5134, #5192, #5212)

  • #4976: SphinxLoggerAdapter.info() now supports location parameter

  • #5122: setuptools: support nitpicky option

  • #2820: autoclass directive supports nested class

  • Add app.add_html_math_renderer() to register a math renderer for HTML

  • Apply trim_doctest_flags to all builders (cf. text, manpages)

  • #5140: linkcheck: Add better Accept header to HTTP client

  • #4614: sphinx-build: Add --keep-going option to show all warnings

  • Add math:numref role to refer equations (Same as eq)

  • quickstart: epub builder is enabled by default

  • #5246: Add singlehtml_sidebars to configure sidebars for singlehtml builder

  • #5273: doctest: Skip doctest conditionally

  • #5306: autodoc: emit a warning for invalid typehints

  • #4075, #5215: autodoc: Add autodoc_default_options which accepts option values as dict



  • html: search box overrides to other elements if scrolled

  • i18n: warnings for translation catalogs have wrong line numbers (refs: #5321)

  • #5325: latex: cross references has been broken by multiply labeled objects

  • C++, fixes for symbol addition and lookup. Lookup should no longer break in partial builds. See also #5337.

  • #5348: download reference to remote file is not displayed

  • #5282: html theme: pygments_style of theme was overridden by conf.py by default

  • #4379: toctree shows confusing warning when document is excluded

  • #2401: autodoc: :members: causes :special-members: not to be shown

  • autodoc: ImportError is replaced by AttributeError for deeper module

  • #2720, #4034: Incorrect links with :download:, duplicate names, and parallel builds

  • #5290: autodoc: failed to analyze source code in egg package

  • #5399: Sphinx crashes if unknown po file exists


  • i18n: message catalogs were reset on each initialization

  • #4850: latex: footnote inside footnote was not rendered

  • #4945: i18n: fix lang_COUNTRY not fallback correctly for IndexBuilder. Thanks to Shengjing Zhu.

  • #4983: productionlist directive generates invalid IDs for the tokens

  • #5132: (lualatex) PDF build fails if indexed word starts with Unicode character

  • #5133: latex: index headings “Symbols” and “Numbers” not internationalized

  • #5114: sphinx-build: Handle errors on scanning documents

  • epub: spine has been broken when “self” is listed on toctree (refs: #4611)

  • #344: autosummary does not understand docstring of module level attributes

  • #5191: C++, prevent nested declarations in functions to avoid lookup problems.

  • #5126: C++, add missing isPack method for certain template parameter types.

  • #5187: C++, parse attributes on declarators as well.

  • C++, parse delete expressions and basic new expressions as well.

  • #5002: graphviz: SVGs do not adapt to the column width

Features removed


  • sphinx.ext.pngmath extension



  • #5083: Fix wrong make.bat option for internationalization.

  • #5115: napoleon: add admonitions added by #4613 to the docs.

Release 1.7.9 (released Sep 05, 2018)


  • #5359: Make generated texinfo files reproducible by sorting the anchors


  • #5361: crashed on incremental build if document uses include directive

Release 1.7.8 (released Aug 29, 2018)


  • The type of env.included has been changed to dict of set


  • #5320: intersphinx: crashed if invalid url given

  • #5326: manpage: crashed when invalid docname is specified as man_pages

  • #5322: autodoc: Any typehint causes formatting error

  • #5327: “document isn’t included in any toctree” warning on rebuild with generated files

  • #5335: quickstart: escape sequence has been displayed with MacPorts’ python

Release 1.7.7 (released Aug 19, 2018)


  • #5198: document not in toctree warning when including files only for parallel builds

  • LaTeX: reduce “Token not allowed in a PDF string” hyperref warnings in latex console output (refs: #5236)

  • LaTeX: suppress “remreset Warning: The remreset package is obsolete” in latex console output with recent LaTeX (refs: #5237)

  • #5234: PDF output: usage of PAPER environment variable is broken since Sphinx 1.5

  • LaTeX: fix the latex_engine documentation regarding Latin Modern font with XeLaTeX/LuaLateX (refs: #5251)

  • #5280: autodoc: Fix wrong type annotations for complex typing

  • autodoc: Optional types are wrongly rendered

  • #5291: autodoc crashed by ForwardRef types

  • #5211: autodoc: No docs generated for functools.partial functions

  • #5306: autodoc: getargspec() raises NameError for invalid typehints

  • #5298: imgmath: math_number_all causes equations to have two numbers in html

  • #5294: sphinx-quickstart blank prompts in PowerShell

Release 1.7.6 (released Jul 17, 2018)


  • #5037: LaTeX \sphinxupquote{} breaks in Russian

  • sphinx.testing uses deprecated pytest API; Node.get_marker(name)

  • #5016: crashed when recommonmark.AutoStrictify is enabled

  • #5022: latex: crashed with docutils package provided by Debian/Ubuntu

  • #5009: latex: a label for table is vanished if table does not have a caption

  • #5048: crashed with numbered toctree

  • #2410: C, render empty argument lists for macros.

  • C++, fix lookup of full template specializations with no template arguments.

  • #4667: C++, fix assertion on missing references in global scope when using intersphinx. Thanks to Alan M. Carroll.

  • #5019: autodoc: crashed by Form Feed Character

  • #5032: autodoc: loses the first staticmethod parameter for old styled classes

  • #5036: quickstart: Typing Ctrl-U clears the whole of line

  • #5066: html: “relations” sidebar is not shown by default

  • #5091: latex: curly braces in index entries are not handled correctly

  • #5070: epub: Wrong internal href fragment links

  • #5104: apidoc: Interface of sphinx.apidoc:main() has changed

  • #4272: PDF builds of French projects have issues with XeTeX

  • #5076: napoleon raises RuntimeError with python 3.7

  • #5125: sphinx-build: Interface of sphinx:main() has changed

  • sphinx-build: sphinx.cmd.build.main() refers sys.argv instead of given argument

  • #5146: autosummary: warning is emitted when the first line of docstring ends with literal notation

  • autosummary: warnings of autosummary indicates wrong location (refs: #5146)

  • #5143: autodoc: crashed on inspecting dict like object which does not support sorting

  • #5139: autodoc: Enum argument missing if it shares value with another

  • #4946: py domain: rtype field could not handle “None” as a type

  • #5176: LaTeX: indexing of terms containing @, !, or " fails

  • #5161: html: crashes if copying static files are failed

  • #5167: autodoc: Fix formatting type annotations for tuples with more than two arguments

  • #3329: i18n: crashed by auto-symbol footnote references

  • #5158: autosummary: module summary has been broken when it starts with heading

Release 1.7.5 (released May 29, 2018)


  • #4924: html search: Upper characters problem in any other languages

  • #4932: apidoc: some subpackage is ignored if sibling subpackage contains a module starting with underscore

  • #4863, #4938, #4939: i18n doesn’t handle correctly node.title as used for contents, topic, admonition, table and section.

  • #4913: i18n: literal blocks in bullet list are not translated

  • #4962: C++, raised TypeError on duplicate declaration.

  • #4825: C++, properly parse expr roles and give better error messages when (escaped) line breaks are present.

  • C++, properly use desc_addname nodes for prefixes of names.

  • C++, parse pack expansions in function calls.

  • #4915, #4916: links on search page are broken when using dirhtml builder

  • #4969: autodoc: constructor method should not have return annotation

  • latex: deeply nested enumerated list which is beginning with non-1 causes LaTeX engine crashed

  • #4978: latex: shorthandoff is not set up for Brazil locale

  • #4928: i18n: Ignore dot-directories like .git/ in LC_MESSAGES/

  • #4946: py domain: type field could not handle “None” as a type

  • #4979: latex: Incorrect escaping of curly braces in index entries

  • #4956: autodoc: Failed to extract document from a subclass of the class on mocked module

  • #4973: latex: glossary directive adds whitespace to each item

  • #4980: latex: Explicit labels on code blocks are duplicated

  • #4919: node.asdom() crashes if toctree has :numbered: option

  • #4914: autodoc: Parsing error when using dataclasses without default values

  • #4931: autodoc: crashed when handler for autodoc-skip-member raises an error

  • #4931: autodoc: crashed when subclass of mocked class are processed by napoleon module

  • #5007: sphinx-build crashes when error log contains a “%” character

Release 1.7.4 (released Apr 25, 2018)


  • #4885, #4887: domains: Crashed with duplicated objects

  • #4889: latex: sphinx.writers.latex causes recursive import

Release 1.7.3 (released Apr 23, 2018)


  • #4769: autodoc loses the first staticmethod parameter

  • #4790: autosummary: too wide two column tables in PDF builds

  • #4795: Latex customization via _templates/longtable.tex_t is broken

  • #4789: imgconverter: confused by convert.exe of Windows

  • #4783: On windows, Sphinx crashed when drives of srcdir and outdir are different

  • #4812: autodoc ignores type annotated variables

  • #4817: wrong URLs on warning messages

  • #4784: latex: latex_show_urls assigns incorrect footnote numbers if hyperlinks exists inside substitutions

  • #4837: latex with class memoir Error: Font command \sf is not supported

  • #4803: latex: too slow in proportion to number of auto numbered footnotes

  • #4838: htmlhelp: The entries in .hhp file is not ordered

  • toctree directive tries to glob for URL having query_string

  • #4871: html search: Upper characters problem in German

  • #4717: latex: Compilation for German docs failed with LuaLaTeX and XeLaTeX

  • #4459: duplicated labels detector does not work well in parallel build

  • #4878: Crashed with extension which returns invalid metadata

Release 1.7.2 (released Mar 21, 2018)


  • #4520: apidoc: folders with an empty __init__.py are no longer excluded from TOC


  • #4669: sphinx.build_main and sphinx.make_main throw NameError

  • #4685: autosummary emits meaningless warnings

  • autodoc: crashed when invalid options given

  • pydomain: always strip parenthesis if empty (refs: #1042)

  • #4689: autosummary: unexpectedly strips docstrings containing “i.e.”

  • #4701: viewcode: Misplaced <div> in viewcode html output

  • #4444: Don’t require numfig to use :numref: on sections

  • #4727: Option clash for package textcomp

  • #4725: Sphinx does not work with python 3.5.0 and 3.5.1

  • #4716: Generation PDF file with TexLive on Windows, file not found error

  • #4574: vertical space before equation in latex

  • #4720: message when an image is mismatched for builder is not clear

  • #4655, #4684: Incomplete localization strings in Polish and Chinese

  • #2286: Sphinx crashes when error is happens in rendering HTML pages

  • #4688: Error to download remote images having long URL

  • #4754: sphinx/pycode/__init__.py raises AttributeError

  • #1435: qthelp builder should htmlescape keywords

  • epub: Fix docTitle elements of toc.ncx is not escaped

  • #4520: apidoc: Subpackage not in toc (introduced in 1.6.6) now fixed

  • #4767: html: search highlighting breaks mathjax equations

Release 1.7.1 (released Feb 23, 2018)


  • #4623: sphinx.build_main() is deprecated.

  • autosummary: The interface of sphinx.ext.autosummary.get_documenter() has been changed (Since 1.7.0)

  • #4664: sphinx.ext.intersphinx.debug() is deprecated.

For more details, see deprecation APIs list


  • #4608: epub: Invalid meta tag is generated

  • #4260: autodoc: keyword only argument separator is not disappeared if it is appeared at top of the argument list

  • #4622: epub: epub_scheme does not effect to content.opf

  • #4627: graphviz: Fit graphviz images to page

  • #4617: quickstart: PROJECT_DIR argument is required

  • #4623: sphinx.build_main no longer exists in 1.7.0

  • #4615: The argument of sphinx.build has been changed in 1.7.0

  • autosummary: The interface of sphinx.ext.autosummary.get_documenter() has been changed

  • #4630: Have order on msgids in sphinx.pot deterministic

  • #4563: autosummary: Incorrect end of line punctuation detection

  • #4577: Enumerated sublists with explicit start with wrong number

  • #4641: A external link in TOC cannot contain “?” with :glob: option

  • C++, add missing parsing of explicit casts and typeid in expression parsing.

  • C++, add missing parsing of this in expression parsing.

  • #4655: Fix incomplete localization strings in Polish

  • #4653: Fix error reporting for parameterless ImportErrors

  • #4664: Reading objects.inv fails again

  • #4662: any refs with term targets crash when an ambiguity is encountered

Release 1.7.0 (released Feb 12, 2018)



  • Add packaging package



  • #3668: The arguments has changed of main functions for each command

  • #3893: Unknown html_theme_options throw warnings instead of errors

  • #3927: Python parameter/variable types should match classes, not all objects

  • #3962: sphinx-apidoc now recognizes given directory as an implicit namespace package when --implicit-namespaces option given, not subdirectories of given directory.

  • #3929: apidoc: Move sphinx.apidoc to sphinx.ext.apidoc

  • #4226: apidoc: Generate new style makefile (make-mode)

  • #4274: sphinx-build returns 2 as an exit code on argument error

  • #4389: output directory will be created after loading extensions

  • autodoc does not generate warnings messages to the generated document even if keep_warnings is True. They are only emitted to stderr.

  • shebang line is removed from generated conf.py

  • #2557: autodoc: autodoc_mock_imports only mocks specified modules with their descendants. It does not mock their ancestors. If you want to mock them, please specify the name of ancestors explicitly.

  • #3620: html theme: move DOCUMENTATION_OPTIONS to independent JavaScript file (refs: #4295)

  • #4246: Limit width of text body for all themes. Configurable via theme options body_min_width and body_max_width.

  • #4771: apidoc: The exclude_patterns arguments are ignored if they are placed just after command line options


  • #4467: html theme: Rename csss block to css



  • using a string value for html_sidebars is deprecated and only list values will be accepted at 2.0.

  • format_annotation() and formatargspec() is deprecated. Please use sphinx.util.inspect.Signature instead.

  • sphinx.ext.autodoc.AutodocReporter is replaced by sphinx.util.docutils. switch_source_input() and now deprecated. It will be removed in Sphinx-2.0.

  • sphinx.ext.autodoc.add_documenter() and AutoDirective._register is now deprecated. Please use app.add_autodocumenter() instead.

  • AutoDirective._special_attrgetters is now deprecated. Please use app.add_autodoc_attrgetter() instead.



  • C++, handle decltype(auto).

  • #2406: C++, add proper parsing of expressions, including linking of identifiers.

  • C++, add a cpp:expr role for inserting inline C++ expressions or types.

  • C++, support explicit member instantiations with shorthand template prefix.

  • C++, make function parameters linkable, like template params.

  • #3638: Allow to change a label of reference to equation using math_eqref_format

  • Now suppress_warnings accepts following configurations:

    • ref.python (ref: #3866)

  • #3872: Add latex key to configure literal blocks caption position in PDF output (refs #3792, #1723)

  • In case of missing docstring try to retrieve doc from base classes (ref: #3140)

  • #4023: Clarify error message when any role has more than one target.

  • #3973: epub: allow to override build date

  • #3972: epub: Sort manifest entries by filename

  • #4052: viewcode: Sort before highlighting module code

  • #1448: qthelp: Add new config value; qthelp_namespace

  • #4140: html themes: Make body tag inheritable

  • #4168: improve zh search with jieba

  • HTML themes can set up default sidebars through theme.conf

  • #3160: html: Use <kdb> to represent :kbd: role

  • #4212: autosummary: catch all exceptions when importing modules

  • #4166: Add math_numfig for equation numbering by section (refs: #3991, #4080). Thanks to Oliver Jahn.

  • #4311: Let LaTeX obey numfig_secnum_depth for figures, tables, and code-blocks

  • #947: autodoc now supports ignore-module-all to ignore a module’s __all__

  • #4332: Let LaTeX obey math_numfig for equation numbering

  • #4093: sphinx-build creates empty directories for unknown targets/builders

  • Add top-classes option for the sphinx.ext.inheritance_diagram extension to limit the scope of inheritance graphs.

  • #4183: doctest: :pyversion: option also follows PEP-440 specification

  • #4235: html: Add manpages_url to make manpage roles to hyperlinks

  • #3570: autodoc: Do not display ‘typing.’ module for type hints

  • #4354: sphinx-build now emits finish message. Builders can modify it through Builder.epilog attribute

  • #4245: html themes: Add language to javascript vars list

  • #4079: html: Add notranslate class to each code-blocks, literals and maths to let Google Translate know they are not translatable

  • #4137: doctest: doctest block is always highlighted as python console (pycon)

  • #4137: doctest: testcode block is always highlighted as python

  • #3998: text: Assign section numbers by default. You can control it using text_add_secnumbers and text_secnumber_suffix


  • #4271: sphinx-build supports an option called -j auto to adjust numbers of processes automatically.

  • Napoleon: added option to specify custom section tags.

Features removed


  • Configuration variables

    • html_use_smartypants

    • latex_keep_old_macro_names

    • latex_elements[‘footer’]

  • utility methods of sphinx.application.Sphinx class

    • buildername (property)

    • _display_chunk()

    • old_status_iterator()

    • status_iterator()

    • _directive_helper()

  • utility methods of sphinx.environment.BuildEnvironment class

    • currmodule (property)

    • currclass (property)

  • epub2 builder

  • prefix and colorfunc parameter for warn()

  • sphinx.util.compat module

  • sphinx.util.nodes.process_only_nodes()

  • LaTeX environment notice, use sphinxadmonition instead

  • LaTeX \sphinxstylethead, use \sphinxstyletheadfamily

  • C++, support of function concepts. Thanks to mickk-on-cpp.

  • Not used and previously not documented LaTeX macros \shortversion and \setshortversion



  • #3882: Update the order of files for HTMLHelp and QTHelp

  • #3962: sphinx-apidoc does not recognize implicit namespace packages correctly

  • #4094: C++, allow empty template argument lists.

  • C++, also hyperlink types in the name of declarations with qualified names.

  • C++, do not add index entries for declarations inside concepts.

  • C++, support the template disambiguator for dependent names.

  • #4314: For PDF ‘howto’ documents, numbering of code-blocks differs from the one of figures and tables

  • #4330: PDF ‘howto’ documents have an incoherent default LaTeX tocdepth counter setting

  • #4198: autosummary emits multiple ‘autodoc-process-docstring’ event. Thanks to Joel Nothman.

  • #4081: Warnings and errors colored the same when building

  • latex: Do not display ‘Release’ label if release is not set


  • #4415: autodoc classifies inherited classmethods as regular methods

  • #4415: autodoc classifies inherited staticmethods as regular methods

  • #4472: DOCUMENTATION_OPTIONS is not defined

  • #4491: autodoc: prefer _MockImporter over other importers in sys.meta_path

  • #4490: autodoc: type annotation is broken with python 3.7.0a4+

  • utils package is no longer installed

  • #3952: apidoc: module header is too escaped

  • #4275: Formats accepted by sphinx.util.i18n.format_date are limited

  • #4493: recommonmark raises AttributeError if AutoStructify enabled

  • #4209: intersphinx: In link title, “v” should be optional if target has no version

  • #4230: slowdown in writing pages with sphinx 1.6

  • #4522: epub: document is not rebuilt even if config changed


  • #4019: inheritance_diagram AttributeError stopping make process

  • #4531: autosummary: methods are not treated as attributes

  • #4538: autodoc: sphinx.ext.autodoc.Options has been moved

  • #4539: autodoc emits warnings for partialmethods

  • #4223: doctest: failing tests reported in wrong file, at wrong line

  • i18n: message catalogs are not compiled if specific filenames are given for sphinx-build as arguments (refs: #4560)

  • #4027: sphinx.ext.autosectionlabel now expects labels to be the same as they are in the raw source; no smart quotes, nothig fancy.

  • #4581: apidoc: Excluded modules still included



  • Add support for docutils 0.14

  • Add tests for the sphinx.ext.inheritance_diagram extension.

Release 1.6.7 (released Feb 04, 2018)


  • #1922: html search: Upper characters problem in French

  • #4412: Updated jQuery version from 3.1.0 to 3.2.1

  • #4438: math: math with labels with whitespace cause html error

  • #2437: make full reference for classes, aliased with “alias of”

  • #4434: pure numbers as link targets produce warning

  • #4477: Build fails after building specific files

  • #4449: apidoc: include “empty” packages that contain modules

  • #3917: citation labels are transformed to ellipsis

  • #4501: graphviz: epub3 validation error caused if graph is not clickable

  • #4514: graphviz: workaround for wrong map ID which graphviz generates

  • #4525: autosectionlabel does not support parallel build

  • #3953: Do not raise warning when there is a working intersphinx inventory

  • #4487: math: ValueError is raised on parallel build. Thanks to jschueller.

  • #2372: autosummary: invalid signatures are shown for type annotated functions

  • #3942: html: table is not aligned to center even if :align: center

Release 1.6.6 (released Jan 08, 2018)


  • #4181: autodoc: Sort dictionary keys when possible

  • VerbatimHighlightColor is a new LaTeX ‘sphinxsetup’ key (refs: #4285)

  • Easier customizability of LaTeX macros involved in rendering of code-blocks

  • Show traceback if conf.py raises an exception (refs: #4369)

  • Add smartquotes to disable smart quotes through conf.py (refs: #3967)

  • Add smartquotes_action and smartquotes_excludes (refs: #4142, #4357)


  • #4334: sphinx-apidoc: Don’t generate references to non-existing files in TOC

  • #4206: latex: reST label between paragraphs loses paragraph break

  • #4231: html: Apply fixFirefoxAnchorBug only under Firefox

  • #4221: napoleon depends on autodoc, but users need to load it manually

  • #2298: automodule fails to document a class attribute

  • #4099: C++: properly link class reference to class from inside constructor

  • #4267: PDF build broken by Unicode U+2116 NUMERO SIGN character

  • #4249: PDF output: Pygments error highlighting increases line spacing in code blocks

  • #1238: Support :emphasize-lines: in PDF output

  • #4279: Sphinx crashes with pickling error when run with multiple processes and remote image

  • #1421: Respect the quiet flag in sphinx-quickstart

  • #4281: Race conditions when creating output directory

  • #4315: For PDF ‘howto’ documents, latex_toplevel_sectioning='part' generates \chapter commands

  • #4214: Two todolist directives break sphinx-1.6.5

  • Fix links to external option docs with intersphinx (refs: #3769)

  • #4091: Private members not documented without :undoc-members:

Release 1.6.5 (released Oct 23, 2017)


  • #4107: Make searchtools.js compatible with pre-Sphinx1.5 templates

  • #4112: Don’t override the smart_quotes setting if it was already set

  • #4125: Display reference texts of original and translated passages on i18n warning message

  • #4147: Include the exception when logging PO/MO file read/write


  • #4085: Failed PDF build from image in parsed-literal using :align: option

  • #4100: Remove debug print from autodoc extension

  • #3987: Changing theme from alabaster causes HTML build to fail

  • #4096: C++, don’t crash when using the wrong role type. Thanks to mitya57.

  • #4070, #4111: crashes when the warning message contains format strings (again)

  • #4108: Search word highlighting breaks SVG images

  • #3692: Unable to build HTML if writing .buildinfo failed

  • #4152: HTML writer crashes if a field list is placed on top of the document

  • #4063: Sphinx crashes when labeling directive .. todolist::

  • #4134: [doc] docutils.conf is not documented explicitly

  • #4169: Chinese language doesn’t trigger Chinese search automatically

  • #1020: ext.todo todolist not linking to the page in pdflatex

  • #3965: New quickstart generates wrong SPHINXBUILD in Makefile

  • #3739: :module: option is ignored at content of pyobjects

  • #4149: Documentation: Help choosing latex_engine

  • #4090: [doc] latex_additional_files with extra LaTeX macros should not use .tex extension

  • Failed to convert reST parser error to warning (refs: #4132)

Release 1.6.4 (released Sep 26, 2017)


  • #3926: Add autodoc_warningiserror to suppress the behavior of -W option during importing target modules on autodoc


  • #3924: docname lost after dynamically parsing RST in extension

  • #3946: Typo in sphinx.sty (this was a bug with no effect in default context)

  • pep

    and :rfc: does not supports default-role directive (refs: #3960)

  • #3960: default_role = ‘guilabel’ not functioning

  • Missing texinputs_win/Makefile to be used in latexpdf builder on windows.

  • #4026: nature: Fix macOS Safari scrollbar color

  • #3877: Fix for C++ multiline signatures.

  • #4006: Fix crash on parallel build

  • #3969: private instance attributes causes AttributeError

  • #4041: C++, remove extra name linking in function pointers.

  • #4038: C, add missing documentation of member role.

  • #4044: An empty multicolumn cell causes extra row height in PDF output

  • #4049: Fix typo in output of sphinx-build -h

  • #4062: hashlib.sha1() must take bytes, not unicode on Python 3

  • Avoid indent after index entries in latex (refs: #4066)

  • #4070: crashes when the warning message contains format strings

  • #4067: Return non-zero exit status when make subprocess fails

  • #4055: graphviz: the :align: option does not work for SVG output

  • #4055: graphviz: the :align: center option does not work for latex output

  • #4051: warn() function for HTML theme outputs ‘None’ string

Release 1.6.3 (released Jul 02, 2017)


  • latex: hint that code-block continues on next page (refs: #3764, #3792)


  • #3821: Failed to import sphinx.util.compat with docutils-0.14rc1

  • #3829: sphinx-quickstart template is incomplete regarding use of alabaster

  • #3772: ‘str object’ has no attribute ‘filename’

  • Emit wrong warnings if citation label includes hyphens (refs: #3565)

  • #3858: Some warnings are not colored when using –color option

  • #3775: Remove unwanted whitespace in default template

  • #3835: sphinx.ext.imgmath fails to convert SVG images if project directory name contains spaces

  • #3850: Fix color handling in make mode’s help command

  • #3865: use of self.env.warn in sphinx extension fails

  • #3824: production lists apply smart quotes transform since Sphinx 1.6.1

  • latex: fix \sphinxbfcode swallows initial space of argument

  • #3878: Quotes in auto-documented class attributes should be straight quotes in PDF output

  • #3881: LaTeX figure floated to next page sometimes leaves extra vertical whitespace

  • #3885: duplicated footnotes raises IndexError

  • #3873: Failure of deprecation warning mechanism of sphinx.util.compat.Directive

  • #3874: Bogus warnings for “citation not referenced” for cross-file citations

  • #3860: Don’t download images when builders not supported images

  • #3860: Remote image URIs without filename break builders not supported remote images

  • #3833: command line messages are translated unintentionally with language setting.

  • #3840: make checking epub_uid strict

  • #3851, #3706: Fix about box drawing characters for PDF output

  • #3900: autosummary could not find methods

  • #3902: Emit error if latex_documents contains non-unicode string in py2

Release 1.6.2 (released May 28, 2017)


  • #3789: Do not require typing module for python>=3.5


  • #3754: HTML builder crashes if HTML theme appends own stylesheets

  • #3756: epub: Entity ‘mdash’ not defined

  • #3758: Sphinx crashed if logs are emitted in conf.py

  • #3755: incorrectly warns about dedent with literalinclude

  • #3742: RTD PDF builds of Sphinx own docs are missing an index entry in the bookmarks and table of contents. This is rtfd/readthedocs.org#2857 issue, a workaround is obtained using some extra LaTeX code in Sphinx’s own conf.py

  • #3770: Build fails when a “code-block” has the option emphasize-lines and the number indicated is higher than the number of lines

  • #3774: Incremental HTML building broken when using citations

  • #3763: got epubcheck validations error if epub_cover is set

  • #3779: ‘ImportError’ in sphinx.ext.autodoc due to broken ‘sys.meta_path’. Thanks to Tatiana Tereshchenko.

  • #3796: env.resolve_references() crashes when non-document node given

  • #3803: Sphinx crashes with invalid PO files

  • #3791: PDF “continued on next page” for long tables isn’t internationalized

  • #3788: smartquotes emits warnings for unsupported languages

  • #3807: latex Makefile for make latexpdf is only for unixen

  • #3781: double hyphens in option directive are compiled as endashes

  • #3817: latex builder raises AttributeError

Release 1.6.1 (released May 16, 2017)



  • (updated) latex output is tested with Ubuntu trusty’s texlive packages (Feb. 2014) and earlier tex installations may not be fully compliant, particularly regarding Unicode engines xelatex and lualatex

  • (added) latexmk is required for make latexpdf on GNU/Linux and Mac OS X (refs: #3082)



  • #1061, #2336, #3235: Now generation of autosummary doesn’t contain imported members by default. Thanks to Luc Saffre.

  • LaTeX \includegraphics command isn’t overloaded: only \sphinxincludegraphics has the custom code to fit image to available width if oversized.

  • The subclasses of sphinx.domains.Index should override generate() method. The default implementation raises NotImplementedError

  • LaTeX positioned long tables horizontally centered, and short ones flushed left (no text flow around table.) The position now defaults to center in both cases, and it will obey Docutils 0.13 :align: option (refs #3415, #3377)

  • option directive also allows all punctuations for the option name (refs: #3366)

  • #3413: if literalinclude’s :start-after: is used, make :lines: relative (refs #3412)

  • literalinclude directive does not allow the combination of :diff: option and other options (refs: #3416)

  • LuaLaTeX engine uses fontspec like XeLaTeX. It is advised latex_engine = 'lualatex' be used only on up-to-date TeX installs (refs #3070, #3466)

  • latex_keep_old_macro_names default value has been changed from True to False. This means that some LaTeX macros for styling are by default defined only with \sphinx.. prefixed names. (refs: #3429)

  • Footer “Continued on next page” of LaTeX longtable’s now not framed (refs: #3497)

  • #3529: The arguments of BuildEnvironment.__init__ is changed

  • #3082: Use latexmk for pdf (and dvi) targets (Unix-like platforms only)

  • #3558: Emit warnings if footnotes and citations are not referenced. The warnings can be suppressed by suppress_warnings.

  • latex made available (non documented) colour macros from a file distributed with pdftex engine for Plain TeX. This is removed in order to provide better support for multiple TeX engines. Only interface from color or xcolor packages should be used by extensions of Sphinx latex writer. (refs #3550)

  • Builder.env is not filled at instantiation

  • #3594: LaTeX: single raw directive has been considered as block level element

  • #3639: If html_experimental_html5_writer is available, epub builder use it by default.

  • Sphinx.add_source_parser() raises an error if duplicated


  • #3345: Replace the custom smartypants code with Docutils’ smart_quotes. Thanks to Dmitry Shachnev, and to Günter Milde at Docutils.


  • LaTeX package eqparbox is not used and not loaded by Sphinx anymore

  • LaTeX package multirow is not used and not loaded by Sphinx anymore

  • Add line numbers to citation data in std domain

1.6 final

  • LaTeX package threeparttable is not used and not loaded by Sphinx anymore (refs #3686, #3532, #3377)

Features removed

  • Configuration variables

    • epub3_contributor

    • epub3_description

    • epub3_page_progression_direction

    • html_translator_class

    • html_use_modindex

    • latex_font_size

    • latex_paper_size

    • latex_preamble

    • latex_use_modindex

    • latex_use_parts

  • termsep node

  • defindex.html template

  • LDML format support in today, today_fmt and html_last_updated_fmt

  • :inline: option for the directives of sphinx.ext.graphviz extension

  • sphinx.ext.pngmath extension

  • sphinx.util.compat.make_admonition()



  • #3136: Add :name: option to the directives in sphinx.ext.graphviz

  • #2336: Add imported_members option to sphinx-autogen command to document imported members.

  • C++, add :tparam-line-spec: option to templated declarations. When specified, each template parameter will be rendered on a separate line.

  • #3359: Allow sphinx.js in a user locale dir to override sphinx.js from Sphinx

  • #3303: Add :pyversion: option to the doctest directive.

  • #3378: (latex) support for :widths: option of table directives (refs: #3379, #3381)

  • #3402: Allow to suppress “download file not readable” warnings using suppress_warnings.

  • #3377: latex: Add support for Docutils 0.13 :align: option for tables (but does not implement text flow around table).

  • latex: footnotes from inside tables are hyperlinked (except from captions or headers) (refs: #3422)

  • Emit warning if over dedent has detected on literalinclude directive (refs: #3416)

  • Use for LuaLaTeX same default settings as for XeLaTeX (i.e. fontspec and polyglossia). (refs: #3070, #3466)

  • Make 'extraclassoptions' key of latex_elements public (refs #3480)

  • #3463: Add warning messages for required EPUB3 metadata. Add default value to epub_description to avoid warning like other settings.

  • #3476: setuptools: Support multiple builders

  • latex: merged cells in LaTeX tables allow code-blocks, lists, blockquotes… as do normal cells (refs: #3435)

  • HTML builder uses experimental HTML5 writer if html_experimental_html5_writer is True and docutils 0.13 or later is installed.

  • LaTeX macros to customize space before and after tables in PDF output (refs #3504)

  • #3348: Show decorators in literalinclude and viewcode directives

  • #3108: Show warning if :start-at: and other literalinclude options does not match to the text

  • #3609: Allow to suppress “duplicate citation” warnings using suppress_warnings

  • #2803: Discovery of builders by entry point

  • #1764, #1676: Allow setting ‘rel’ and ‘title’ attributes for stylesheets

  • #3589: Support remote images on non-HTML builders

  • #3589: Support images in Data URI on non-HTML builders

  • #2961: improve autodoc_mock_imports. Now the config value only requires to declare the top-level modules that should be mocked. Thanks to Robin Jarry.

  • #3449: On py3, autodoc use inspect.signature for more accurate signature calculation. Thanks to Nathaniel J. Smith.

  • #3641: Epub theme supports HTML structures that are generated by HTML5 writer.

  • #3644 autodoc uses inspect instead of checking types. Thanks to Jeroen Demeyer.

  • Add a new extension; sphinx.ext.imgconverter. It converts images in the document to appropriate format for builders

  • latex: Use templates to render tables (refs #3389, 2a37b0e)


  • LATEXMKOPTS variable for the Makefile in $BUILDDIR/latex to pass options to latexmk when executing make latexpdf (refs #3695, #3720)

  • Add a new event env-check-consistency to check consistency to extensions

  • Add Domain.check_consistency() to check consistency



  • literalinclude directive expands tabs after dedent-ing (refs: #3416)

  • #1574: Paragraphs in table cell doesn’t work in Latex output

  • #3288: Table with merged headers not wrapping text

  • #3491: Inconsistent vertical space around table and longtable in PDF

  • #3506: Depart functions for all admonitions in HTML writer now properly pass node to depart_admonition.

  • #2693: Sphinx latex style file wrongly inhibits colours for section headings for latex+dvi(ps,pdf,pdfmx)

  • C++, properly look up any references.

  • #3624: sphinx.ext.intersphinx couldn’t load inventories compressed with gzip

  • #3551: PDF information dictionary is lacking author and title data

  • #3351: intersphinx does not refers context like py:module, py:class and so on.

  • Fail to load template file if the parent template is archived


  • #3661: sphinx-build crashes on parallel build

  • #3669: gettext builder fails with “ValueError: substring not found”

  • #3660: Sphinx always depends on sphinxcontrib-websupport and its dependencies

  • #3472: smart quotes getting wrong in latex (at least with list of strings via autoattribute) (refs: #3345, #3666)


  • #3588: No compact (p tag) html output in the i18n document build even when html_compact_lists is True.

  • The make latexpdf from 1.6b1 (for GNU/Linux and Mac OS, using latexmk) aborted earlier in case of LaTeX errors than was the case with 1.5 series, due to hard-coded usage of --halt-on-error option. (refs #3695)

  • #3683: sphinx.websupport module is not provided by default

  • #3683: Failed to build document if builder.css_file.insert() is called

  • #3714: viewcode extension not taking highlight_code='none' in account

  • #3698: Moving :doc: to std domain broke backwards compatibility

  • #3633: misdetect unreferenced citations

1.6 final

  • LaTeX tables do not allow multiple paragraphs in a header cell

  • LATEXOPTS is not passed over correctly to pdflatex since 1.6b3

  • #3532: Figure or literal block captions in cells of short tables cause havoc in PDF output

  • Fix: in PDF captions of tables are rendered differently whether table is of longtable class or not (refs #3686)

  • #3725: Todo looks different from note in LaTeX output

  • #3479: stub-columns have no effect in LaTeX output

  • #3738: Nonsensical code in theming.py

  • #3746: PDF builds fail with latexmk 4.48 or earlier due to undefined options -pdfxe and -pdflua



  • sphinx.util.compat.Directive class is now deprecated. Please use instead docutils.parsers.rst.Directive

  • sphinx.util.compat.docutils_version is now deprecated

  • #2367: Sphinx.warn(), Sphinx.info() and other logging methods are now deprecated. Please use sphinx.util.logging (记录API) instead.

  • #3318: notice is now deprecated as LaTeX environment name and will be removed at Sphinx 1.7. Extension authors please use sphinxadmonition instead (as Sphinx does since 1.5.)

  • Sphinx.status_iterator() and Sphinx.old_status_iterator() is now deprecated. Please use sphinx.util:status_iterator() instead.

  • Sphinx._directive_helper() is deprecated. Please use sphinx.util.docutils.directive_helper() instead.

  • BuildEnvironment.set_warnfunc() is now deprecated

  • Following methods of BuildEnvironment is now deprecated.

    • BuildEnvironment.note_toctree()

    • BuildEnvironment.get_toc_for()

    • BuildEnvironment.get_toctree_for()

    • BuildEnvironment.create_index()

    Please use sphinx.environment.adapters modules instead.

  • latex package footnote is not loaded anymore by its bundled replacement footnotehyper-sphinx. The redefined macros keep the same names as in the original package.

  • #3429: deprecate config setting latex_keep_old_macro_names. It will be removed at 1.7, and already its default value has changed from True to False.

  • #3221: epub2 builder is deprecated

  • #3254: sphinx.websupport is now separated into independent package; sphinxcontrib-websupport. sphinx.websupport will be removed in Sphinx-2.0.

  • #3628: sphinx_themes entry_point is deprecated. Please use sphinx.html_themes instead.


  • #3662: builder.css_files is deprecated. Please use add_stylesheet() API instead.

1.6 final

  • LaTeX \sphinxstylethead is deprecated at 1.6 and will be removed at 1.7. Please move customization into new macro \sphinxstyletheadfamily.


1.6 final

  • #3458: Add sphinx.testing (experimental)

Release 1.6 (unreleased)

  • not released (because of package script error)

Release 1.5.6 (released May 15, 2017)


  • #3614: Sphinx crashes with requests-2.5.0

  • #3618: autodoc crashes with tupled arguments

  • #3664: No space after the bullet in items of a latex list produced by Sphinx

  • #3657: EPUB builder crashes if a document starting with genindex exists

  • #3588: No compact (p tag) html output in the i18n document build even when html_compact_lists is True.

  • #3685: AttributeError when using 3rd party domains

  • #3702: LaTeX writer styles figure legends with a hard-coded \small

  • #3708: LaTeX writer allows irc scheme

  • #3717: Stop enforcing that favicon’s must be .ico

  • #3731, #3732: Protect isenumclass predicate against non-class arguments

  • #3320: Warning about reference target not being found for container types

  • Misspelled ARCHIVEPREFIX in Makefile for latex build repertory

Release 1.5.5 (released Apr 03, 2017)


  • #3597: python domain raises UnboundLocalError if invalid name given

  • #3599: Move to new MathJax CDN

Release 1.5.4 (released Apr 02, 2017)


  • #3470: Make genindex support all kinds of letters, not only Latin ones


  • #3445: setting 'inputenc' key to \\usepackage[utf8x]{inputenc} leads to failed PDF build

  • EPUB file has duplicated nav.xhtml link in content.opf except first time build

  • #3488: objects.inv has broken when release or version contain return code

  • #2073, #3443, #3490: gettext builder that writes pot files unless the content are same without creation date. Thanks to Yoshiki Shibukawa.

  • #3487: intersphinx: failed to refer options

  • #3496: latex longtable’s last column may be much wider than its contents

  • #3507: wrong quotes in latex output for productionlist directive

  • #3533: Moving from Sphinx 1.3.1 to 1.5.3 breaks LaTeX compilation of links rendered as code

  • #2665, #2607: Link names in C++ docfields, and make it possible for other domains.

  • #3542: C++, fix parsing error of non-type template argument with template.

  • #3065, #3520: python domain fails to recognize nested class

  • #3575: Problems with pdflatex in a Turkish document built with sphinx has reappeared (refs #2997, #2397)

  • #3577: Fix intersphinx debug tool

  • A LaTeX command such as \\large inserted in the title items of latex_documents causes failed PDF build (refs #3551, #3567)

Release 1.5.3 (released Feb 26, 2017)


  • Support requests-2.0.0 (experimental) (refs: #3367)

  • (latex) PDF page margin dimensions may be customized (refs: #3387)

  • literalinclude directive allows combination of :pyobject: and :lines: options (refs: #3416)

  • #3400: make-mode doesn’t use subprocess on building docs


  • #3370: the caption of code-block is not picked up for translation

  • LaTeX: release is not escaped (refs: #3362)

  • #3364: sphinx-quickstart prompts overflow on Console with 80 chars width

  • since 1.5, PDF’s TOC and bookmarks lack an entry for general Index (refs: #3383)

  • #3392: 'releasename' in latex_elements is not working

  • #3356: Page layout for Japanese 'manual' docclass has a shorter text area

  • #3394: When 'pointsize' is not 10pt, Japanese 'manual' document gets wrong PDF page dimensions

  • #3399: quickstart: conf.py was not overwritten by template

  • #3366: option directive does not allow punctuations

  • #3410: return code in release breaks html search

  • #3427: autodoc: memory addresses are not stripped on Windows

  • #3428: xetex build tests fail due to fontspec v2.6 defining \strong

  • #3349: Result of IndexBuilder.load() is broken

  • #3450: &nbsp is appeared in EPUB docs

  • #3418: Search button is misaligned in nature and pyramid theme

  • #3421: Could not translate a caption of tables

  • #3552: linkcheck raises UnboundLocalError

Release 1.5.2 (released Jan 22, 2017)


  • Dependency requirement updates: requests 2.4.0 or above (refs: #3268, #3310)


  • #3241: emit latex warning if buggy titlesec (ref #3210)

  • #3194: Refer the $MAKE environment variable to determine make command

  • Emit warning for nested numbered toctrees (refs: #3142)

  • #978: intersphinx_mapping also allows a list as a parameter

  • #3340: (LaTeX) long lines in parsed-literal are wrapped like in code-block, inline math and footnotes are fully functional.


  • #3246: xapian search adapter crashes

  • #3253: In Py2 environment, building another locale with a non-captioned toctree produces None captions

  • #185: References to section title including raw node has broken

  • #3255: In Py3.4 environment, autodoc doesn’t support documentation for attributes of Enum class correctly.

  • #3261: latex_use_parts makes sphinx crash

  • The warning type misc.highlighting_failure does not work

  • #3294: add_latex_package() make crashes non-LaTeX builders

  • The caption of table are rendered as invalid HTML (refs: #3287)

  • #3268: Sphinx crashes with requests package from Debian jessie

  • #3284: Sphinx crashes on parallel build with an extension which raises unserializable exception

  • #3315: Bibliography crashes on latex build with docclass ‘memoir’

  • #3328: Could not refer rubric implicitly

  • #3329: emit warnings if po file is invalid and can’t read it. Also writing mo too

  • #3337: Ugly rendering of definition list term’s classifier

  • #3335: gettext does not extract field_name of a field in a field_list

  • #2952: C++, fix refs to operator() functions.

  • Fix Unicode super- and subscript digits in code-block and parsed-literal LaTeX output (ref #3342)

  • LaTeX writer: leave " character inside parsed-literal as is (ref #3341)

  • #3234: intersphinx failed for encoded inventories

  • #3158: too much space after captions in PDF output

  • #3317: An URL in parsed-literal contents gets wrongly rendered in PDF if with hyphen

  • LaTeX crash if the filename of an image inserted in parsed-literal via a substitution contains an hyphen (ref #3340)

  • LaTeX rendering of inserted footnotes in parsed-literal is wrong (ref #3340)

  • Inline math in parsed-literal is not rendered well by LaTeX (ref #3340)

  • #3308: Parsed-literals don’t wrap very long lines with pdf builder (ref #3340)

  • #3295: Could not import extension sphinx.builders.linkcheck

  • #3285: autosummary: asterisks are escaped twice

  • LaTeX, pass dvipdfm option to geometry package for Japanese documents (ref #3363)

  • Fix parselinenos() could not parse left half open range (cf. “-4”)

Release 1.5.1 (released Dec 13, 2016)


  • #3214: Allow to suppress “unknown mimetype” warnings from epub builder using suppress_warnings.


  • #3195: Can not build in parallel

  • #3198: AttributeError is raised when toctree has ‘self’

  • #3211: Remove untranslated sphinx locale catalogs (it was covered by untranslated it_IT)

  • #3212: HTML Builders crashes with docutils-0.13

  • #3207: more latex problems with references inside parsed-literal directive (\DUrole)

  • #3205: sphinx.util.requests crashes with old pyOpenSSL (< 0.14)

  • #3220: KeyError when having a duplicate citation

  • #3200: LaTeX: xref inside desc_name not allowed

  • #3228: build_sphinx command crashes when missing dependency

  • #2469: Ignore updates of catalog files for gettext builder. Thanks to Hiroshi Ohkubo.

  • #3183: Randomized jump box order in generated index page.

Release 1.5 (released Dec 5, 2016)



  • latex, package fancybox is not any longer a dependency of sphinx.sty

  • Use 'locales' as a default value of locale_dirs

  • latex, package ifthen is not any longer a dependency of sphinx.sty

  • latex, style file does not modify fancyvrb’s Verbatim (also available as OriginalVerbatim) but uses sphinxVerbatim for name of custom wrapper.

  • latex, package newfloat is not used (and not included) anymore (ref #2660; it was used since 1.3.4 and shipped with Sphinx since 1.4).

  • latex, literal blocks in tables do not use OriginalVerbatim but sphinxVerbatimintable which handles captions and wraps lines (ref #2704).

  • latex, replace pt by TeX equivalent bp if found in width or height attribute of an image.

  • latex, if width or height attribute of an image is given with no unit, use px rather than ignore it.

  • latex: Separate stylesheets of pygments to independent .sty file

  • #2454: The filename of sourcelink is now changed. The value of html_sourcelink_suffix will be appended to the original filename (like index.rst.txt).

  • sphinx.util.copy_static_entry() is now deprecated. Use sphinx.util.fileutil.copy_asset() instead.

  • sphinx.util.osutil.filecopy() skips copying if the file has not been changed (ref: #2510, #2753)

  • Internet Explorer 6-8, Opera 12.1x or Safari 5.1+ support is dropped because jQuery version is updated from 1.11.0 to 3.1.0 (ref: #2634, #2773)

  • QtHelpBuilder doesn’t generate search page (ref: #2352)

  • QtHelpBuilder uses nonav theme instead of default one to improve readability.

  • latex: To provide good default settings to Japanese documents, Sphinx uses jreport and jsbook as docclass if language is ja.

  • sphinx-quickstart now allows a project version is empty

  • Fix :download: role on epub/qthelp builder. They ignore the role because they don’t support it.

  • sphinx.ext.viewcode doesn’t work on epub building by default. viewcode_enable_epub option

  • sphinx.ext.viewcode disabled on singlehtml builder.

  • Use make-mode of sphinx-quickstart by default. To disable this, use -M option

  • Fix genindex.html, Sphinx’s document template, link address to itself to satisfy xhtml standard.

  • Use epub3 builder by default. And the old epub builder is renamed to epub2.

  • Fix epub and epub3 builders that contained links to genindex even if epub_use_index = False.

  • html_translator_class is now deprecated. Use Sphinx.set_translator() API instead.

  • Drop python 2.6 and 3.3 support

  • Drop epub3 builder’s epub3_page_progression_direction option (use epub3_writing_mode).

  • #2877: Rename latex_elements['footer'] to latex_elements['atendofbody']


  • #2983: Rename epub3_description and epub3_contributor to epub_description and epub_contributor.

  • Remove themes/basic/defindex.html; no longer used

  • Sphinx does not ship anymore (but still uses) LaTeX style file fncychap

  • #2435: Slim down quickstarted conf.py

  • The sphinx.sty latex package does not load itself “hyperref”, as this is done later in the preamble of the latex output via 'hyperref' key.

  • Sphinx does not ship anymore a custom modified LaTeX style file tabulary. The non-modified package is used.

  • #3057: By default, footnote marks in latex PDF output are not preceded by a space anymore, \sphinxBeforeFootnote allows user customization if needed.

  • LaTeX target requires that option hyperfootnotes of package hyperref be left unchanged to its default (i.e. true) (refs: #3022)

1.5 final

  • #2986: themes/basic/defindex.html is now deprecated

  • Emit warnings that will be deprecated in Sphinx 1.6 by default. Users can change the behavior by setting the environment variable PYTHONWARNINGS. Please refer 弃用警告.

  • #2454: new JavaScript variable SOURCELINK_SUFFIX is added


These features are removed in Sphinx-1.6:

  • LDML format support in i18n feature

  • sphinx.addnodes.termsep

  • Some functions and classes in sphinx.util.pycompat: zip_longest, product, all, any, next, open, class_types, base_exception, relpath, StringIO, BytesIO. Please use the standard library version instead;

If any deprecation warning like RemovedInSphinxXXXWarning are displayed, please refer 弃用警告.



  • #2951: Add --implicit-namespaces PEP-0420 support to apidoc.

  • Add :caption: option for sphinx.ext.inheritance_diagram.

  • #2471: Add config variable for default doctest flags.

  • Convert linkcheck builder to requests for better encoding handling

  • #2463, #2516: Add keywords of “meta” directive to search index

  • :maxdepth: option of toctree affects secnumdepth (ref: #2547)

  • #2575: Now sphinx.ext.graphviz allows :align: option

  • Show warnings if unknown key is specified to latex_elements

  • Show warnings if no domains match with primary_domain (ref: #2001)

  • C++, show warnings when the kind of role is misleading for the kind of target it refers to (e.g., using the class role for a function).

  • latex, writer abstracts more of text styling into customizable macros, e.g. the visit_emphasis will output \sphinxstyleemphasis rather than \emph (which may be in use elsewhere or in an added LaTeX package). See list at end of sphinx.sty (ref: #2686)

  • latex, public names for environments and parameters used by note, warning, and other admonition types, allowing full customizability from the 'preamble' key or an input file (ref: feature request #2674, #2685)

  • latex, better computes column widths of some tables (as a result, there will be slight changes as tables now correctly fill the line width; ref: #2708)

  • latex, sphinxVerbatim environment is more easily customizable (ref: #2704). In addition to already existing VerbatimColor and VerbatimBorderColor:

    • two lengths \sphinxverbatimsep and \sphinxverbatimborder,

    • booleans \ifsphinxverbatimwithframe and \ifsphinxverbatimwrapslines.

  • latex, captions for literal blocks inside tables are handled, and long code lines wrapped to fit table cell (ref: #2704)

  • #2597: Show warning messages as darkred

  • latex, allow image dimensions using px unit (default is 96px=1in)

  • Show warnings if invalid dimension units found

  • #2650: Add --pdb option to setup.py command

  • latex, make the use of \small for code listings customizable (ref #2721)

  • #2663: Add --warning-is-error option to setup.py command

  • Show warnings if deprecated latex options are used

  • Add sphinx.config.ENUM to check the config values is in candidates

  • math: Add hyperlink marker to each equations in HTML output

  • Add new theme nonav that doesn’t include any navigation links. This is for any help generator like qthelp.

  • #2680: sphinx.ext.todo now emits warnings if todo_emit_warnings enabled. Also, it emits an additional event named todo-defined to handle the TODO entries in 3rd party extensions.

  • Python domain signature parser now uses the xref mixin for ‘exceptions’, allowing exception classes to be autolinked.

  • #2513: Add latex_engine to switch the LaTeX engine by conf.py

  • #2682: C++, basic support for attributes (C++11 style and GNU style). The new configuration variables ‘cpp_id_attributes’ and ‘cpp_paren_attributes’ can be used to introduce custom attributes.

  • #1958: C++, add configuration variable ‘cpp_index_common_prefix’ for removing prefixes from the index text of C++ objects.

  • C++, added concept directive. Thanks to mickk-on-cpp.

  • C++, added support for template introduction syntax. Thanks to mickk-on-cpp.

  • #2725: latex builder: allow to use user-defined template file (experimental)

  • apidoc now avoids invalidating cached files by not writing to files whose content doesn’t change. This can lead to significant performance wins if apidoc is run frequently.

  • #2851: sphinx.ext.math emits missing-reference event if equation not found

  • #1210: eqref role now supports cross reference

  • #2892: Added -a (--append-syspath) option to sphinx-apidoc

  • #1604: epub3 builder: Obey font-related CSS when viewing in iBooks.

  • #646: option directive support ‘.’ character as a part of options

  • Add document about kindlegen and fix document structure for it.

  • #2474: Add intersphinx_timeout option to sphinx.ext.intersphinx

  • #2926: EPUB3 builder supports vertical mode (epub3_writing_mode option)

  • #2695: build_sphinx subcommand for setuptools handles exceptions as same as sphinx-build does

  • #326: numref role can also refer sections

  • #2916: numref role can also refer caption as an its linktext


  • #3008: linkcheck builder ignores self-signed certificate URL

  • #3020: new 'geometry' key to latex_elements whose default uses LaTeX style file geometry.sty to set page layout

  • #2843: Add :start-at: and :end-at: options to literalinclude directive

  • #2527: Add :reversed: option to toctree directive

  • Add -t and -d option to sphinx-quickstart to support templating generated sphinx project.

  • #3028: Add {path} and {basename} to the format of figure_language_filename

  • new 'hyperref' key in the latex_elements dictionary (ref #3030)

  • #3022: Allow code-blocks in footnotes for LaTeX PDF output


  • #2513: A better default settings for XeLaTeX

  • #3096: 'maxlistdepth' key to work around LaTeX list limitations

  • #3060: autodoc supports documentation for attributes of Enum class. Now autodoc render just the value of Enum attributes instead of Enum attribute representation.

  • Add --extensions to sphinx-quickstart to support enable arbitrary extensions from command line (ref: #2904)

  • #3104, #3122: 'sphinxsetup' for key=value styling of Sphinx LaTeX

  • #3071: Autodoc: Allow mocked module decorators to pass-through functions unchanged

  • #2495: linkcheck: Allow skipping anchor checking using linkcheck_anchors_ignore

  • #3083: let Unicode no-break space act like LaTeX ~ (fixed #3019)

  • #3116: allow word wrap in PDF output for inline literals (ref #3110)

  • #930: sphinx-apidoc allow wildcards for excluding paths. Thanks to Nick Coghlan.

  • #3121: add inlineliteralwraps option to control if inline literal word-wraps in latex

1.5 final

  • #3095: Add tls_verify and tls_cacerts to support self-signed HTTPS servers in linkcheck and intersphinx

  • #2215: make.bat generated by sphinx-quickstart can be called from another dir. Thanks to Timotheus Kampik.

  • #3185: Add new warning type misc.highlighting_failure



  • #2707: (latex) the column width is badly computed for tabular

  • #2799: Sphinx installs roles and directives automatically on importing sphinx module. Now Sphinx installs them on running application.

  • sphinx.ext.autodoc crashes if target code imports * from mock modules by autodoc_mock_imports.

  • #1953: Sphinx.add_node does not add handlers the translator installed by html_translator_class

  • #1797: text builder inserts blank line on top

  • #2894: quickstart main() doesn’t use argv argument

  • #2874: gettext builder could not extract all text under the only directives

  • #2485: autosummary crashes with multiple source_suffix values

  • #1734: Could not translate the caption of toctree directive

  • Could not translate the content of meta directive (ref: #1734)

  • #2550: external links are opened in help viewer

  • #2687: Running Sphinx multiple times produces ‘already registered’ warnings


  • #2810: Problems with pdflatex in an Italian document

  • Use latex_elements.papersize to specify papersize of LaTeX in Makefile

  • #2988: linkcheck: retry with GET request if denied HEAD request

  • #2990: linkcheck raises “Can’t convert ‘bytes’ object to str implicitly” error if linkcheck_anchors enabled

  • #3004: Invalid link types “top” and “up” are used

  • #3009: Bad rendering of parsed-literals in LaTeX since Sphinx 1.4.4

  • #3000: option directive generates invalid HTML anchors

  • #2984: Invalid HTML has been generated if html_split_index enabled

  • #2986: themes/basic/defindex.html should be changed for html5 friendly

  • #2987: Invalid HTML has been generated if multiple IDs are assigned to a list

  • #2891: HTML search does not provide all the results

  • #1986: Title in PDF Output

  • #147: Problem with latex chapter style

  • #3018: LaTeX problem with page layout dimensions and chapter titles

  • Fix an issue with \pysigline in LaTeX style file (ref #3023)

  • #3038: sphinx.ext.math* raises TypeError if labels are duplicated

  • #3031: incompatibility with LaTeX package tocloft

  • #3003: literal blocks in footnotes are not supported by Latex

  • #3047: spacing before footnote in pdf output is not coherent and allows breaks

  • #3045: HTML search index creator should ignore “raw” content if now html

  • #3039: English stemmer returns wrong word if the word is capitalized

  • Fix make-mode Makefile template (ref #3056, #2936)


  • #2432: Fix unwanted * between varargs and keyword only args. Thanks to Alex Grönholm.

  • #3062: Failed to build PDF using 1.5a2 (undefined \hypersetup for Japanese documents since PR#3030)

  • Better rendering of multiline signatures in html.

  • #777: LaTeX output “too deeply nested” (ref #3096)

  • Let LaTeX image inclusion obey scale before textwidth fit (ref #2865, #3059)

  • #3019: LaTeX fails on description of C function with arguments (ref #3083)

  • fix latex inline literals where < > - gobbled a space

1.5 final

  • #3069: Even if 'babel' key is set to empty string, LaTeX output contains one \addto\captions...

  • #3123: user 'babel' key setting is not obeyed anymore

  • #3155: Fix JavaScript for html_sourcelink_suffix fails with IE and Opera

  • #3085: keep current directory after breaking build documentation. Thanks to Timotheus Kampik.

  • #3181: pLaTeX crashes with a section contains endash

  • #3180: latex: add stretch/shrink between successive singleline or multipleline cpp signatures (ref #3072)

  • #3128: globing images does not support .svgz file

  • #3015: fix a broken test on Windows.

  • #1843: Fix documentation of descriptor classes that have a custom metaclass. Thanks to Erik Bray.

  • #3190: util.split_docinfo fails to parse multi-line field bodies

  • #3024, #3037: In Python3, application.Sphinx._log crushed when the log message cannot be encoded into console encoding.


  • To simplify, sphinx uses external mock package even if unittest.mock exists.

Release 1.4.9 (released Nov 23, 2016)


  • #2936: Fix doc/Makefile that can’t build man because doc/man exists

  • #3058: Using the same ‘caption’ attribute in multiple ‘toctree’ directives results in warning / error

  • #3068: Allow the ‘=’ character in the -D option of sphinx-build.py

  • #3074: add_source_parser() crashes in debug mode

  • #3135: sphinx.ext.autodoc crashes with plain Callable

  • #3150: Fix query word splitter in JavaScript. It behaves as same as Python’s regular expression.

  • #3093: gettext build broken on substituted images.

  • #3093: gettext build broken on image node under note directive.

  • imgmath: crashes on showing error messages if image generation failed

  • #3117: LaTeX writer crashes if admonition is placed before first section title

  • #3164: Change search order of sphinx.ext.inheritance_diagram

Release 1.4.8 (released Oct 1, 2016)


  • #2996: The wheel package of Sphinx got crash with ImportError

Release 1.4.7 (released Oct 1, 2016)


  • #2890: Quickstart should return an error consistently on all error conditions

  • #2870: flatten genindex columns’ heights.

  • #2856: Search on generated HTML site doesn’t find some symbols

  • #2882: Fall back to a GET request on 403 status in linkcheck

  • #2902: jsdump.loads fails to load search index if keywords starts with underscore

  • #2900: Fix epub content.opf: add auto generated orphan files to spine.

  • #2899: Fix hasdoc() function in Jinja2 template. It will detect genindex, search also.

  • #2901: Fix epub result: skip creating links from image tags to original image files.

  • #2917: inline code is hyphenated on HTML

  • #1462: autosummary warns for namedtuple with attribute with trailing underscore

  • Could not reference equations if :nowrap: option specified

  • #2873: code-block overflow in latex (due to commas)

  • #1060, #2056: sphinx.ext.intersphinx: broken links are generated if relative paths are used in intersphinx_mapping

  • #2931: code-block directive with same :caption: causes warning of duplicate target. Now code-block and literalinclude does not define hyperlink target using its caption automatically.

  • #2962: latex: missing label of longtable

  • #2968: autodoc: show-inheritance option breaks docstrings

Release 1.4.6 (released Aug 20, 2016)


  • #2867: linkcheck builder crashes with six-1.4. Now Sphinx depends on six-1.5 or later


  • applehelp: Sphinx crashes if hiutil or codesign commands not found

  • Fix make clean abort issue when build dir contains regular files like DS_Store.

  • Reduce epubcheck warnings/errors:

    • Fix DOCTYPE to html5

    • Change extension from .html to .xhtml.

    • Disable search page on epub results

  • #2778: Fix autodoc crashes if obj.__dict__ is a property method and raises exception

  • Fix duplicated toc in epub3 output.

  • #2775: Fix failing linkcheck with servers not supporting identity encoding

  • #2833: Fix formatting instance annotations in ext.autodoc.

  • #1911: -D option of sphinx-build does not override the extensions variable

  • #2789: sphinx.ext.intersphinx generates wrong hyperlinks if the inventory is given

  • parsing errors for caption of code-blocks are displayed in document (ref: #2845)

  • #2846: singlehtml builder does not include figure numbers

  • #2816: Fix data from builds cluttering the Domain.initial_data class attributes

Release 1.4.5 (released Jul 13, 2016)


  • latex, inclusion of non-inline images from image directive resulted in non-coherent whitespaces depending on original image width; new behaviour by necessity differs from earlier one in some cases. (ref: #2672)

  • latex, use of \includegraphics to refer to Sphinx custom variant is deprecated; in future it will revert to original LaTeX macro, custom one already has alternative name \sphinxincludegraphics.


  • new config option latex_keep_old_macro_names, defaults to True. If False, lets macros (for text styling) be defined only with \sphinx-prefixed names.

  • latex writer allows user customization of “shadowed” boxes (topics), via three length variables.

  • woff-format web font files now supported by the epub builder.


  • jsdump fix for python 3: fixes the HTML search on python > 3

  • #2676: (latex) Error with verbatim text in captions since Sphinx 1.4.4

  • #2629: memoir class crashes LaTeX. Fixed by latex_keep_old_macro_names=False (ref 2675)

  • #2684: sphinx.ext.intersphinx crashes with six-1.4.1

  • #2679: float package needed for 'figure_align': 'H' latex option

  • #2671: image directive may lead to inconsistent spacing in pdf

  • #2705: toctree generates empty bullet_list if :titlesonly: specified

  • #2479: sphinx.ext.viewcode uses python2 highlighter by default

  • #2700: HtmlHelp builder has hard coded index.html

  • latex, since 1.4.4 inline literal text is followed by spurious space

  • #2722: C++, fix id generation for var/member declarations to include namespaces.

  • latex, images (from image directive) in lists or quoted blocks did not obey indentation (fixed together with #2671)

  • #2733: since Sphinx-1.4.4 make latexpdf generates lots of hyperref warnings

  • #2731: sphinx.ext.autodoc does not access propertymethods which raises any exceptions

  • #2666: C++, properly look up nested names involving constructors.

  • #2579: Could not refer a label including both spaces and colons via sphinx.ext.intersphinx

  • #2718: Sphinx crashes if the document file is not readable

  • #2699: hyperlinks in help HTMLs are broken if html_file_suffix is set

  • #2723: extra spaces in latex pdf output from multirow cell

  • #2735: latexpdf Underfull \hbox (badness 10000) warnings from title page

  • #2667: latex crashes if resized images appeared in section title

  • #2763: (html) Provide default value for required alt attribute for image tags of SVG source, required to validate and now consistent w/ other formats.

Release 1.4.4 (released Jun 12, 2016)


  • #2630: latex: sphinx.sty notice environment formatting problem

  • #2632: Warning directives fail in quote environment latex build

  • #2633: Sphinx crashes with old styled indices

  • Fix a \begin{\minipage} typo in sphinx.sty from 1.4.2 (ref: 68becb1)

  • #2622: Latex produces empty pages after title and table of contents

  • #2640: 1.4.2 LaTeX crashes if code-block inside warning directive

  • Let LaTeX use straight quotes also in inline code (ref #2627)

  • #2351: latex crashes if enumerated lists are placed on footnotes

  • #2646: latex crashes if math contains twice empty lines

  • #2480: sphinx.ext.autodoc: memory addresses were shown

  • latex: allow code-blocks appearing inside lists and quotes at maximal nesting depth (ref #777, #2624, #2651)

  • #2635: Latex code directives produce inconsistent frames based on viewing resolution

  • #2639: Sphinx now bundles iftex.sty

  • Failed to build PDF with framed.sty 0.95

  • Sphinx now bundles needspace.sty

Release 1.4.3 (released Jun 5, 2016)


  • #2530: got “Counter too large” error on building PDF if large numbered footnotes existed in admonitions

  • width option of figure directive does not work if align option specified at same time (ref: #2595)

  • #2590: The inputenc package breaks compiling under lualatex and xelatex

  • #2540: date on latex front page use different font

  • Suppress “document isn’t included in any toctree” warning if the document is included (ref: #2603)

  • #2614: Some tables in PDF output will end up shifted if user sets non zero parindent in preamble

  • #2602: URL redirection breaks the hyperlinks generated by sphinx.ext.intersphinx

  • #2613: Show warnings if merged extensions are loaded

  • #2619: make sure amstext LaTeX package always loaded (ref: d657225, 488ee52, 9d82cad and #2615)

  • #2593: latex crashes if any figures in the table

Release 1.4.2 (released May 29, 2016)


  • Now suppress_warnings accepts following configurations (ref: #2451, #2466):

    • app.add_node

    • app.add_directive

    • app.add_role

    • app.add_generic_role

    • app.add_source_parser

    • image.data_uri

    • image.nonlocal_uri

  • #2453: LaTeX writer allows page breaks in topic contents; and their horizontal extent now fits in the line width (with shadow in margin). Also warning-type admonitions allow page breaks and their vertical spacing has been made more coherent with the one for hint-type notices (ref #2446).

  • #2459: the framing of literal code-blocks in LaTeX output (and not only the code lines themselves) obey the indentation in lists or quoted blocks.

  • #2343: the long source lines in code-blocks are wrapped (without modifying the line numbering) in LaTeX output (ref #1534, #2304).


  • #2370: the equations are slightly misaligned in LaTeX writer

  • #1817, #2077: suppress pep8 warnings on conf.py generated by sphinx-quickstart

  • #2407: building docs crash if document includes large data image URIs

  • #2436: Sphinx does not check version by needs_sphinx if loading extensions failed

  • #2397: Setup shorthandoff for Turkish documents

  • #2447: VerbatimBorderColor wrongly used also for captions of PDF

  • #2456: C++, fix crash related to document merging (e.g., singlehtml and Latex builders).

  • #2446: latex(pdf) sets local tables of contents (or more generally topic nodes) in unbreakable boxes, causes overflow at bottom

  • #2476: Omit MathJax markers if :nowrap: is given

  • #2465: latex builder fails in case no caption option is provided to toctree directive

  • Sphinx crashes if self referenced toctree found

  • #2481: spelling mistake for mecab search splitter. Thanks to Naoki Sato.

  • #2309: Fix could not refer “indirect hyperlink targets” by ref-role

  • intersphinx fails if mapping URL contains any port

  • #2088: intersphinx crashes if the mapping URL requires basic auth

  • #2304: auto line breaks in latexpdf codeblocks

  • #1534: Word wrap long lines in Latex verbatim blocks

  • #2460: too much white space on top of captioned literal blocks in PDF output

  • Show error reason when multiple math extensions are loaded (ref: #2499)

  • #2483: any figure number was not assigned if figure title contains only non text objects

  • #2501: Unicode subscript numbers are normalized in LaTeX

  • #2492: Figure directive with :figwidth: generates incorrect Latex-code

  • The caption of figure is always put on center even if :align: was specified

  • #2526: LaTeX writer crashes if the section having only images

  • #2522: Sphinx touches mo files under installed directory that caused permission error.

  • #2536: C++, fix crash when an immediately nested scope has the same name as the current scope.

  • #2555: Fix crash on any-references with unicode.

  • #2517: wrong bookmark encoding in PDF if using LuaLaTeX

  • #2521: generated Makefile causes BSD make crashed if sphinx-build not found

  • #2470: typing backport package causes autodoc errors with python 2.7

  • sphinx.ext.intersphinx crashes if non-string value is used for key of intersphinx_mapping

  • #2518: intersphinx_mapping disallows non alphanumeric keys

  • #2558: unpack error on devhelp builder

  • #2561: Info builder crashes when a footnote contains a link

  • #2565: The descriptions of objects generated by sphinx.ext.autosummary overflow lines at LaTeX writer

  • Extend pdflatex config in sphinx.sty to subparagraphs (ref: #2551)

  • #2445: rst_prolog and rst_epilog affect to non reST sources

  • #2576: sphinx.ext.imgmath crashes if subprocess raises error

  • #2577: sphinx.ext.imgmath: Invalid argument are passed to dvisvgm

  • #2556: Xapian search does not work with Python 3

  • #2581: The search doesn’t work if language=”es” (Spanish)

  • #2382: Adjust spacing after abbreviations on figure numbers in LaTeX writer

  • #2383: The generated footnote by latex_show_urls overflows lines

  • #2497, #2552: The label of search button does not fit for the button itself

Release 1.4.1 (released Apr 12, 2016)


  • The default format of today_fmt and html_last_updated_fmt is back to strftime format again. Locale Date Markup Language is also supported for backward compatibility until Sphinx-1.5.


  • Added Welsh translation, thanks to Geraint Palmer.

  • Added Greek translation, thanks to Stelios Vitalis.

  • Added Esperanto translation, thanks to Dinu Gherman.

  • Added Hindi translation, thanks to Purnank H. Ghumalia.

  • Added Romanian translation, thanks to Razvan Stefanescu.


  • C++, added support for extern and thread_local.

  • C++, type declarations are now using the prefixes typedef, using, and type, depending on the style of declaration.

  • #2413: C++, fix crash on duplicate declarations

  • #2394: Sphinx crashes when html_last_updated_fmt is invalid

  • #2408: dummy builder not available in Makefile and make.bat

  • #2412: hyperlink targets are broken in LaTeX builder

  • figure directive crashes if non paragraph item is given as caption

  • #2418: time formats no longer allowed in today_fmt

  • #2395: Sphinx crashes if unicode character in image filename

  • #2396: “too many values to unpack” in genindex-single

  • #2405: numref link in PDF jumps to the wrong location

  • #2414: missing number in PDF hyperlinks to code listings

  • #2440: wrong import for gmtime. Thanks to Uwe L. Korn.

Release 1.4 (released Mar 28, 2016)


  • Drop PorterStemmer package support. Use PyStemmer instead of PorterStemmer to accelerate stemming.

  • sphinx_rtd_theme has become optional. Please install it manually. Refs #2087, #2086, #1845 and #2097. Thanks to Victor Zverovich.

  • #2231: Use DUrole instead of DUspan for custom roles in LaTeX writer. It enables to take title of roles as an argument of custom macros.

  • #2022: ‘Thumbs.db’ and ‘.DS_Store’ are added to exclude_patterns default values in conf.py that will be provided on sphinx-quickstart.

  • #2027, #2208: The html_title accepts string values only. And The None value cannot be accepted.

  • sphinx.ext.graphviz: show graph image in inline by default

  • #2060, #2224: The manpage role now generate sphinx.addnodes.manpage node instead of sphinx.addnodes.literal_emphasis node.

  • #2022: html_extra_path also copies dotfiles in the extra directory, and refers to exclude_patterns to exclude extra files and directories.

  • #2300: enhance autoclass:: to use the docstring of __new__ if __init__ method’s is missing of empty

  • #2251: Previously, under glossary directives, multiple terms for one definition are converted into single term node and the each terms in the term node are separated by termsep node. In new implementation, each terms are converted into individual term nodes and termsep node is removed. By this change, output layout of every builders are changed a bit.

  • The default highlight language is now Python 3. This means that source code is highlighted as Python 3 (which is mostly a superset of Python 2), and no parsing is attempted to distinguish valid code. To get the old behavior back, add highlight_language = "python" to conf.py.

  • Locale Date Markup Language like "MMMM dd, YYYY" is default format for today_fmt and html_last_updated_fmt. However strftime format like "%B %d, %Y" is also supported for backward compatibility until Sphinx-1.5. Later format will be disabled from Sphinx-1.5.

  • #2327: latex_use_parts is deprecated now. Use latex_toplevel_sectioning instead.

  • #2337: Use \url{URL} macro instead of \href{URL}{URL} in LaTeX writer.

  • #1498: manpage writer: don’t make whole of item in definition list bold if it includes strong node.

  • #582: Remove hint message from quick search box for html output.

  • #2378: Sphinx now bundles newfloat.sty


  • #2092: add todo directive support in napoleon package.

  • #1962: when adding directives, roles or nodes from an extension, warn if such an element is already present (built-in or added by another extension).

  • #1909: Add “doc” references to Intersphinx inventories.

  • C++ type alias support (e.g., .. type:: T = int).

  • C++ template support for classes, functions, type aliases, and variables (#1729, #1314).

  • C++, added new scope management directives namespace-push and namespace-pop.

  • #1970: Keyboard shortcuts to navigate Next and Previous topics

  • Intersphinx: Added support for fetching Intersphinx inventories with URLs using HTTP basic auth.

  • C++, added support for template parameter in function info field lists.

  • C++, added support for pointers to member (function).

  • #2113: Allow :class: option to code-block directive.

  • #2192: Imgmath (pngmath with svg support).

  • #2200: Support XeTeX and LuaTeX for the LaTeX builder.

  • #1906: Use xcolor over color for fcolorbox where available for LaTeX output.

  • #2216: Texinputs makefile improvements.

  • #2170: Support for Chinese language search index.

  • #2214: Add sphinx.ext.githubpages to publish the docs on GitHub Pages

  • #1030: Make page reference names for latex_show_pagerefs translatable

  • #2162: Add Sphinx.add_source_parser() to add source_suffix and source_parsers from extension

  • #2207: Add sphinx.parsers.Parser class; a base class for new parsers

  • #656: Add graphviz_dot option to graphviz directives to switch the dot command

  • #1939: Added the dummy builder: syntax check without output.

  • #2230: Add math_number_all option to number all displayed math in math extensions

  • #2235: needs_sphinx supports micro version comparison

  • #2282: Add “language” attribute to html tag in the “basic” theme

  • #1779: Add EPUB 3 builder

  • #1751: Add todo_link_only to avoid file path and line indication on todolist. Thanks to Francesco Montesano.

  • #2199: Use imagesize package to obtain size of images.

  • #1099: Add configurable retries to the linkcheck builder. Thanks to Alex Gaynor. Also don’t check anchors starting with !.

  • #2300: enhance autoclass:: to use the docstring of __new__ if __init__ method’s is missing of empty

  • #1858: Add Sphinx.add_enumerable_node() to add enumerable nodes for numfig feature

  • #1286, #2099: Add sphinx.ext.autosectionlabel extension to allow reference sections using its title. Thanks to Tadhg O’Higgins.

  • #1854: Allow to choose Janome for Japanese splitter.

  • #1853: support custom text splitter on html search with language='ja'.

  • #2320: classifier of glossary terms can be used for index entries grouping key. The classifier also be used for translation. See also 术语.

  • #2308: Define \tablecontinued macro to redefine the style of continued label for longtables.

  • Select an image by similarity if multiple images are globbed by .. image:: filename.*

  • #1921: Support figure substitutions by language and figure_language_filename

  • #2245: Add latex_elements["passoptionstopackages"] option to call PassOptionsToPackages in early stage of preambles.

  • #2340: Math extension: support alignment of multiple equations for MathJax.

  • #2338: Define \titleref macro to redefine the style of title-reference roles.

  • Define \menuselection and \accelerator macros to redefine the style of menuselection roles.

  • Define \crossref macro to redefine the style of references

  • #2301: Texts in the classic html theme should be hyphenated.

  • #2355: Define \termref macro to redefine the style of term roles.

  • Add suppress_warnings to suppress arbitrary warning message (experimental)

  • #2229: Fix no warning is given for unknown options

  • #2327: Add latex_toplevel_sectioning to switch the top level sectioning of LaTeX document.


  • #1913: C++, fix assert bug for enumerators in next-to-global and global scope.

  • C++, fix parsing of ‘signed char’ and ‘unsigned char’ as types.

  • C++, add missing support for ‘friend’ functions.

  • C++, add missing support for virtual base classes (thanks to Rapptz).

  • C++, add support for final classes.

  • C++, fix parsing of types prefixed with ‘enum’.

  • #2023: Dutch search support uses Danish stemming info.

  • C++, add support for user-defined literals.

  • #1804: Now html output wraps overflowed long-line-text in the sidebar. Thanks to Hassen ben tanfous.

  • #2183: Fix porterstemmer causes make json to fail.

  • #1899: Ensure list is sent to OptParse.

  • #2164: Fix wrong check for pdftex inside sphinx.sty (for graphicx package option).

  • #2165, #2218: Remove faulty and non-need conditional from sphinx.sty.

  • Fix broken LaTeX code is generated if unknown language is given

  • #1944: Fix rst_prolog breaks file-wide metadata

  • #2074: make gettext should use canonical relative paths for .pot. Thanks to anatoly techtonik.

  • #2311: Fix sphinx.ext.inheritance_diagram raises AttributeError

  • #2251: Line breaks in .rst files are transferred to .pot files in a wrong way.

  • #794: Fix date formatting in latex output is not localized

  • Remove image/gif from supported_image_types of LaTeX writer (#2272)

  • Fix ValueError is raised if LANGUAGE is empty string

  • Fix unpack warning is shown when the directives generated from Sphinx.add_crossref_type is used

  • The default highlight language is now default. This means that source code is highlighted as Python 3 (which is mostly a superset of Python 2) if possible. To get the old behavior back, add highlight_language = "python" to conf.py.

  • #2329: Refresh environment forcedly if source directory has changed.

  • #2331: Fix code-blocks are filled by block in dvi; remove xcdraw option from xcolor package

  • Fix the confval type checker emits warnings if unicode is given to confvals which expects string value

  • #2360: Fix numref in LaTeX output is broken

  • #2361: Fix additional paragraphs inside the “compound” directive are indented

  • #2364: Fix KeyError ‘rootSymbol’ on Sphinx upgrade from older version.

  • #2348: Move amsmath and amssymb to before fontpkg on LaTeX writer.

  • #2368: Ignore emacs lock files like .#foo.rst by default.

  • #2262: literal_block and its caption has been separated by pagebreak in LaTeX output.

  • #2319: Fix table counter is overridden by code-block’s in LaTeX. Thanks to jfbu.

  • Fix unpack warning if combined with 3rd party domain extensions.

  • #1153: Fix figures in sidebar causes latex build error.

  • #2358: Fix user-preamble could not override the tocdepth definition.

  • #2358: Reduce tocdepth if part or chapter is used for top_sectionlevel.

  • #2351: Fix footnote spacing

  • #2363: Fix toctree() in templates generates broken links in SingleHTMLBuilder.

  • #2366: Fix empty hyperref is generated on toctree in HTML builder.


Release 1.3.6 (released Feb 29, 2016)


  • #1873, #1876, #2278: Add page_source_suffix html context variable. This should be introduced with source_parsers feature. Thanks for Eric Holscher.


  • #2265: Fix babel is used in spite of disabling it on latex_elements

  • #2295: Avoid mutating dictionary errors while enumerating members in autodoc with Python 3

  • #2291: Fix pdflatex “Counter too large” error from footnotes inside tables of contents

  • #2292: Fix some footnotes disappear from LaTeX output

  • #2287: sphinx.transforms.Locale always uses rst parser. Sphinx i18n feature should support parsers that specified source_parsers.

  • #2290: Fix sphinx.ext.mathbase use of amsfonts may break user choice of math fonts

  • #2324: Print a hint how to increase the recursion limit when it is hit.

  • #1565, #2229: Revert new warning; the new warning will be triggered from version 1.4 on.

  • #2329: Refresh environment forcedly if source directory has changed.

  • #2019: Fix the domain objects in search result are not escaped

Release 1.3.5 (released Jan 24, 2016)


  • Fix line numbers was not shown on warnings in LaTeX and texinfo builders

  • Fix filenames were not shown on warnings of citations

  • Fix line numbers was not shown on warnings in LaTeX and texinfo builders

  • Fix line numbers was not shown on warnings of indices

  • #2026: Fix LaTeX builder raises error if parsed-literal includes links

  • #2243: Ignore strange docstring types for classes, do not crash

  • #2247: Fix #2205 breaks make html for definition list with classifiers that contains regular-expression like string

  • #1565: Sphinx will now emit a warning that highlighting was skipped if the syntax is incorrect for code-block, literalinclude and so on.

  • #2211: Fix paragraphs in table cell doesn’t work in Latex output

  • #2253: :pyobject: option of literalinclude directive can’t detect indented body block when the block starts with blank or comment lines.

  • Fix TOC is not shown when no :maxdepth: for toctrees (ref: #771)

  • Fix warning message for :numref: if target is in orphaned doc (ref: #2244)

Release 1.3.4 (released Jan 12, 2016)


  • #2134: Fix figure caption with reference causes latex build error

  • #2094: Fix rubric with reference not working in Latex

  • #2147: Fix literalinclude code in latex does not break in pages

  • #1833: Fix email addresses is showed again if latex_show_urls is not None

  • #2176: sphinx.ext.graphviz: use <object> instead of <img> to embed svg

  • #967: Fix SVG inheritance diagram is not hyperlinked (clickable)

  • #1237: Fix footnotes not working in definition list in LaTeX

  • #2168: Fix raw directive does not work for text writer

  • #2171: Fix cannot linkcheck url with unicode

  • #2182: LaTeX: support image file names with more than 1 dots

  • #2189: Fix previous sibling link for first file in subdirectory uses last file, not intended previous from root toctree

  • #2003: Fix decode error under python2 (only) when make linkcheck is run

  • #2186: Fix LaTeX output of mathbb in math

  • #1480, #2188: LaTeX: Support math in section titles

  • #2071: Fix same footnote in more than two section titles => LaTeX/PDF Bug

  • #2040: Fix UnicodeDecodeError in sphinx-apidoc when author contains non-ascii characters

  • #2193: Fix shutil.SameFileError if source directory and destination directory are same

  • #2178: Fix unparsable C++ cross-reference when referencing a function with :cpp:any:

  • #2206: Fix Sphinx latex doc build failed due to a footnotes

  • #2201: Fix wrong table caption for tables with over 30 rows

  • #2213: Set <blockquote> in the classic theme to fit with <p>

  • #1815: Fix linkcheck does not raise an exception if warniserror set to true and link is broken

  • #2197: Fix slightly cryptic error message for missing index.rst file

  • #1894: Unlisted phony targets in quickstart Makefile

  • #2125: Fix unifies behavior of collapsed fields (GroupedField and TypedField)

  • #1408: Check latex_logo validity before copying

  • #771: Fix latex output doesn’t set tocdepth

  • #1820: On Windows, console coloring is broken with colorama version 0.3.3. Now sphinx use colorama>=0.3.5 to avoid this problem.

  • #2072: Fix footnotes in chapter-titles do not appear in PDF output

  • #1580: Fix paragraphs in longtable don’t work in Latex output

  • #1366: Fix centered image not centered in latex

  • #1860: Fix man page using :samp: with braces - font doesn’t reset

  • #1610: Sphinx crashes in Japanese indexing in some systems

  • Fix Sphinx crashes if mecab initialization failed

  • #2160: Fix broken TOC of PDFs if section includes an image

  • #2172: Fix dysfunctional admonition \py@lightbox in sphinx.sty. Thanks to jfbu.

  • #2198,#2205: make gettext generate broken msgid for definition lists.

  • #2062: Escape characters in doctests are treated incorrectly with Python 2.

  • #2225: Fix if the option does not begin with dash, linking is not performed

  • #2226: Fix math is not HTML-encoded when :nowrap: is given (jsmath, mathjax)

  • #1601, #2220: ‘any’ role breaks extended domains behavior. Affected extensions doesn’t support resolve_any_xref and resolve_xref returns problematic node instead of None. sphinxcontrib-httpdomain is one of them.

  • #2229: Fix no warning is given for unknown options

Release 1.3.3 (released Dec 2, 2015)


  • #2177: Fix parallel hangs

  • #2012: Fix exception occurred if numfig_format is invalid

  • #2142: Provide non-minified JS code in sphinx/search/non-minified-js/*.js for source distribution on PyPI.

  • #2148: Error while building devhelp target with non-ASCII document.

Release 1.3.2 (released Nov 29, 2015)


  • #1935: Make “numfig_format” overridable in latex_elements.


  • #1976: Avoid “2.0” version of Babel because it doesn’t work with Windows environment.

  • Add a “default.css” stylesheet (which imports “classic.css”) for compatibility.

  • #1788: graphviz extension raises exception when caption option is present.

  • #1789: :pyobject: option of literalinclude directive includes following lines after class definitions

  • #1790: literalinclude strips empty lines at the head and tail

  • #1802: load plugin themes automatically when theme.conf use it as ‘inherit’. Thanks to Takayuki Hirai.

  • #1794: custom theme extended from alabaster or sphinx_rtd_theme can’t find base theme.

  • #1834: compatibility for docutils-0.13: handle_io_errors keyword argument for docutils.io.FileInput cause TypeError.

  • #1823: ‘.’ as <module_path> for sphinx-apidoc cause an unfriendly error. Now ‘.’ is converted to absolute path automatically.

  • Fix a crash when setting up extensions which do not support metadata.

  • #1784: Provide non-minified JS code in sphinx/search/non-minified-js/*.js

  • #1822, #1892: Fix regression for #1061. autosummary can’t generate doc for imported members since sphinx-1.3b3. Thanks to Eric Larson.

  • #1793, #1819: “see also” misses a linebreak in text output. Thanks to Takayuki Hirai.

  • #1780, #1866: “make text” shows “class” keyword twice. Thanks to Takayuki Hirai.

  • #1871: Fix for LaTeX output of tables with one column and multirows.

  • Work around the lack of the HTMLParserError exception in Python 3.5.

  • #1949: Use safe_getattr in the coverage builder to avoid aborting with descriptors that have custom behavior.

  • #1915: Do not generate smart quotes in doc field type annotations.

  • #1796: On py3, automated .mo building caused UnicodeDecodeError.

  • #1923: Use babel features only if the babel latex element is nonempty.

  • #1942: Fix a KeyError in websupport.

  • #1903: Fix strange id generation for glossary terms.

  • make text will crush if a definition list item has more than 1 classifiers as: term : classifier1 : classifier2.

  • #1855: make gettext generates broken po file for definition lists with classifier.

  • #1869: Fix problems when dealing with files containing non-ASCII characters. Thanks to Marvin Schmidt.

  • #1798: Fix building LaTeX with references in titles.

  • #1725: On py2 environment, doctest with using non-ASCII characters causes 'ascii' codec can't decode byte exception.

  • #1540: Fix RuntimeError with circular referenced toctree

  • #1983: i18n translation feature breaks references which uses section name.

  • #1990: Use caption of toctree to title of tableofcontents in LaTeX

  • #1987: Fix ampersand is ignored in :menuselection: and :guilabel: on LaTeX builder

  • #1994: More supporting non-standard parser (like recommonmark parser) for Translation and WebSupport feature. Now node.rawsource is fall backed to node.astext() during docutils transforming.

  • #1989: “make blahblah” on Windows indicate help messages for sphinx-build every time. It was caused by wrong make.bat that generated by Sphinx-1.3.0/1.3.1.

  • On Py2 environment, conf.py that is generated by sphinx-quickstart should have u prefixed config value for ‘version’ and ‘release’.

  • #2102: On Windows + Py3, using |today| and non-ASCII date format will raise UnicodeEncodeError.

  • #1974: UnboundLocalError: local variable ‘domain’ referenced before assignment when using any role and sphinx.ext.intersphinx in same time.

  • #2121: multiple words search doesn’t find pages when words across on the page title and the page content.

  • #1884, #1885: plug-in html themes cannot inherit another plug-in theme. Thanks to Suzumizaki.

  • #1818: sphinx.ext.todo directive generates broken html class attribute as ‘admonition-‘ when language is specified with non-ASCII linguistic area like ‘ru’ or ‘ja’. To fix this, now todo directive can use :class: option.

  • #2140: Fix footnotes in table has broken in LaTeX

  • #2127: MecabBinder for html searching feature doesn’t work with Python 3. Thanks to Tomoko Uchida.

Release 1.3.1 (released Mar 17, 2015)


  • #1769: allows generating quickstart files/dirs for destination dir that doesn’t overwrite existent files/dirs. Thanks to WAKAYAMA shirou.

  • #1773: sphinx-quickstart doesn’t accept non-ASCII character as a option argument.

  • #1766: the message “least Python 2.6 to run” is at best misleading.

  • #1772: cross reference in docstrings like :param .write: breaks building.

  • #1770, #1774: literalinclude with empty file occurs exception. Thanks to Takayuki Hirai.

  • #1777: Sphinx 1.3 can’t load extra theme. Thanks to tell-k.

  • #1776: source_suffix = ['.rst'] cause unfriendly error on prior version.

  • #1771: automated .mo building doesn’t work properly.

  • #1783: Autodoc: Python2 Allow unicode string in __all__. Thanks to Jens Hedegaard Nielsen.

  • #1781: Setting html_domain_indices to a list raises a type check warnings.

Release 1.3 (released Mar 10, 2015)


  • Roles ref, term and menusel now don’t generate emphasis nodes anymore. If you want to keep italic style, adapt your stylesheet.

  • Role numref uses %s as special character to indicate position of figure numbers instead # symbol.


  • Add convenience directives and roles to the C++ domain: directive cpp:var as alias for cpp:member, role :cpp:var as alias for :cpp:member, and role any for cross-reference to any C++ declaraction. #1577, #1744

  • The source_suffix config value can now be a list of multiple suffixes.

  • Add the ability to specify source parsers by source suffix with the source_parsers config value.

  • #1675: A new builder, AppleHelpBuilder, has been added that builds Apple Help Books.


  • 1.3b3 change breaks a previous gettext output that contains duplicated msgid such as “foo bar” and “version changes in 1.3: foo bar”.

  • #1745: latex builder cause maximum recursion depth exceeded when a footnote has a footnote mark itself.

  • #1748: SyntaxError in sphinx/ext/ifconfig.py with Python 2.6.

  • #1658, #1750: No link created (and warning given) if option does not begin with -, / or +. Thanks to Takayuki Hirai.

  • #1753: C++, added missing support for more complex declarations.

  • #1700: Add :caption: option for toctree.

  • #1742: :name: option is provided for toctree, code-block and literalinclude directives.

  • #1756: Incorrect section titles in search that was introduced from 1.3b3.

  • #1746: C++, fixed name lookup procedure, and added missing lookups in declarations.

  • #1765: C++, fix old id generation to use fully qualified names.


  • #1651: Add vartype field description for python domain.

Release 1.3b3 (released Feb 24, 2015)



  • #1346: Add new default theme;

    • Add ‘alabaster’ theme.

    • Add ‘sphinx_rtd_theme’ theme.

    • The ‘default’ html theme has been renamed to ‘classic’. ‘default’ is still available, however it will emit notice a recommendation that using new ‘alabaster’ theme.

  • Added highlight_options configuration value.

  • The language config value is now available in the HTML templates.

  • The env-updated event can now return a value, which is interpreted as an iterable of additional docnames that need to be rewritten.

  • #772: Support for scoped and unscoped enums in C++. Enumerators in unscoped enums are injected into the parent scope in addition to the enum scope.

  • Add todo_include_todos config option to quickstart conf file, handled as described in documentation.

  • HTML breadcrumb items tag has class “nav-item” and “nav-item-N” (like nav-item-0, 1, 2…).

  • New option sphinx-quickstart --use-make-mode for generating Makefile that use sphinx-build make-mode.

  • #1235: i18n: several node can be translated if it is set to gettext_additional_targets in conf.py. Supported nodes are:

    • ‘literal-block’

    • ‘doctest-block’

    • ‘raw’

    • ‘image’

  • #1227: Add html_scaled_image_link config option to conf.py, to control scaled image link.


  • LaTeX writer now generates correct markup for cells spanning multiple rows.

  • #1674: Do not crash if a module’s __all__ is not a list of strings.

  • #1629: Use VerbatimBorderColor to add frame to code-block in LaTeX

  • On windows, make-mode didn’t work on Win32 platform if sphinx was invoked as python sphinx-build.py.

  • #1687: linkcheck now treats 401 Unauthorized responses as “working”.

  • #1690: toctrees with glob option now can also contain entries for single documents with explicit title.

  • #1591: html search results for C++ elements now has correct interpage links.

  • bizstyle theme: nested long title pages make long breadcrumb that breaks page layout.

  • bizstyle theme: all breadcrumb items become ‘Top’ on some mobile browser (iPhone5s safari).

  • #1722: restore toctree() template function behavior that was changed at 1.3b1.

  • #1732: i18n: localized table caption raises exception.

  • #1718: :numref: does not work with capital letters in the label

  • #1630: resolve CSS conflicts, div.container css target for literal block wrapper now renamed to div.literal-block-wrapper.

  • sphinx.util.pycompat has been restored in its backwards-compatibility; slated for removal in Sphinx 1.4.

  • #1719: LaTeX writer does not respect numref_format option in captions

Release 1.3b2 (released Dec 5, 2014)


  • update bundled ez_setup.py for setuptools-7.0 that requires Python 2.6 or later.


  • #1597: Added possibility to return a new template name from html-page-context.

  • PR#314, #1150: Configuration values are now checked for their type. A warning is raised if the configured and the default value do not have the same type and do not share a common non-trivial base class.


  • PR#311: sphinx-quickstart does not work on python 3.4.

  • Fix autodoc_docstring_signature not working with signatures in class docstrings.

  • Rebuilding cause crash unexpectedly when source files were added.

  • #1607: Fix a crash when building latexpdf with “howto” class

  • #1251: Fix again. Sections which depth are lower than :tocdepth: should not be shown on localtoc sidebar.

  • make-mode didn’t work on Win32 platform if sphinx was installed by wheel package.

Release 1.3b1 (released Oct 10, 2014)


  • Dropped support for Python 2.5, 3.1 and 3.2.

  • Dropped support for docutils versions up to 0.9.

  • Removed the sphinx.ext.oldcmarkup extension.

  • The deprecated config values exclude_trees, exclude_dirnames and unused_docs have been removed.

  • A new node, sphinx.addnodes.literal_strong, has been added, for text that should appear literally (i.e. no smart quotes) in strong font. Custom writers will have to be adapted to handle this node.

  • PR#269, #1476: replace <tt> tag by <code>. User customized stylesheets should be updated If the css contain some styles for tt> tag. Thanks to Takeshi Komiya.

  • #1543: templates_path is automatically added to exclude_patterns to avoid reading autosummary rst templates in the templates directory.

  • Custom domains should implement the new Domain.resolve_any_xref method to make the any role work properly.

  • gettext builder: gettext doesn’t emit uuid information to generated pot files by default. Please set True to gettext_uuid to emit uuid information. Additionally, if the python-levenshtein 3rd-party package is installed, it will improve the calculation time.

  • gettext builder: disable extracting/apply ‘index’ node by default. Please set ‘index’ to gettext_enables to enable extracting index entries.

  • PR#307: Add frame to code-block in LaTeX. Thanks to Takeshi Komiya.


  • Add support for Python 3.4.

  • Add support for docutils 0.12

  • Added sphinx.ext.napoleon extension for NumPy and Google style docstring support.

  • Added support for parallel reading (parsing) of source files with the sphinx-build -j option. Third-party extensions will need to be checked for compatibility and may need to be adapted if they store information in the build environment object. See env-merge-info.

  • Added the any role that can be used to find a cross-reference of any type in any domain. Custom domains should implement the new Domain.resolve_any_xref method to make this work properly.

  • Exception logs now contain the last 10 messages emitted by Sphinx.

  • Added support for extension versions (a string returned by setup(), these can be shown in the traceback log files). Version requirements for extensions can be specified in projects using the new needs_extensions config value.

  • Changing the default role within a document with the default-role directive is now supported.

  • PR#214: Added stemming support for 14 languages, so that the built-in document search can now handle these. Thanks to Shibukawa Yoshiki.

  • PR#296, PR#303, #76: numfig feature: Assign numbers to figures, tables and code-blocks. This feature is configured with numfig, numfig_secnum_depth and numfig_format. Also numref role is available. Thanks to Takeshi Komiya.

  • PR#202: Allow “.” and “~” prefixed references in :param: doc fields for Python.

  • PR#184: Add autodoc_mock_imports, allowing to mock imports of external modules that need not be present when autodocumenting.

  • #925: Allow list-typed config values to be provided on the command line, like -D key=val1,val2.

  • #668: Allow line numbering of code-block and literalinclude directives to start at an arbitrary line number, with a new lineno-start option.

  • PR#172, PR#266: The code-block and literalinclude directives now can have a caption option that shows a filename before the code in the output. Thanks to Nasimul Haque, Takeshi Komiya.

  • Prompt for the document language in sphinx-quickstart.

  • PR#217: Added config values to suppress UUID and location information in generated gettext catalogs.

  • PR#236, #1456: apidoc: Add a -M option to put module documentation before submodule documentation. Thanks to Wes Turner and Luc Saffre.

  • #1434: Provide non-minified JS files for jquery.js and underscore.js to clarify the source of the minified files.

  • PR#252, #1291: Windows color console support. Thanks to meu31.

  • PR#255: When generating latex references, also insert latex target/anchor for the ids defined on the node. Thanks to Olivier Heurtier.

  • PR#229: Allow registration of other translators. Thanks to Russell Sim.

  • Add app.set_translator() API to register or override a Docutils translator class like html_translator_class.

  • PR#267, #1134: add ‘diff’ parameter to literalinclude. Thanks to Richard Wall and WAKAYAMA shirou.

  • PR#272: Added ‘bizstyle’ theme. Thanks to Shoji KUMAGAI.

  • Automatically compile *.mo files from *.po files when gettext_auto_build is True (default) and *.po is newer than *.mo file.

  • #623: sphinx.ext.viewcode supports imported function/class aliases.

  • PR#275: sphinx.ext.intersphinx supports multiple target for the inventory. Thanks to Brigitta Sipocz.

  • PR#261: Added the env-before-read-docs event that can be connected to modify the order of documents before they are read by the environment.

  • #1284: Program options documented with option can now start with +.

  • PR#291: The caption of code-block is recognized as a title of ref target. Thanks to Takeshi Komiya.

  • PR#298: Add new API: add_latex_package(). Thanks to Takeshi Komiya.

  • #1344: add gettext_enables to enable extracting ‘index’ to gettext catalog output / applying translation catalog to generated documentation.

  • PR#301, #1583: Allow the line numbering of the directive literalinclude to match that of the included file, using a new lineno-match option. Thanks to Jeppe Pihl.

  • PR#299: add various options to sphinx-quickstart. Quiet mode option --quiet will skips wizard mode. Thanks to WAKAYAMA shirou.

  • #1623: Return types specified with :rtype: are now turned into links if possible.


  • #1438: Updated jQuery version from 1.8.3 to 1.11.1.

  • #1568: Fix a crash when a “centered” directive contains a reference.

  • Now sphinx.ext.autodoc works with python-2.5 again.

  • #1563: add_search_language() raises AssertionError for correct type of argument. Thanks to rikoman.

  • #1174: Fix smart quotes being applied inside roles like program or makevar.

  • PR#235: comment db schema of websupport lacked a length of the node_id field. Thanks to solos.

  • #1466,PR#241: Fix failure of the cpp domain parser to parse C+11 “variadic templates” declarations. Thanks to Victor Zverovich.

  • #1459,PR#244: Fix default mathjax js path point to http:// that cause mixed-content error on HTTPS server. Thanks to sbrandtb and robo9k.

  • PR#157: autodoc remove spurious signatures from @property decorated attributes. Thanks to David Ham.

  • PR#159: Add coverage targets to quickstart generated Makefile and make.bat. Thanks to Matthias Troffaes.

  • #1251: When specifying toctree :numbered: option and :tocdepth: metadata, sub section number that is larger depth than :tocdepth: is shrunk.

  • PR#260: Encode underscore in citation labels for latex export. Thanks to Lennart Fricke.

  • PR#264: Fix could not resolve xref for figure node with :name: option. Thanks to Takeshi Komiya.

  • PR#265: Fix could not capture caption of graphviz node by xref. Thanks to Takeshi Komiya.

  • PR#263, #1013, #1103: Rewrite of C++ domain. Thanks to Jakob Lykke Andersen.

    • Hyperlinks to all found nested names and template arguments (#1103).

    • Support for function types everywhere, e.g., in std::function<bool(int, int)> (#1013).

    • Support for virtual functions.

    • Changed interpretation of function arguments to following standard prototype declarations, i.e., void f(arg) means that arg is the type of the argument, instead of it being the name.

    • Updated tests.

    • Updated documentation with elaborate description of what declarations are supported and how the namespace declarations influence declaration and cross-reference lookup.

    • Index names may be different now. Elements are indexed by their fully qualified name. It should be rather easy to change this behaviour and potentially index by namespaces/classes as well.

  • PR#258, #939: Add dedent option for code-block and literalinclude. Thanks to Zafar Siddiqui.

  • PR#268: Fix numbering section does not work at singlehtml mode. It still ad-hoc fix because there is a issue that section IDs are conflicted. Thanks to Takeshi Komiya.

  • PR#273, #1536: Fix RuntimeError with numbered circular toctree. Thanks to Takeshi Komiya.

  • PR#274: Set its URL as a default title value if URL appears in toctree. Thanks to Takeshi Komiya.

  • PR#276, #1381: rfc and pep roles support custom link text. Thanks to Takeshi Komiya.

  • PR#277, #1513: highlights for function pointers in argument list of c:function. Thanks to Takeshi Komiya.

  • PR#278: Fix section entries were shown twice if toctree has been put under only directive. Thanks to Takeshi Komiya.

  • #1547: pgen2 tokenizer doesn’t recognize ... literal (Ellipsis for py3).

  • PR#294: On LaTeX builder, wrap float environment on writing literal_block to avoid separation of caption and body. Thanks to Takeshi Komiya.

  • PR#295, #1520: make.bat latexpdf mechanism to cd back to the current directory. Thanks to Peter Suter.

  • PR#297, #1571: Add imgpath property to all builders. It make easier to develop builder extensions. Thanks to Takeshi Komiya.

  • #1584: Point to master doc in HTML “top” link.

  • #1585: Autosummary of modules broken in Sphinx-1.2.3.

  • #1610: Sphinx cause AttributeError when MeCab search option is enabled and python-mecab is not installed.

  • #1674: Do not crash if a module’s __all__ is not a list of strings.

  • #1673: Fix crashes with nitpick_ignore and :doc: references.

  • #1686: ifconfig directive doesn’t care about default config values.

  • #1642: Fix only one search result appearing in Chrome.


  • Add clarification about the syntax of tags. (doc/markup/misc.rst)

Release 1.2.3 (released Sep 1, 2014)


  • #1518: sphinx-apidoc command now has a --version option to show version information and exit

  • New locales: Hebrew, European Portuguese, Vietnamese.


  • #636: Keep straight single quotes in literal blocks in the LaTeX build.

  • #1419: Generated i18n sphinx.js files are missing message catalog entries from ‘.js_t’ and ‘.html’. The issue was introduced from Sphinx-1.1

  • #1363: Fix i18n: missing python domain’s cross-references with currentmodule directive or currentclass directive.

  • #1444: autosummary does not create the description from attributes docstring.

  • #1457: In python3 environment, make linkcheck cause “Can’t convert ‘bytes’ object to str implicitly” error when link target url has a hash part. Thanks to Jorge_C.

  • #1467: Exception on Python3 if nonexistent method is specified by automethod

  • #1441: autosummary can’t handle nested classes correctly.

  • #1499: With non-callable setup in a conf.py, now sphinx-build emits a user-friendly error message.

  • #1502: In autodoc, fix display of parameter defaults containing backslashes.

  • #1226: autodoc, autosummary: importing setup.py by automodule will invoke setup process and execute sys.exit(). Now sphinx avoids SystemExit exception and emits warnings without unexpected termination.

  • #1503: py:function directive generate incorrectly signature when specifying a default parameter with an empty list []. Thanks to Geert Jansen.

  • #1508: Non-ASCII filename raise exception on make singlehtml, latex, man, texinfo and changes.

  • #1531: On Python3 environment, docutils.conf with ‘source_link=true’ in the general section cause type error.

  • PR#270, #1533: Non-ASCII docstring cause UnicodeDecodeError when uses with inheritance-diagram directive. Thanks to WAKAYAMA shirou.

  • PR#281, PR#282, #1509: TODO extension not compatible with websupport. Thanks to Takeshi Komiya.

  • #1477: gettext does not extract nodes.line in a table or list.

  • #1544: make text generates wrong table when it has empty table cells.

  • #1522: Footnotes from table get displayed twice in LaTeX. This problem has been appeared from Sphinx-1.2.1 by #949.

  • #508: Sphinx every time exit with zero when is invoked from setup.py command. ex. python setup.py build_sphinx -b doctest return zero even if doctest failed.

Release 1.2.2 (released Mar 2, 2014)


  • PR#211: When checking for existence of the html_logo file, check the full relative path and not the basename.

  • PR#212: Fix traceback with autodoc and __init__ methods without docstring.

  • PR#213: Fix a missing import in the setup command.

  • #1357: Option names documented by option are now again allowed to not start with a dash or slash, and referencing them will work correctly.

  • #1358: Fix handling of image paths outside of the source directory when using the “wildcard” style reference.

  • #1374: Fix for autosummary generating overly-long summaries if first line doesn’t end with a period.

  • #1383: Fix Python 2.5 compatibility of sphinx-apidoc.

  • #1391: Actually prevent using “pngmath” and “mathjax” extensions at the same time in sphinx-quickstart.

  • #1386: Fix bug preventing more than one theme being added by the entry point mechanism.

  • #1370: Ignore “toctree” nodes in text writer, instead of raising.

  • #1364: Fix ‘make gettext’ fails when the ‘.. todolist::’ directive is present.

  • #1367: Fix a change of PR#96 that break sphinx.util.docfields.Field.make_field interface/behavior for item argument usage.


Release 1.2.1 (released Jan 19, 2014)


  • #1335: Fix autosummary template overloading with exclamation prefix like {% extends "!autosummary/class.rst" %} cause infinite recursive function call. This was caused by PR#181.

  • #1337: Fix autodoc with autoclass_content="both" uses useless object.__init__ docstring when class does not have __init__. This was caused by a change for #1138.

  • #1340: Can’t search alphabetical words on the HTML quick search generated with language=’ja’.

  • #1319: Do not crash if the html_logo file does not exist.

  • #603: Do not use the HTML-ized title for building the search index (that resulted in “literal” being found on every page with a literal in the title).

  • #751: Allow production lists longer than a page in LaTeX by using longtable.

  • #764: Always look for stopwords lowercased in JS search.

  • #814: autodoc: Guard against strange type objects that don’t have __bases__.

  • #932: autodoc: Do not crash if __doc__ is not a string.

  • #933: Do not crash if an option value is malformed (contains spaces but no option name).

  • #908: On Python 3, handle error messages from LaTeX correctly in the pngmath extension.

  • #943: In autosummary, recognize “first sentences” to pull from the docstring if they contain uppercase letters.

  • #923: Take the entire LaTeX document into account when caching pngmath-generated images. This rebuilds them correctly when pngmath_latex_preamble changes.

  • #901: Emit a warning when using docutils’ new “math” markup without a Sphinx math extension active.

  • #845: In code blocks, when the selected lexer fails, display line numbers nevertheless if configured.

  • #929: Support parsed-literal blocks in LaTeX output correctly.

  • #949: Update the tabulary.sty packed with Sphinx.

  • #1050: Add anonymous labels into objects.inv to be referenced via intersphinx.

  • #1095: Fix print-media stylesheet being included always in the “scrolls” theme.

  • #1085: Fix current classname not getting set if class description has :noindex: set.

  • #1181: Report option errors in autodoc directives more gracefully.

  • #1155: Fix autodocumenting C-defined methods as attributes in Python 3.

  • #1233: Allow finding both Python classes and exceptions with the “class” and “exc” roles in intersphinx.

  • #1198: Allow “image” for the “figwidth” option of the figure directive as documented by docutils.

  • #1152: Fix pycode parsing errors of Python 3 code by including two grammar versions for Python 2 and 3, and loading the appropriate version for the running Python version.

  • #1017: Be helpful and tell the user when the argument to option does not match the required format.

  • #1345: Fix two bugs with nitpick_ignore; now you don’t have to remove the store environment for changes to have effect.

  • #1072: In the JS search, fix issues searching for upper-cased words by lowercasing words before stemming.

  • #1299: Make behavior of the math directive more consistent and avoid producing empty environments in LaTeX output.

  • #1308: Strip HTML tags from the content of “raw” nodes before feeding it to the search indexer.

  • #1249: Fix duplicate LaTeX page numbering for manual documents.

  • #1292: In the linkchecker, retry HEAD requests when denied by HTTP 405. Also make the redirect code apparent and tweak the output a bit to be more obvious.

  • #1285: Avoid name clashes between C domain objects and section titles.

  • #848: Always take the newest code in incremental rebuilds with the sphinx.ext.viewcode extension.

  • #979, #1266: Fix exclude handling in sphinx-apidoc.

  • #1302: Fix regression in sphinx.ext.inheritance_diagram when documenting classes that can’t be pickled.

  • #1316: Remove hard-coded font-face resources from epub theme.

  • #1329: Fix traceback with empty translation msgstr in .po files.

  • #1300: Fix references not working in translated documents in some instances.

  • #1283: Fix a bug in the detection of changed files that would try to access doctrees of deleted documents.

  • #1330: Fix exclude_patterns behavior with subdirectories in the html_static_path.

  • #1323: Fix emitting empty <ul> tags in the HTML writer, which is not valid HTML.

  • #1147: Don’t emit a sidebar search box in the “singlehtml” builder.


  • #1325: Added a “Intersphinx” tutorial section. (doc/tutorial.rst)

Release 1.2 (released Dec 10, 2013)


  • Added sphinx.version_info tuple for programmatic checking of the Sphinx version.


  • Removed the sphinx.ext.refcounting extension – it is very specific to CPython and has no place in the main distribution.


  • Restore versionmodified CSS class for versionadded/changed and deprecated directives.

  • PR#181: Fix html_theme_path = ['.'] is a trigger of rebuild all documents always (This change keeps the current “theme changes cause a rebuild” feature).

  • #1296: Fix invalid charset in HTML help generated HTML files for default locale.

  • PR#190: Fix gettext does not extract figure caption and rubric title inside other blocks. Thanks to Michael Schlenker.

  • PR#176: Make sure setup_command test can always import Sphinx. Thanks to Dmitry Shachnev.

  • #1311: Fix test_linkcode.test_html fails with C locale and Python 3.

  • #1269: Fix ResourceWarnings with Python 3.2 or later.

  • #1138: Fix: When autodoc_docstring_signature = True and autoclass_content = 'init' or 'both', __init__ line should be removed from class documentation.

Release 1.2 beta3 (released Oct 3, 2013)


  • The Sphinx error log files will now include a list of the loaded extensions for help in debugging.


  • PR#154: Remove “sphinx” prefix from LaTeX class name except ‘sphinxmanual’ and ‘sphinxhowto’. Now you can use your custom document class without ‘sphinx’ prefix. Thanks to Erik B.


  • #1265: Fix i18n: crash when translating a section name that is pointed to from a named target.

  • A wrong condition broke the search feature on first page that is usually index.rst. This issue was introduced in 1.2b1.

  • #703: When Sphinx can’t decode filenames with non-ASCII characters, Sphinx now catches UnicodeError and will continue if possible instead of raising the exception.

Release 1.2 beta2 (released Sep 17, 2013)


  • apidoc now ignores “_private” modules by default, and has an option -P to include them.

  • apidoc now has an option to not generate headings for packages and modules, for the case that the module docstring already includes a reST heading.

  • PR#161: apidoc can now write each module to a standalone page instead of combining all modules in a package on one page.

  • Builders: rebuild i18n target document when catalog updated.

  • Support docutils.conf ‘writers’ and ‘html4css1 writer’ section in the HTML writer. The latex, manpage and texinfo writers also support their respective ‘writers’ sections.

  • The new html_extra_path config value allows to specify directories with files that should be copied directly to the HTML output directory.

  • Autodoc directives for module data and attributes now support an annotation option, so that the default display of the data/attribute value can be overridden.

  • PR#136: Autodoc directives now support an imported-members option to include members imported from different modules.

  • New locales: Macedonian, Sinhala, Indonesian.

  • Theme package collection by using setuptools plugin mechanism.


  • PR#144, #1182: Force timezone offset to LocalTimeZone on POT-Creation-Date that was generated by gettext builder. Thanks to masklinn and Jakub Wilk.


  • PR#132: Updated jQuery version to 1.8.3.

  • PR#141, #982: Avoid crash when writing PNG file using Python 3. Thanks to Marcin Wojdyr.

  • PR#145: In parallel builds, sphinx drops second document file to write. Thanks to tychoish.

  • PR#151: Some styling updates to tables in LaTeX.

  • PR#153: The “extensions” config value can now be overridden.

  • PR#155: Added support for some C++11 function qualifiers.

  • Fix: ‘make gettext’ caused UnicodeDecodeError when templates contain utf-8 encoded strings.

  • #828: use inspect.getfullargspec() to be able to document functions with keyword-only arguments on Python 3.

  • #1090: Fix i18n: multiple cross references (term, ref, doc) in the same line return the same link.

  • #1157: Combination of ‘globaltoc.html’ and hidden toctree caused exception.

  • #1159: fix wrong generation of objects inventory for Python modules, and add a workaround in intersphinx to fix handling of affected inventories.

  • #1160: Citation target missing caused an AssertionError.

  • #1162, PR#139: singlehtml builder didn’t copy images to _images/.

  • #1173: Adjust setup.py dependencies because Jinja2 2.7 discontinued compatibility with Python < 3.3 and Python < 2.6. Thanks to Alexander Dupuy.

  • #1185: Don’t crash when a Python module has a wrong or no encoding declared, and non-ASCII characters are included.

  • #1188: sphinx-quickstart raises UnicodeEncodeError if “Project version” includes non-ASCII characters.

  • #1189: “Title underline is too short” WARNING is given when using fullwidth characters to “Project name” on quickstart.

  • #1190: Output TeX/texinfo/man filename has no basename (only extension) when using non-ASCII characters in the “Project name” on quickstart.

  • #1192: Fix escaping problem for hyperlinks in the manpage writer.

  • #1193: Fix i18n: multiple link references in the same line return the same link.

  • #1176: Fix i18n: footnote reference number missing for auto numbered named footnote and auto symbol footnote.

  • PR#146,#1172: Fix ZeroDivisionError in parallel builds. Thanks to tychoish.

  • #1204: Fix wrong generation of links to local intersphinx targets.

  • #1206: Fix i18n: gettext did not translate admonition directive’s title.

  • #1232: Sphinx generated broken ePub files on Windows.

  • #1259: Guard the debug output call when emitting events; to prevent the repr() implementation of arbitrary objects causing build failures.

  • #1142: Fix NFC/NFD normalizing problem of rst filename on Mac OS X.

  • #1234: Ignoring the string consists only of white-space characters.

Release 1.2 beta1 (released Mar 31, 2013)


  • Removed sphinx.util.compat.directive_dwim() and sphinx.roles.xfileref_role() which were deprecated since version 1.0.

  • PR#122: the files given in latex_additional_files now override TeX files included by Sphinx, such as sphinx.sty.

  • PR#124: the node generated by versionadded, versionchanged and deprecated directives now includes all added markup (such as “New in version X”) as child nodes, and no additional text must be generated by writers.

  • PR#99: the seealso directive now generates admonition nodes instead of the custom seealso node.


  • Markup

    • The toctree directive and the toctree() template function now have an includehidden option that includes hidden toctree entries (bugs #790 and #1047). A bug in the maxdepth option for the toctree() template function has been fixed (bug #1046).

    • PR#99: Strip down seealso directives to normal admonitions. This removes their unusual CSS classes (admonition-see-also), inconsistent LaTeX admonition title (“See Also” instead of “See also”), and spurious indentation in the text builder.

  • HTML builder

    • #783: Create a link to full size image if it is scaled with width or height.

    • #1067: Improve the ordering of the JavaScript search results: matches in titles come before matches in full text, and object results are better categorized. Also implement a pluggable search scorer.

    • #1053: The “rightsidebar” and “collapsiblesidebar” HTML theme options now work together.

    • Update to jQuery 1.7.1 and Underscore.js 1.3.1.

  • Texinfo builder

    • An “Index” node is no longer added when there are no entries.

    • “deffn” categories are no longer capitalized if they contain capital letters.

    • desc_annotation nodes are now rendered.

    • strong and emphasis nodes are now formatted like literals. The reason for this is because the standard Texinfo markup (*strong* and _emphasis_) resulted in confusing output due to the common usage of using these constructs for documenting parameter names.

    • Field lists formatting has been tweaked to better display “Info field lists”.

    • system_message and problematic nodes are now formatted in a similar fashion as done by the text builder.

    • “en-dash” and “em-dash” conversion of hyphens is no longer performed in option directive signatures.

    • @ref is now used instead of @pxref for cross-references which prevents the word “see” from being added before the link (does not affect the Info output).

    • The @finalout command has been added for better TeX output.

    • transition nodes are now formatted using underscores (“_”) instead of asterisks (“*”).

    • The default value for the paragraphindent has been changed from 2 to 0 meaning that paragraphs are no longer indented by default.

    • #1110: A new configuration value texinfo_no_detailmenu has been added for controlling whether a @detailmenu is added in the “Top” node’s menu.

    • Detailed menus are no longer created except for the “Top” node.

    • Fixed an issue where duplicate domain indices would result in invalid output.

  • LaTeX builder:

    • PR#115: Add 'transition' item in latex_elements for customizing how transitions are displayed. Thanks to Jeff Klukas.

    • PR#114: The LaTeX writer now includes the “cmap” package by default. The 'cmappkg' item in latex_elements can be used to control this. Thanks to Dmitry Shachnev.

    • The 'fontpkg' item in latex_elements now defaults to '' when the language uses the Cyrillic script. Suggested by Dmitry Shachnev.

    • The latex_documents, texinfo_documents, and man_pages configuration values will be set to default values based on the master_doc if not explicitly set in conf.py. Previously, if these values were not set, no output would be generated by their respective builders.

  • Internationalization:

    • Add i18n capabilities for custom templates. For example: The Sphinx reference documentation in doc directory provides a sphinx.pot file with message strings from doc/_templates/*.html when using make gettext.

    • PR#61,#703: Add support for non-ASCII filename handling.

  • Other builders:

    • Added the Docutils-native XML and pseudo-XML builders. See XMLBuilder and PseudoXMLBuilder.

    • PR#45: The linkcheck builder now checks #anchors for existence.

    • PR#123, #1106: Add epub_use_index configuration value. If provided, it will be used instead of html_use_index for epub builder.

    • PR#126: Add epub_tocscope configuration value. The setting controls the generation of the epub toc. The user can now also include hidden toc entries.

    • PR#112: Add epub_show_urls configuration value.

  • Extensions:

    • PR#52: special_members flag to autodoc now behaves like members.

    • PR#47: Added sphinx.ext.linkcode extension.

    • PR#25: In inheritance diagrams, the first line of the class docstring is now the tooltip for the class.

  • Command-line interfaces:

    • PR#75: Added --follow-links option to sphinx-apidoc.

    • #869: sphinx-build now has the option -T for printing the full traceback after an unhandled exception.

    • sphinx-build now supports the standard --help and --version options.

    • sphinx-build now provides more specific error messages when called with invalid options or arguments.

    • sphinx-build now has a verbose option -v which can be repeated for greater effect. A single occurrence provides a slightly more verbose output than normal. Two or more occurrences of this option provides more detailed output which may be useful for debugging.

  • Locales:

    • PR#74: Fix some Russian translation.

    • PR#54: Added Norwegian bokmaal translation.

    • PR#35: Added Slovak translation.

    • PR#28: Added Hungarian translation.

    • #1113: Add Hebrew locale.

    • #1097: Add Basque locale.

    • #1037: Fix typos in Polish translation. Thanks to Jakub Wilk.

    • #1012: Update Estonian translation.

  • Optimizations:

    • Speed up building the search index by caching the results of the word stemming routines. Saves about 20 seconds when building the Python documentation.

    • PR#108: Add experimental support for parallel building with a new sphinx-build -j option.


  • PR#88: Added the “Sphinx Developer’s Guide” (doc/devguide.rst) which outlines the basic development process of the Sphinx project.

  • Added a detailed “Installing Sphinx” document (doc/install.rst).


  • PR#124: Fix paragraphs in versionmodified are ignored when it has no dangling paragraphs. Fix wrong html output (nested <p> tag). Fix versionmodified is not translatable. Thanks to Nozomu Kaneko.

  • PR#111: Respect add_autodoc_attrgetter() even when inherited-members is set. Thanks to A. Jesse Jiryu Davis.

  • PR#97: Fix footnote handling in translated documents.

  • Fix text writer not handling visit_legend for figure directive contents.

  • Fix text builder not respecting wide/fullwidth characters: title underline width, table layout width and text wrap width.

  • Fix leading space in LaTeX table header cells.

  • #1132: Fix LaTeX table output for multi-row cells in the first column.

  • #1128: Fix Unicode errors when trying to format time strings with a non-standard locale.

  • #1127: Fix traceback when autodoc tries to tokenize a non-Python file.

  • #1126: Fix double-hyphen to en-dash conversion in wrong places such as command-line option names in LaTeX.

  • #1123: Allow whitespaces in filenames given to literalinclude.

  • #1120: Added improvements about i18n for themes “basic”, “haiku” and “scrolls” that Sphinx built-in. Thanks to Leonardo J. Caballero G.

  • #1118: Updated Spanish translation. Thanks to Leonardo J. Caballero G.

  • #1117: Handle .pyx files in sphinx-apidoc.

  • #1112: Avoid duplicate download files when referenced from documents in different ways (absolute/relative).

  • #1111: Fix failure to find uppercase words in search when html_search_language is ‘ja’. Thanks to Tomo Saito.

  • #1108: The text writer now correctly numbers enumerated lists with non-default start values (based on patch by Ewan Edwards).

  • #1102: Support multi-context “with” statements in autodoc.

  • #1090: Fix gettext not extracting glossary terms.

  • #1074: Add environment version info to the generated search index to avoid compatibility issues with old builds.

  • #1070: Avoid un-pickling issues when running Python 3 and the saved environment was created under Python 2.

  • #1069: Fixed error caused when autodoc would try to format signatures of “partial” functions without keyword arguments (patch by Artur Gaspar).

  • #1062: sphinx.ext.autodoc use __init__ method signature for class signature.

  • #1055: Fix web support with relative path to source directory.

  • #1043: Fix sphinx-quickstart asking again for yes/no questions because input() returns values with an extra ‘r’ on Python 3.2.0 + Windows. Thanks to Régis Décamps.

  • #1041: Fix failure of the cpp domain parser to parse a const type with a modifier.

  • #1038: Fix failure of the cpp domain parser to parse C+11 “static constexpr” declarations. Thanks to Jakub Wilk.

  • #1029: Fix intersphinx_mapping values not being stable if the mapping has plural key/value set with Python 3.3.

  • #1028: Fix line block output in the text builder.

  • #1024: Improve Makefile/make.bat error message if Sphinx is not found. Thanks to Anatoly Techtonik.

  • #1018: Fix “container” directive handling in the text builder.

  • #1015: Stop overriding jQuery contains() in the JavaScript.

  • #1010: Make pngmath images transparent by default; IE7+ should handle it.

  • #1008: Fix test failures with Python 3.3.

  • #995: Fix table-of-contents and page numbering for the LaTeX “howto” class.

  • #976: Fix gettext does not extract index entries.

  • PR#72: #975: Fix gettext not extracting definition terms before docutils 0.10.

  • #961: Fix LaTeX output for triple quotes in code snippets.

  • #958: Do not preserve environment.pickle after a failed build.

  • #955: Fix i18n transformation.

  • #940: Fix gettext does not extract figure caption.

  • #920: Fix PIL packaging issue that allowed to import Image without PIL namespace. Thanks to Marc Schlaich.

  • #723: Fix the search function on local files in WebKit based browsers.

  • #440: Fix coarse timestamp resolution in some filesystem generating a wrong list of outdated files.

Release 1.1.3 (Mar 10, 2012)

  • PR#40: Fix safe_repr function to decode bytestrings with non-ASCII characters correctly.

  • PR#37: Allow configuring sphinx-apidoc via SPHINX_APIDOC_OPTIONS.

  • PR#34: Restore Python 2.4 compatibility.

  • PR#36: Make the “bibliography to TOC” fix in LaTeX output specific to the document class.

  • #695: When the highlight language “python” is specified explicitly, do not try to parse the code to recognize non-Python snippets.

  • #859: Fix exception under certain circumstances when not finding appropriate objects to link to.

  • #860: Do not crash when encountering invalid doctest examples, just emit a warning.

  • #864: Fix crash with some settings of modindex_common_prefix.

  • #862: Fix handling of -D and -A options on Python 3.

  • #851: Recognize and warn about circular toctrees, instead of running into recursion errors.

  • #853: Restore compatibility with docutils trunk.

  • #852: Fix HtmlHelp index entry links again.

  • #854: Fix inheritance_diagram raising attribute errors on builtins.

  • #832: Fix crashes when putting comments or lone terms in a glossary.

  • #834, #818: Fix HTML help language/encoding mapping for all Sphinx supported languages.

  • #844: Fix crashes when dealing with Unicode output in doctest extension.

  • #831: Provide --project flag in setup_command as advertised.

  • #875: Fix reading config files under Python 3.

  • #876: Fix quickstart test under Python 3.

  • #870: Fix spurious KeyErrors when removing documents.

  • #892: Fix single-HTML builder misbehaving with the master document in a subdirectory.

  • #873: Fix assertion errors with empty only directives.

  • #816: Fix encoding issues in the Qt help builder.

Release 1.1.2 (Nov 1, 2011) – 1.1.1 is a silly version number anyway!

  • #809: Include custom fixers in the source distribution.

Release 1.1.1 (Nov 1, 2011)

  • #791: Fix QtHelp, DevHelp and HtmlHelp index entry links.

  • #792: Include “sphinx-apidoc” in the source distribution.

  • #797: Don’t crash on a misformatted glossary.

  • #801: Make intersphinx work properly without SSL support.

  • #805: Make the Sphinx.add_index_to_domain method work correctly.

  • #780: Fix Python 2.5 compatibility.

Release 1.1 (Oct 9, 2011)


  • The py:module directive doesn’t output its platform option value anymore. (It was the only thing that the directive did output, and therefore quite inconsistent.)

  • Removed support for old dependency versions; requirements are now:

    • Pygments >= 1.2

    • Docutils >= 0.7

    • Jinja2 >= 2.3


  • Added Python 3.x support.

  • New builders and subsystems:

    • Added a Texinfo builder.

    • Added i18n support for content, a gettext builder and related utilities.

    • Added the websupport library and builder.

    • #98: Added a sphinx-apidoc script that autogenerates a hierarchy of source files containing autodoc directives to document modules and packages.

    • #273: Add an API for adding full-text search support for languages other than English. Add support for Japanese.

  • Markup:

    • #138: Added an index role, to make inline index entries.

    • #454: Added more index markup capabilities: marking see/seealso entries, and main entries for a given key.

    • #460: Allowed limiting the depth of section numbers for HTML using the toctree’s numbered option.

    • #586: Implemented improved glossary markup which allows multiple terms per definition.

    • #478: Added py:decorator directive to describe decorators.

    • C++ domain now supports array definitions.

    • C++ domain now supports doc fields (:param x: inside directives).

    • Section headings in only directives are now correctly handled.

    • Added emphasize-lines option to source code directives.

    • #678: C++ domain now supports superclasses.

  • HTML builder:

    • Added pyramid theme.

    • #559: html_add_permalinks is now a string giving the text to display in permalinks.

    • #259: HTML table rows now have even/odd CSS classes to enable “Zebra styling”.

    • #554: Add theme option sidebarwidth to the basic theme.

  • Other builders:

  • Configuration and extensibility:

  • Autodoc:

    • #564: Add autodoc_docstring_signature. When enabled (the default), autodoc retrieves the signature from the first line of the docstring, if it is found there.

    • #176: Provide private-members option for autodoc directives.

    • #520: Provide special-members option for autodoc directives.

    • #431: Doc comments for attributes can now be given on the same line as the assignment.

    • #437: autodoc now shows values of class data attributes.

    • autodoc now supports documenting the signatures of functools.partial objects.

  • Other extensions:

    • Added the sphinx.ext.mathjax extension.

    • #443: Allow referencing external graphviz files.

    • Added inline option to graphviz directives, and fixed the default (block-style) in LaTeX output.

    • #590: Added caption option to graphviz directives.

    • #553: Added testcleanup blocks in the doctest extension.

    • #594: trim_doctest_flags now also removes <BLANKLINE> indicators.

    • #367: Added automatic exclusion of hidden members in inheritance diagrams, and an option to selectively enable it.

    • Added pngmath_add_tooltips.

    • The math extension displaymath directives now support name in addition to label for giving the equation label, for compatibility with Docutils.

  • New locales:

    • #221: Added Swedish locale.

    • #526: Added Iranian locale.

    • #694: Added Latvian locale.

    • Added Nepali locale.

    • #714: Added Korean locale.

    • #766: Added Estonian locale.

  • Bugs fixed:

    • #778: Fix “hide search matches” link on pages linked by search.

    • Fix the source positions referenced by the “viewcode” extension.

Release 1.0.8 (Sep 23, 2011)

  • #627: Fix tracebacks for AttributeErrors in autosummary generation.

  • Fix the abbr role when the abbreviation has newlines in it.

  • #727: Fix the links to search results with custom object types.

  • #648: Fix line numbers reported in warnings about undefined references.

  • #696, #666: Fix C++ array definitions and template arguments that are not type names.

  • #633: Allow footnotes in section headers in LaTeX output.

  • #616: Allow keywords to be linked via intersphinx.

  • #613: Allow Unicode characters in production list token names.

  • #720: Add dummy visitors for graphviz nodes for text and man.

  • #704: Fix image file duplication bug.

  • #677: Fix parsing of multiple signatures in C++ domain.

  • #637: Ignore Emacs lock files when looking for source files.

  • #544: Allow .pyw extension for importable modules in autodoc.

  • #700: Use $(MAKE) in quickstart-generated Makefiles.

  • #734: Make sidebar search box width consistent in browsers.

  • #644: Fix spacing of centered figures in HTML output.

  • #767: Safely encode SphinxError messages when printing them to sys.stderr.

  • #611: Fix LaTeX output error with a document with no sections but a link target.

  • Correctly treat built-in method descriptors as methods in autodoc.

  • #706: Stop monkeypatching the Python textwrap module.

  • #657: viewcode now works correctly with source files that have non-ASCII encoding.

  • #669: Respect the noindex flag option in py:module directives.

  • #675: Fix IndexErrors when including nonexisting lines with literalinclude.

  • #676: Respect custom function/method parameter separator strings.

  • #682: Fix JS incompatibility with jQuery >= 1.5.

  • #693: Fix double encoding done when writing HTMLHelp .hhk files.

  • #647: Do not apply SmartyPants in parsed-literal blocks.

  • C++ domain now supports array definitions.

Release 1.0.7 (Jan 15, 2011)

  • #347: Fix wrong generation of directives of static methods in autosummary.

  • #599: Import PIL as from PIL import Image.

  • #558: Fix longtables with captions in LaTeX output.

  • Make token references work as hyperlinks again in LaTeX output.

  • #572: Show warnings by default when reference labels cannot be found.

  • #536: Include line number when complaining about missing reference targets in nitpicky mode.

  • #590: Fix inline display of graphviz diagrams in LaTeX output.

  • #589: Build using app.build() in setup command.

  • Fix a bug in the inheritance diagram exception that caused base classes to be skipped if one of them is a builtin.

  • Fix general index links for C++ domain objects.

  • #332: Make admonition boundaries in LaTeX output visible.

  • #573: Fix KeyErrors occurring on rebuild after removing a file.

  • Fix a traceback when removing files with globbed toctrees.

  • If an autodoc object cannot be imported, always re-read the document containing the directive on next build.

  • If an autodoc object cannot be imported, show the full traceback of the import error.

  • Fix a bug where the removal of download files and images wasn’t noticed.

  • #571: Implement ~ cross-reference prefix for the C domain.

  • Fix regression of LaTeX output with the fix of #556.

  • #568: Fix lookup of class attribute documentation on descriptors so that comment documentation now works.

  • Fix traceback with only directives preceded by targets.

  • Fix tracebacks occurring for duplicate C++ domain objects.

  • Fix JavaScript domain links to objects with $ in their name.

Release 1.0.6 (Jan 04, 2011)

  • #581: Fix traceback in Python domain for empty cross-reference targets.

  • #283: Fix literal block display issues on Chrome browsers.

  • #383, #148: Support sorting a limited range of accented characters in the general index and the glossary.

  • #570: Try decoding -D and -A command-line arguments with the locale’s preferred encoding.

  • #528: Observe locale_dirs when looking for the JS translations file.

  • #574: Add special code for better support of Japanese documents in the LaTeX builder.

  • Regression of #77: If there is only one parameter given with :param: markup, the bullet list is now suppressed again.

  • #556: Fix missing paragraph breaks in LaTeX output in certain situations.

  • #567: Emit the autodoc-process-docstring event even for objects without a docstring so that it can add content.

  • #565: In the LaTeX builder, not only literal blocks require different table handling, but also quite a few other list-like block elements.

  • #515: Fix tracebacks in the viewcode extension for Python objects that do not have a valid signature.

  • Fix strange reports of line numbers for warnings generated from autodoc-included docstrings, due to different behavior depending on docutils version.

  • Several fixes to the C++ domain.

Release 1.0.5 (Nov 12, 2010)

  • #557: Add CSS styles required by docutils 0.7 for aligned images and figures.

  • In the Makefile generated by LaTeX output, do not delete pdf files on clean; they might be required images.

  • #535: Fix LaTeX output generated for line blocks.

  • #544: Allow .pyw as a source file extension.

Release 1.0.4 (Sep 17, 2010)

  • #524: Open intersphinx inventories in binary mode on Windows, since version 2 contains zlib-compressed data.

  • #513: Allow giving non-local URIs for JavaScript files, e.g. in the JSMath extension.

  • #512: Fix traceback when intersphinx_mapping is empty.

Release 1.0.3 (Aug 23, 2010)

  • #495: Fix internal vs. external link distinction for links coming from a docutils table-of-contents.

  • #494: Fix the maxdepth option for the toctree() template callable when used with collapse=True.

  • #507: Fix crash parsing Python argument lists containing brackets in string literals.

  • #501: Fix regression when building LaTeX docs with figures that don’t have captions.

  • #510: Fix inheritance diagrams for classes that are not picklable.

  • #497: Introduce separate background color for the sidebar collapse button, making it easier to see.

  • #502, #503, #496: Fix small layout bugs in several builtin themes.

Release 1.0.2 (Aug 14, 2010)

  • #490: Fix cross-references to objects of types added by the add_object_type() API function.

  • Fix handling of doc field types for different directive types.

  • Allow breaking long signatures, continuing with backlash-escaped newlines.

  • Fix unwanted styling of C domain references (because of a namespace clash with Pygments styles).

  • Allow references to PEPs and RFCs with explicit anchors.

  • #471: Fix LaTeX references to figures.

  • #482: When doing a non-exact search, match only the given type of object.

  • #481: Apply non-exact search for Python reference targets with .name for modules too.

  • #484: Fix crash when duplicating a parameter in an info field list.

  • #487: Fix setting the default role to one provided by the oldcmarkup extension.

  • #488: Fix crash when json-py is installed, which provides a json module but is incompatible to simplejson.

  • #480: Fix handling of target naming in intersphinx.

  • #486: Fix removal of ! for all cross-reference roles.

Release 1.0.1 (Jul 27, 2010)

  • #470: Fix generated target names for reST domain objects; they are not in the same namespace.

  • #266: Add Bengali language.

  • #473: Fix a bug in parsing JavaScript object names.

  • #474: Fix building with SingleHTMLBuilder when there is no toctree.

  • Fix display names for objects linked to by intersphinx with explicit targets.

  • Fix building with the JSON builder.

  • Fix hyperrefs in object descriptions for LaTeX.

Release 1.0 (Jul 23, 2010)


  • Support for domains has been added. A domain is a collection of directives and roles that all describe objects belonging together, e.g. elements of a programming language. A few builtin domains are provided:

    • Python

    • C

    • C++

    • JavaScript

    • reStructuredText

  • The old markup for defining and linking to C directives is now deprecated. It will not work anymore in future versions without activating the oldcmarkup extension; in Sphinx 1.0, it is activated by default.

  • Removed support for old dependency versions; requirements are now:

    • docutils >= 0.5

    • Jinja2 >= 2.2

  • Removed deprecated elements:

    • exclude_dirs config value

    • sphinx.builder module


  • General:

    • Added a “nitpicky” mode that emits warnings for all missing references. It is activated by the sphinx-build -n command-line switch or the nitpicky config value.

    • Added latexpdf target in quickstart Makefile.

  • Markup:

    • The menuselection and guilabel roles now support ampersand accelerators.

    • New more compact doc field syntax is now recognized: :param type name: description.

    • Added tab-width option to literalinclude directive.

    • Added titlesonly option to toctree directive.

    • Added the prepend and append options to the literalinclude directive.

    • #284: All docinfo metadata is now put into the document metadata, not just the author.

    • The ref role can now also reference tables by caption.

    • The include directive now supports absolute paths, which are interpreted as relative to the source directory.

    • In the Python domain, references like :func:`.name` now look for matching names with any prefix if no direct match is found.

  • Configuration:

    • Added rst_prolog config value.

    • Added html_secnumber_suffix config value to control section numbering format.

    • Added html_compact_lists config value to control docutils’ compact lists feature.

    • The html_sidebars config value can now contain patterns as keys, and the values can be lists that explicitly select which sidebar templates should be rendered. That means that the builtin sidebar contents can be included only selectively.

    • html_static_path can now contain single file entries.

    • The new universal config value exclude_patterns makes the old unused_docs, exclude_trees and exclude_dirnames obsolete.

    • Added html_output_encoding config value.

    • Added the latex_docclass config value and made the “twoside” documentclass option overridable by “oneside”.

    • Added the trim_doctest_flags config value, which is true by default.

    • Added html_show_copyright config value.

    • Added latex_show_pagerefs and latex_show_urls config values.

    • The behavior of html_file_suffix changed slightly: the empty string now means “no suffix” instead of “default suffix”, use None for “default suffix”.

  • New builders:

    • Added a builder for the Epub format.

    • Added a builder for manual pages.

    • Added a single-file HTML builder.

  • HTML output:

    • Inline roles now get a CSS class with their name, allowing styles to customize their appearance. Domain-specific roles get two classes, domain and domain-rolename.

    • References now get the class internal if they are internal to the whole project, as opposed to internal to the current page.

    • External references can be styled differently with the new externalrefs theme option for the default theme.

    • In the default theme, the sidebar can experimentally now be made collapsible using the new collapsiblesidebar theme option.

    • #129: Toctrees are now wrapped in a div tag with class toctree-wrapper in HTML output.

    • The toctree callable in templates now has a maxdepth keyword argument to control the depth of the generated tree.

    • The toctree callable in templates now accepts a titles_only keyword argument.

    • Added htmltitle block in layout template.

    • In the JavaScript search, allow searching for object names including the module name, like sys.argv.

    • Added new theme haiku, inspired by the Haiku OS user guide.

    • Added new theme nature.

    • Added new theme agogo, created by Andi Albrecht.

    • Added new theme scrolls, created by Armin Ronacher.

    • #193: Added a visitedlinkcolor theme option to the default theme.

    • #322: Improved responsiveness of the search page by loading the search index asynchronously.

  • Extension API:

  • Extensions:

    • Added the viewcode extension.

    • Added the extlinks extension.

    • Added support for source ordering of members in autodoc, with autodoc_member_order = 'bysource'.

    • Added autodoc_default_flags config value, which can be used to select default flags for all autodoc directives.

    • Added a way for intersphinx to refer to named labels in other projects, and to specify the project you want to link to.

    • #280: Autodoc can now document instance attributes assigned in __init__ methods.

    • Many improvements and fixes to the autosummary extension, thanks to Pauli Virtanen.

    • #309: The graphviz extension can now output SVG instead of PNG images, controlled by the graphviz_output_format config value.

    • Added alt option to graphviz extension directives.

    • Added exclude argument to autodoc.between().

  • Translations:

    • Added Croatian translation, thanks to Bojan Mihelač.

    • Added Turkish translation, thanks to Firat Ozgul.

    • Added Catalan translation, thanks to Pau Fernández.

    • Added simplified Chinese translation.

    • Added Danish translation, thanks to Hjorth Larsen.

    • Added Lithuanian translation, thanks to Dalius Dobravolskas.

  • Bugs fixed:

    • #445: Fix links to result pages when using the search function of HTML built with the dirhtml builder.

    • #444: In templates, properly re-escape values treated with the “striptags” Jinja filter.

Previous versions

The changelog for versions before 1.0 can be found in the file CHANGES.old in the source distribution or at GitHub.