diff --git a/CHANGES b/CHANGES index 57234ee3a..f8d199e6f 100644 --- a/CHANGES +++ b/CHANGES @@ -28,6 +28,8 @@ Bugs fixed * #5391: A cross reference in heading is rendered as literal * #5946: C++, fix ``cpp:alias`` problems in LaTeX (and singlehtml) * #6147: classes attribute of ``citation_reference`` node is lost +* AssertionError is raised when custom ``citation_reference`` node having + classes attribute refers missing citation (refs: #6147) Testing -------- diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py index 9ff5aeccd..6f513377b 100644 --- a/sphinx/transforms/__init__.py +++ b/sphinx/transforms/__init__.py @@ -220,7 +220,7 @@ class CitationReferences(SphinxTransform): ids=citation_ref["ids"]) refnode.source = citation_ref.source or citation_ref.parent.source refnode.line = citation_ref.line or citation_ref.parent.line - refnode += nodes.Text('[' + cittext + ']') + refnode += nodes.inline(cittext, '[%s]' % cittext) for class_name in citation_ref.attributes.get('classes', []): refnode['classes'].append(class_name) citation_ref.parent.replace(citation_ref, refnode) diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 99d7bf8d4..1dbf05a4a 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -391,8 +391,8 @@ def test_html4_output(app, status, warning): (".//a[@class='footnote-reference brackets'][@href='#id9'][@id='id1']", r"1"), (".//a[@class='footnote-reference brackets'][@href='#id10'][@id='id2']", r"2"), (".//a[@class='footnote-reference brackets'][@href='#foo'][@id='id3']", r"3"), - (".//a[@class='reference internal'][@href='#bar'][@id='id4']", r"\[bar\]"), - (".//a[@class='reference internal'][@href='#baz-qux'][@id='id5']", r"\[baz_qux\]"), + (".//a[@class='reference internal'][@href='#bar'][@id='id4']/span", r"\[bar\]"), + (".//a[@class='reference internal'][@href='#baz-qux'][@id='id5']/span", r"\[baz_qux\]"), (".//a[@class='footnote-reference brackets'][@href='#id11'][@id='id6']", r"4"), (".//a[@class='footnote-reference brackets'][@href='#id12'][@id='id7']", r"5"), (".//a[@class='fn-backref'][@href='#id1']", r"1"),