Sphinx

# Sphinx 2.1

## Release 2.1.2 (released Jun 19, 2019)

### Bugs fixed

- #6497: custom lexers fails highlighting when syntax error

- #6478, #6488: info field lists are incorrectly recognized

## Release 2.1.1 (released Jun 10, 2019)

### Incompatible changes

- #6447: autodoc: Stop to generate document for undocumented module variables

### Bugs fixed

- #6442: LaTeX: admonitions of `note` type can get separated from immediately preceding section title by pagebreak

- #6448: autodoc: crashed when autodocumenting classes with `__slots__ = None`

- #6451: autodoc: generates docs for “optional import”ed modules as variables

- #6452: autosummary: crashed when generating document of properties

- #6455: napoleon: docstrings for properties are not processed

- #6436: napoleon: “Unknown target name” error if variable name ends with underscore

- #6440: apidoc: missing blank lines between modules

## Release 2.1.0 (released Jun 02, 2019)

### Incompatible changes

- Ignore filenames without file extension given to `Builder.build_specific()` API directly

- #6230: The anchor of term in glossary directive is changed if it is consisted by non-ASCII characters

- #4550: html: Centering tables by default using CSS

- #6239: latex: xelatex and xeCJK are used for Chinese documents by default

- `Sphinx.add_lexer()` now takes a Lexer class instead of instance. An instance of lexers are still supported until Sphinx 3.x.

### Deprecated

- `sphinx.builders.latex.LaTeXBuilder.apply_transforms()`

- `sphinx.builders._epub_base.EpubBuilder.esc()`

- `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.domains.python.PyClassmember`

- `sphinx.domains.python.PyModulelevel`

- `sphinx.domains.std.StandardDomain._resolve_citation_xref()`

- `sphinx.domains.std.StandardDomain.note_citations()`

- `sphinx.domains.std.StandardDomain.note_citation_refs()`

- `sphinx.domains.std.StandardDomain.note_labels()`

- `sphinx.environment.NoUri`

- `sphinx.ext.apidoc.format_directive()`

- `sphinx.ext.apidoc.format_heading()`

- `sphinx.ext.apidoc.makename()`

- `sphinx.ext.autodoc.importer.MockFinder`

- `sphinx.ext.autodoc.importer.MockLoader`

- `sphinx.ext.autodoc.importer.mock()`

- `sphinx.ext.autosummary.autolink_role()`

- `sphinx.ext.imgmath.DOC_BODY`

- `sphinx.ext.imgmath.DOC_BODY_PREVIEW`

- `sphinx.ext.imgmath.DOC_HEAD`

- `sphinx.transforms.CitationReferences`

- `sphinx.transforms.SmartQuotesSkipper`

- `sphinx.util.docfields.DocFieldTransformer.preprocess_fieldtypes()`

- `sphinx.util.node.find_source_node()`

- `sphinx.util.i18n.find_catalog()`

- `sphinx.util.i18n.find_catalog_files()`

- `sphinx.util.i18n.find_catalog_source_files()`

For more details, see deprecation APIs list.

### Features added

- Add a helper class `sphinx.transforms.post_transforms.SphinxPostTransform`

- Add helper methods

  - `PythonDomain.note_module()`

  - `PythonDomain.note_object()`

  - `SphinxDirective.set_source_info()`

- #6180: Support `--keep-going` with `BuildDoc` setup command

- `math` directive now supports `:class:` option

- todo: `todo` directive now supports `:name:` option

- Enable override via environment of `SPHINXOPTS` and `SPHINXBUILD` Makefile variables (refs: #6232, #6303)

- #6287: autodoc: Unable to document bound instance methods exported as module functions

- #6289: autodoc: `autodoc_default_options` now supports `imported-members` option

- #4777: autodoc: Support coroutine

- #744: autodoc: Support abstractmethod

- #6325: autodoc: Support attributes in __slots__. For dict-style __slots__, autodoc considers values as a docstring of the attribute

- #6361: autodoc: Add `autodoc_typehints` to suppress typehints from signature

- #1063: autodoc: `automodule` directive now handles undocumented module level variables

- #6212: autosummary: Add `autosummary_imported_members` to display imported members on autosummary

- #6271: `make clean` is catastrophically broken if building into ‘.’

- #6363: Support `%O%` environment variable in make.bat

- #4777: py domain: Add `:async:` option to `py:function` directive

- py domain: Add new options to `py:method` directive

  - `:abstractmethod:`

  - `:async:`

  - `:classmethod:`

  - `:property:`

  - `:staticmethod:`

- rst domain: Add `rst:directive:option` directive to describe the option for directive

- #6306: html: Add a label to search form for accessibility purposes

- #4390: html: Consistent and semantic CSS for signatures

- #6358: The `rawsource` property of `production` nodes now contains the full production rule

- #6373: autosectionlabel: Allow suppression of warnings

- coverage: Support a new `coverage_ignore_pyobjects` option

- #6239: latex: Support to build Chinese documents

### Bugs fixed

- #6230: Inappropriate node_id has been generated by glossary directive if term is consisted by non-ASCII characters

- #6213: ifconfig: contents after headings are not shown

- commented term in glossary directive is wrongly recognized

- #6299: rst domain: rst:directive directive generates waste space

- #6379: py domain: Module index (py-modindex.html) has duplicate titles

- #6331: man: invalid output when doctest follows rubric

- #6351: “Hyperlink target is not referenced” message is shown even if referenced

- #6165: autodoc: `tab_width` setting of Docutils has been ignored

- #6347: autodoc: crashes with a plain Tuple on Python 3.6 and 3.5

- #6311: autosummary: autosummary table gets confused by complex type hints

- #6350: autosummary: confused by an argument having some kind of default value

- Generated Makefiles lack a final EOL (refs: #6232)

- #6375: extlinks: Cannot escape angle brackets in link caption

- #6378: linkcheck: Send commonly used User-Agent

- #6387: html search: failed to search document with haiku and scrolls themes

- #6408: html search: Fix the ranking of search results

- #6406: Wrong year is returned for `SOURCE_DATE_EPOCH`

- #6402: image directive crashes by unknown image format

- #6286: C++, allow 8 and 9 in hexadecimal integer literals.

- #6305: Fix the string in quickstart for ‘path’ argument of parser

- LaTeX: Figures in admonitions produced errors (refs: #6364)