diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index 88a4d28cb8a..96ac8ab8011 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -186,23 +186,22 @@ def handle_signature(self, sig: str, signode: desc_signature) -> str: signode += addnodes.desc_name(optname, optname) if self.env.config.option_emphasise_placeholders: add_end_bracket = False - if not args: - continue - if args[0] == '[' and args[-1] == ']': - add_end_bracket = True - signode += addnodes.desc_sig_punctuation('[', '[') - args = args[1:-1] - if args[0] == ' ': - signode += addnodes.desc_sig_space() - args = args.strip() - if args[0] == '=': - signode += addnodes.desc_sig_punctuation('=', '=') - args = args[1:] - for part in samp_role.parse(args): - if isinstance(part, nodes.Text): - signode += nodes.Text(part.astext()) - else: - signode += part + if args: + if args[0] == '[' and args[-1] == ']': + add_end_bracket = True + signode += addnodes.desc_sig_punctuation('[', '[') + args = args[1:-1] + elif args[0] == ' ': + signode += addnodes.desc_sig_space() + args = args.strip() + elif args[0] == '=': + signode += addnodes.desc_sig_punctuation('=', '=') + args = args[1:] + for part in samp_role.parse(args): + if isinstance(part, nodes.Text): + signode += nodes.Text(part.astext()) + else: + signode += part if add_end_bracket: signode += addnodes.desc_sig_punctuation(']', ']') else: diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 52d9ce7ee93..f9913a3cc36 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -1748,6 +1748,8 @@ def test_option_emphasise_placeholders(app, status, warning): '-' 'COUNT' in content) assert '{{value}}' in content + assert ('--plugin.option' + '') in content @pytest.mark.sphinx('html', testroot='root') @@ -1757,6 +1759,9 @@ def test_option_emphasise_placeholders_default(app, status, warning): assert '={TYPE}' in content assert '={WHERE}-{COUNT}' in content assert '{client_name}' in content + assert ('--plugin.option' + '' + '') in content @pytest.mark.sphinx('html', testroot='theming')