Sphinx

# Sphinx 2.4

## Release 2.4.5 (released Nov 18, 2021)

### Dependencies

- #9807: Restrict Docutils to 0.17.x or older

## Release 2.4.4 (released Mar 05, 2020)

### Bugs fixed

- #7197: LaTeX: platex cause error to build image directive with target url

- #7223: Sphinx builds has been slower since 2.4.0

## Release 2.4.3 (released Feb 22, 2020)

### Bugs fixed

- #7184: autodoc: `*args` and `**kwarg` in type comments are not handled properly

- #7189: autodoc: classmethod coroutines are not detected

- #7183: intersphinx: `:attr:` reference to property is broken

- #6244, #6387: html search: Search breaks/hangs when built with dirhtml builder

- #7195: todo: emit doctree-resolved event with non-document node incorrectly

## Release 2.4.2 (released Feb 19, 2020)

### Bugs fixed

- #7138: autodoc: `autodoc.typehints` crashed when variable has unbound object as a value

- #7156: autodoc: separator for keyword only arguments is not shown

- #7146: autodoc: IndexError is raised on suppressed type_comment found

- #7161: autodoc: typehints extension does not support parallel build

- #7178: autodoc: TypeError is raised on fetching type annotations

- #7151: crashed when extension assigns a value to `env.indexentries`

- #7170: text: Remove debug print

- #7137: viewcode: Avoid to crash when non-python code given

## Release 2.4.1 (released Feb 11, 2020)

### Bugs fixed

- #7120: html: crashed when on scaling SVG images which have float dimensions

- #7126: autodoc: TypeError: ‘getset_descriptor’ object is not iterable

## Release 2.4.0 (released Feb 09, 2020)

### Deprecated

- The `decode` argument of `sphinx.pycode.ModuleAnalyzer()`

- `sphinx.directives.other.Index`

- `sphinx.environment.temp_data['gloss_entries']`

- `sphinx.environment.BuildEnvironment.indexentries`

- `sphinx.environment.collectors.indexentries.IndexEntriesCollector`

- `sphinx.ext.apidoc.INITPY`

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

- `sphinx.io.FiletypeNotFoundError`

- `sphinx.io.get_filetype()`

- `sphinx.pycode.ModuleAnalyzer.encoding`

- `sphinx.roles.Index`

- `sphinx.util.detect_encoding()`

- `sphinx.util.get_module_source()`

- `sphinx.util.inspect.Signature`

- `sphinx.util.inspect.safe_getmembers()`

- `sphinx.writers.latex.LaTeXTranslator.settings.author`

- `sphinx.writers.latex.LaTeXTranslator.settings.contentsname`

- `sphinx.writers.latex.LaTeXTranslator.settings.docclass`

- `sphinx.writers.latex.LaTeXTranslator.settings.docname`

- `sphinx.writers.latex.LaTeXTranslator.settings.title`

- `sphinx.writers.latex.ADDITIONAL_SETTINGS`

- `sphinx.writers.latex.DEFAULT_SETTINGS`

- `sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG`

- `sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG`

- `sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG`

- `sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG`

### Features added

- #6910: inheritance_diagram: Make the background of diagrams transparent

- #6446: duration: Add `sphinx.ext.durations` to inspect which documents slow down the build

- #6837: LaTeX: Support a nested table

- #7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment variable

- #6966: graphviz: Support `:class:` option

- #6696: html: `:scale:` option of image/figure directive not working for SVG images (imagesize-1.2.0 or above is required)

- #6994: imgconverter: Support illustrator file (.ai) to .png conversion

- autodoc: Support Positional-Only Argument separator (PEP-570 compliant)

- autodoc: Support type annotations for variables

- #2755: autodoc: Add new event: `autodoc-before-process-signature`

- #2755: autodoc: Support type_comment style (ex. `# type: (str) -> str`) annotation (python3.8+ or typed_ast is required)

- #7051: autodoc: Support instance variables without defaults (PEP-526)

- #6418: autodoc: Add a new extension `sphinx.ext.autodoc.typehints`. It shows typehints as object description if `autodoc_typehints = "description"` set. This is an experimental extension and it will be integrated into autodoc core in Sphinx 3.0

- SphinxTranslator now calls visitor/departure method for super node class if visitor/departure method for original node class not found

- #6418: Add new event: `object-description-transform`

- py domain: `py:data` and `py:attribute` take new options named `:type:` and `:value:` to describe its type and initial value

- #6785: py domain: `:py:attr:` is able to refer properties again

- #6772: apidoc: Add `-q` option for quiet mode

### Bugs fixed

- #6925: html: Remove redundant type=”text/javascript” from <script> elements

- #7112: html: SVG image is not layouted as float even if aligned

- #6906, #6907: autodoc: failed to read the source codes encoded in cp1251

- #6961: latex: warning for babel shown twice

- #7059: latex: LaTeX compilation falls into infinite loop (wrapfig issue)

- #6581: latex: `:reversed:` option for toctree does not effect to LaTeX build

- #6559: Wrong node-ids are generated in glossary directive

- #6986: apidoc: misdetects module name for .so file inside module

- #6899: apidoc: private members are not shown even if `--private` given

- #6327: apidoc: Support a python package consisted of __init__.so file

- #6999: napoleon: fails to parse tilde in :exc: role

- #7019: gettext: Absolute path used in message catalogs

- #7023: autodoc: nested partial functions are not listed

- #7023: autodoc: partial functions imported from other modules are listed as module members without :impoprted-members: option

- #6889: autodoc: Trailing comma in `:members::` option causes cryptic warning

- #6568: autosummary: `autosummary_imported_members` is ignored on generating a stub file for submodule

- #7055: linkcheck: redirect is treated as an error

- #7088: HTML template: If `navigation_with_keys` option is activated, modifier keys are ignored, which means the feature can interfere with browser features

- #7090: std domain: Can’t assign numfig-numbers for custom container nodes

- #7106: std domain: enumerated nodes are marked as duplicated when extensions call `note_explicit_target()`

- #7095: dirhtml: Cross references are broken via intersphinx and `:doc:` role

- C++:

  - Don’t crash when using the `struct` role in some cases.

  - Don’t warn when using the `var`/`member` role for function parameters.

  - Render call and braced-init expressions correctly.

- #7097: Filenames of images generated by `sphinx.transforms.post_transforms.images.ImageConverter` or its subclasses (used for latex build) are now sanitized, to prevent broken paths