diff options
Diffstat (limited to 'sphinx/writers/html.py')
| -rw-r--r-- | sphinx/writers/html.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index 0ef40e0f5..f7366767f 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -19,7 +19,8 @@ from docutils import nodes from docutils.writers.html4css1 import Writer, HTMLTranslator as BaseTranslator from sphinx import addnodes -from sphinx.deprecation import RemovedInSphinx30Warning +from sphinx.builders import Builder +from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning from sphinx.locale import admonitionlabels, _, __ from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator @@ -53,7 +54,7 @@ class HTMLWriter(Writer): def translate(self): # type: () -> None # sadly, this is mostly copied from parent class - visitor = self.builder.create_translator(self.builder, self.document) + visitor = self.builder.create_translator(self.document, self.builder) self.visitor = cast(HTMLTranslator, visitor) self.document.walkabout(visitor) self.output = self.visitor.astext() @@ -73,9 +74,17 @@ class HTMLTranslator(SphinxTranslator, BaseTranslator): builder = None # type: StandaloneHTMLBuilder - def __init__(self, builder, document): - # type: (StandaloneHTMLBuilder, nodes.document) -> None - super().__init__(builder, document) + def __init__(self, *args): + # type: (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 + super().__init__(document, builder) + self.highlighter = self.builder.highlighter self.docnames = [self.builder.current_docname] # for singlehtml builder self.manpages_url = self.config.manpages_url |
