diff options
Diffstat (limited to 'sphinx/writers/html.py')
-rw-r--r-- | sphinx/writers/html.py | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index d3e7e03a4..35c29550e 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -13,7 +13,7 @@ import os import posixpath import re import warnings -from typing import Any, Iterable, Tuple, cast +from typing import TYPE_CHECKING, Iterable, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node, Text @@ -22,14 +22,13 @@ from docutils.writers.html4css1 import Writer from sphinx import addnodes from sphinx.builders import Builder -from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning +from sphinx.deprecation import RemovedInSphinx50Warning from sphinx.locale import _, __, admonitionlabels from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.images import get_image_size -if False: - # For type annotation +if TYPE_CHECKING: from sphinx.builders.html import StandaloneHTMLBuilder @@ -84,16 +83,9 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): Our custom HTML translator. """ - builder = None # type: StandaloneHTMLBuilder + builder: "StandaloneHTMLBuilder" = None - def __init__(self, *args: Any) -> None: - if isinstance(args[0], nodes.document) and isinstance(args[1], Builder): - document, builder = args - else: - warnings.warn('The order of arguments for HTMLTranslator has been changed. ' - 'Please give "document" as 1st and "builder" as 2nd.', - RemovedInSphinx40Warning, stacklevel=2) - builder, document = args + def __init__(self, document: nodes.document, builder: Builder) -> None: super().__init__(document, builder) self.highlighter = self.builder.highlighter @@ -379,7 +371,7 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): def depart_classifier(self, node: Element) -> None: self.body.append('</span>') - next_node = node.next_node(descend=False, siblings=True) # type: Node + next_node: Node = node.next_node(descend=False, siblings=True) if not isinstance(next_node, nodes.classifier): # close `<dt>` tag at the tail of classifiers self.body.append('</dt>') @@ -390,7 +382,7 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): # overwritten def depart_term(self, node: Element) -> None: - next_node = node.next_node(descend=False, siblings=True) # type: Node + next_node: Node = node.next_node(descend=False, siblings=True) if isinstance(next_node, nodes.classifier): # Leave the end tag to `self.depart_classifier()`, in case # there's a classifier. @@ -582,6 +574,13 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): self.body.append(self.context.pop()) # overwritten + def visit_figure(self, node: Element) -> None: + # set align=default if align not specified to give a default style + node.setdefault('align', 'default') + + return super().visit_figure(node) + + # overwritten def visit_image(self, node: Element) -> None: olduri = node['uri'] # rewrite the URI if the environment knows about it @@ -782,6 +781,10 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): def visit_table(self, node: Element) -> None: self._table_row_index = 0 + + # set align=default if align not specified to give a default style + node.setdefault('align', 'default') + return super().visit_table(node) def visit_row(self, node: Element) -> None: |