diff --git a/sphinx/builders/html/transforms.py b/sphinx/builders/html/transforms.py index 940b0c0d8..1ba6ba857 100644 --- a/sphinx/builders/html/transforms.py +++ b/sphinx/builders/html/transforms.py @@ -42,8 +42,7 @@ class KeyboardTransform(SphinxPostTransform): matcher = NodeMatcher(nodes.literal, classes=["kbd"]) # this list must be pre-created as during iteration new nodes # are added which match the condition in the NodeMatcher. - nodes_to_expand: List[nodes.literal] = list(self.document.findall(matcher)) - for node in nodes_to_expand: # type: nodes.literal + for node in list(self.document.findall(matcher)): # type: nodes.literal parts = self.pattern.split(node[-1].astext()) if len(parts) == 1 or self.is_multiwords_key(parts): continue diff --git a/tests/test_transforms_post_transforms.py b/tests/test_transforms_post_transforms.py index ebd505776..215e6d14f 100644 --- a/tests/test_transforms_post_transforms.py +++ b/tests/test_transforms_post_transforms.py @@ -52,7 +52,7 @@ def test_missing_reference_conditional_pending_xref(app, status, warning): @pytest.mark.sphinx('html', testroot='transforms-post_transforms-keyboard', freshenv=True) -def test_keyboard_issue_10495(app): +def test_keyboard_hyphen_spaces(app): """Regression test for issue 10495, we want no crash.""" app.build() assert "spanish" in (app.outdir / 'index.html').read_text(encoding='utf8')