diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index d08c65668e6..65f95f1b896 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -244,6 +244,8 @@ def add_target_and_index(self, firstname: str, sig: str, signode: desc_signature else: descr = _('command line option') for option in sig.split(', '): + # remove trailing part followed by equal symbol + option = option.split('=')[0] entry = '; '.join([descr, option]) self.indexnode['entries'].append(('pair', entry, signode['ids'][0], '', None)) diff --git a/tests/test_domain_std.py b/tests/test_domain_std.py index c464ea00841..849f3bb87e6 100644 --- a/tests/test_domain_std.py +++ b/tests/test_domain_std.py @@ -328,7 +328,7 @@ def test_cmdoption_for_None(app): text = (".. program:: ls\n" ".. program:: None\n" "\n" - ".. option:: -l\n") + ".. option:: -l=foo|bar\n") domain = app.env.get_domain('std') doctree = restructuredtext.parse(app, text) assert_node(doctree, (addnodes.index,