Skip to content

Commit ea46202

Browse files
authored
Fix parsing of options with enabled option_emphasise_placeholders (#10565)
1 parent ec596de commit ea46202

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

sphinx/domains/std.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -186,23 +186,22 @@ def handle_signature(self, sig: str, signode: desc_signature) -> str:
186186
signode += addnodes.desc_name(optname, optname)
187187
if self.env.config.option_emphasise_placeholders:
188188
add_end_bracket = False
189-
if not args:
190-
continue
191-
if args[0] == '[' and args[-1] == ']':
192-
add_end_bracket = True
193-
signode += addnodes.desc_sig_punctuation('[', '[')
194-
args = args[1:-1]
195-
if args[0] == ' ':
196-
signode += addnodes.desc_sig_space()
197-
args = args.strip()
198-
if args[0] == '=':
199-
signode += addnodes.desc_sig_punctuation('=', '=')
200-
args = args[1:]
201-
for part in samp_role.parse(args):
202-
if isinstance(part, nodes.Text):
203-
signode += nodes.Text(part.astext())
204-
else:
205-
signode += part
189+
if args:
190+
if args[0] == '[' and args[-1] == ']':
191+
add_end_bracket = True
192+
signode += addnodes.desc_sig_punctuation('[', '[')
193+
args = args[1:-1]
194+
elif args[0] == ' ':
195+
signode += addnodes.desc_sig_space()
196+
args = args.strip()
197+
elif args[0] == '=':
198+
signode += addnodes.desc_sig_punctuation('=', '=')
199+
args = args[1:]
200+
for part in samp_role.parse(args):
201+
if isinstance(part, nodes.Text):
202+
signode += nodes.Text(part.astext())
203+
else:
204+
signode += part
206205
if add_end_bracket:
207206
signode += addnodes.desc_sig_punctuation(']', ']')
208207
else:

tests/test_build_html.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1748,6 +1748,8 @@ def test_option_emphasise_placeholders(app, status, warning):
17481748
'<span class="pre">-</span>'
17491749
'<em><span class="pre">COUNT</span></em>' in content)
17501750
assert '<span class="pre">{{value}}</span>' in content
1751+
assert ('<span class="pre">--plugin.option</span></span>'
1752+
'<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Permalink to this definition">¶</a></dt>') in content
17511753

17521754

17531755
@pytest.mark.sphinx('html', testroot='root')
@@ -1757,6 +1759,9 @@ def test_option_emphasise_placeholders_default(app, status, warning):
17571759
assert '<span class="pre">={TYPE}</span>' in content
17581760
assert '<span class="pre">={WHERE}-{COUNT}</span></span>' in content
17591761
assert '<span class="pre">{client_name}</span>' in content
1762+
assert ('<span class="pre">--plugin.option</span></span>'
1763+
'<span class="sig-prename descclassname"></span>'
1764+
'<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Permalink to this definition">¶</a></dt>') in content
17601765

17611766

17621767
@pytest.mark.sphinx('html', testroot='theming')

0 commit comments

Comments
 (0)