summaryrefslogtreecommitdiff
path: root/docs/_ext
diff options
context:
space:
mode:
authorDavid Smith <smithdc@gmail.com>2023-08-01 21:22:53 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-08-03 08:01:06 +0200
commitb3e0170ab546a96930ce3114b0a1a560953c0ff4 (patch)
treed16c77b7253a0ead5ce34835e9aed07614a5b623 /docs/_ext
parent9b9c805cedb08621bd5dc58a01a6478eb7cc49a9 (diff)
Fixed #34756 -- Fixed docs HTML build on Sphinx 7.1+.
Diffstat (limited to 'docs/_ext')
-rw-r--r--docs/_ext/djangodocs.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/docs/_ext/djangodocs.py b/docs/_ext/djangodocs.py
index 866b8f891d..7d55cb0333 100644
--- a/docs/_ext/djangodocs.py
+++ b/docs/_ext/djangodocs.py
@@ -9,6 +9,7 @@ from docutils import nodes
from docutils.parsers.rst import Directive
from docutils.statemachine import ViewList
from sphinx import addnodes
+from sphinx import version_info as sphinx_version
from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.directives.code import CodeBlock
from sphinx.domains.std import Cmdoption
@@ -127,12 +128,23 @@ class DjangoHTMLTranslator(HTMLTranslator):
def visit_desc_parameterlist(self, node):
self.body.append("(") # by default sphinx puts <big> around the "("
- self.first_param = 1
self.optional_param_level = 0
self.param_separator = node.child_text_separator
- self.required_params_left = sum(
+ # Counts 'parameter groups' being either a required parameter, or a set
+ # of contiguous optional ones.
+ required_params = [
isinstance(c, addnodes.desc_parameter) for c in node.children
- )
+ ]
+ # How many required parameters are left.
+ self.required_params_left = sum(required_params)
+ if sphinx_version < (7, 1):
+ self.first_param = 1
+ else:
+ self.is_first_param = True
+ self.params_left_at_level = 0
+ self.param_group_index = 0
+ self.list_is_required_param = required_params
+ self.multi_line_parameter_list = False
def depart_desc_parameterlist(self, node):
self.body.append(")")