Rename the `:nowrap and :nosignatures:` directive options (#13264)

Rename the ``:nowrap`` and ``:nosignatures:`` directive options to
``:no-wrap`` and ``:no-signatures:``, for readability.
This mirrors changes already made to `:no-index`, `:no-index-entry`,
`:no-contents-entry`, and `:no-search` in Sphinx 7.2 and 7.3.
This commit is contained in:
Adam Turner 2025-01-23 04:30:46 +00:00 committed by GitHub
parent ca2ab35d94
commit 42f300ee83
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 48 additions and 13 deletions

View File

@ -60,6 +60,11 @@ Features added
:confval:`python_trailing_comma_in_multi_line_signatures` and :confval:`python_trailing_comma_in_multi_line_signatures` and
:confval:`javascript_trailing_comma_in_multi_line_signatures` :confval:`javascript_trailing_comma_in_multi_line_signatures`
configuration options. configuration options.
* #13264: Rename the :rst:dir:`math` directive's ``nowrap``option
to :rst:dir:`no-wrap``,
and rename the :rst:dir:`autosummary` directive's ``nosignatures``option
to :rst:dir:`no-signatures``.
Patch by Adam Turner.
Bugs fixed Bugs fixed
---------- ----------

View File

@ -102,12 +102,20 @@ The :mod:`sphinx.ext.autosummary` extension does this in two parts:
.. versionadded:: 3.1 .. versionadded:: 3.1
.. rst:directive:option:: nosignatures .. rst:directive:option:: no-signatures
Do not show function signatures in the summary. Do not show function signatures in the summary.
.. versionadded:: 0.6 .. versionadded:: 0.6
.. versionchanged:: 8.2
The directive option ``:nosignatures:`` was renamed to ``:no-signatures:``.
The previous name has been retained as an alias,
but will be deprecated and removed
in a future version of Sphinx.
.. rst:directive:option:: template: filename .. rst:directive:option:: template: filename
Specify a custom template for rendering the summary. Specify a custom template for rendering the summary.

View File

@ -1553,7 +1553,7 @@ or use Python raw strings (``r"raw"``).
number to be issued. See :rst:role:`eq` for an example. The numbering number to be issued. See :rst:role:`eq` for an example. The numbering
style depends on the output format. style depends on the output format.
.. rst:directive:option:: nowrap .. rst:directive:option:: no-wrap
Prevent wrapping of the given math in a math environment. Prevent wrapping of the given math in a math environment.
When you give this option, you must make sure When you give this option, you must make sure
@ -1561,13 +1561,21 @@ or use Python raw strings (``r"raw"``).
For example:: For example::
.. math:: .. math::
:nowrap: :no-wrap:
\begin{eqnarray} \begin{eqnarray}
y & = & ax^2 + bx + c \\ y & = & ax^2 + bx + c \\
f(x) & = & x^2 + 2xy + y^2 f(x) & = & x^2 + 2xy + y^2
\end{eqnarray} \end{eqnarray}
.. versionchanged:: 8.2
The directive option ``:nowrap:`` was renamed to ``:no-wrap:``.
The previous name has been retained as an alias,
but will be deprecated and removed
in a future version of Sphinx.
.. _AmSMath LaTeX package: https://www.ams.org/publications/authors/tex/amslatex .. _AmSMath LaTeX package: https://www.ams.org/publications/authors/tex/amslatex
.. seealso:: .. seealso::

View File

@ -143,10 +143,17 @@ class MathDirective(SphinxDirective):
'label': directives.unchanged, 'label': directives.unchanged,
'name': directives.unchanged, 'name': directives.unchanged,
'class': directives.class_option, 'class': directives.class_option,
'no-wrap': directives.flag,
'nowrap': directives.flag, 'nowrap': directives.flag,
} }
def run(self) -> list[Node]: def run(self) -> list[Node]:
# Copy the old option name to the new one
# xref RemovedInSphinx90Warning
# deprecate nowrap in Sphinx 9.0
if 'no-wrap' not in self.options and 'nowrap' in self.options:
self.options['no-wrap'] = self.options['nowrap']
latex = '\n'.join(self.content) latex = '\n'.join(self.content)
if self.arguments and self.arguments[0]: if self.arguments and self.arguments[0]:
latex = self.arguments[0] + '\n\n' + latex latex = self.arguments[0] + '\n\n' + latex
@ -158,8 +165,8 @@ class MathDirective(SphinxDirective):
docname=self.env.docname, docname=self.env.docname,
number=None, number=None,
label=label, label=label,
nowrap='nowrap' in self.options,
) )
node['no-wrap'] = node['nowrap'] = 'no-wrap' in self.options
self.add_name(node) self.add_name(node)
self.set_source_info(node) self.set_source_info(node)

View File

@ -11,7 +11,7 @@ autosummary directive
The autosummary directive has the form:: The autosummary directive has the form::
.. autosummary:: .. autosummary::
:nosignatures: :no-signatures:
:toctree: generated/ :toctree: generated/
module.function_1 module.function_1
@ -237,12 +237,19 @@ class Autosummary(SphinxDirective):
'caption': directives.unchanged_required, 'caption': directives.unchanged_required,
'class': directives.class_option, 'class': directives.class_option,
'toctree': directives.unchanged, 'toctree': directives.unchanged,
'nosignatures': directives.flag, 'no-signatures': directives.flag,
'recursive': directives.flag, 'recursive': directives.flag,
'template': directives.unchanged, 'template': directives.unchanged,
'nosignatures': directives.flag,
} }
def run(self) -> list[Node]: def run(self) -> list[Node]:
# Copy the old option name to the new one
# xref RemovedInSphinx90Warning
# deprecate nosignatures in Sphinx 9.0
if 'no-signatures' not in self.options and 'nosignatures' in self.options:
self.options['no-signatures'] = self.options['nosignatures']
self.bridge = DocumenterBridge( self.bridge = DocumenterBridge(
self.env, self.state.document.reporter, Options(), self.lineno, self.state self.env, self.state.document.reporter, Options(), self.lineno, self.state
) )
@ -462,7 +469,7 @@ class Autosummary(SphinxDirective):
for name, sig, summary, real_name in items: for name, sig, summary, real_name in items:
qualifier = 'obj' qualifier = 'obj'
if 'nosignatures' not in self.options: if 'no-signatures' not in self.options:
col1 = f':py:{qualifier}:`{name} <{real_name}>`\\ {rst.escape(sig)}' col1 = f':py:{qualifier}:`{name} <{real_name}>`\\ {rst.escape(sig)}'
else: else:
col1 = f':py:{qualifier}:`{name} <{real_name}>`' col1 = f':py:{qualifier}:`{name} <{real_name}>`'

View File

@ -366,7 +366,7 @@ def html_visit_math(self: HTML5Translator, node: nodes.math) -> None:
def html_visit_displaymath(self: HTML5Translator, node: nodes.math_block) -> None: def html_visit_displaymath(self: HTML5Translator, node: nodes.math_block) -> None:
if node['nowrap']: if node['no-wrap'] or node['nowrap']:
latex = node.astext() latex = node.astext()
else: else:
latex = wrap_displaymath(node.astext(), None, False) latex = wrap_displaymath(node.astext(), None, False)

View File

@ -47,7 +47,7 @@ def html_visit_math(self: HTML5Translator, node: nodes.math) -> None:
def html_visit_displaymath(self: HTML5Translator, node: nodes.math_block) -> None: def html_visit_displaymath(self: HTML5Translator, node: nodes.math_block) -> None:
self.body.append(self.starttag(node, 'div', CLASS='math notranslate nohighlight')) self.body.append(self.starttag(node, 'div', CLASS='math notranslate nohighlight'))
if node['nowrap']: if node['no-wrap']:
self.body.append(self.encode(node.astext())) self.body.append(self.encode(node.astext()))
self.body.append('</div>') self.body.append('</div>')
raise nodes.SkipNode raise nodes.SkipNode

View File

@ -2465,7 +2465,7 @@ class LaTeXTranslator(SphinxTranslator):
else: else:
label = None label = None
if node.get('nowrap'): if node.get('no-wrap'):
if label: if label:
self.body.append(r'\label{%s}' % label) self.body.append(r'\label{%s}' % label)
self.body.append(node.astext()) self.body.append(node.astext())

View File

@ -1,6 +1,6 @@
.. autosummary:: .. autosummary::
:nosignatures: :no-signatures:
:toctree: :toctree:
dummy_module dummy_module

View File

@ -24,7 +24,7 @@ This is inline math: :math:`a^2 + b^2 = c^2`.
n \in \mathbb N n \in \mathbb N
.. math:: .. math::
:nowrap: :no-wrap:
a + 1 < b a + 1 < b

View File

@ -24,7 +24,7 @@ This is inline math: :math:`a^2 + b^2 = c^2`.
n \in \mathbb N n \in \mathbb N
.. math:: .. math::
:nowrap: :no-wrap:
a + 1 < b a + 1 < b