diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index e023e8194..4a6bc6ce0 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -229,8 +229,11 @@ class StandaloneHTMLBuilder(Builder): source_class=DocTreeInput, destination=StringOutput(encoding='unicode'), ) - op = pub.setup_option_parser(output_encoding='unicode', traceback=True) - pub.settings = op.get_default_values() + if docutils.__version_info__[:2] >= (0, 19): + pub.get_settings(output_encoding='unicode', traceback=True) + else: + op = pub.setup_option_parser(output_encoding='unicode', traceback=True) + pub.settings = op.get_default_values() self._publisher = pub def init(self) -> None: diff --git a/sphinx/io.py b/sphinx/io.py index 5ab7b2b63..1c36a791d 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -3,6 +3,7 @@ import codecs import warnings from typing import TYPE_CHECKING, Any, List, Type +import docutils from docutils import nodes from docutils.core import Publisher from docutils.frontend import Values @@ -212,5 +213,8 @@ def create_publisher(app: "Sphinx", filetype: str) -> Publisher: # Propagate exceptions by default when used programmatically: defaults = {"traceback": True, **app.env.settings} # Set default settings - pub.settings = pub.setup_option_parser(**defaults).get_default_values() # type: ignore + if docutils.__version_info__[:2] >= (0, 19): + pub.get_settings(**defaults) # type: ignore[arg-type] + else: + pub.settings = pub.setup_option_parser(**defaults).get_default_values() # type: ignore return pub