Skip to content

Commit

Permalink
Fix sphinx-doc#7418: std domain: duplication warning for glossary ter…
Browse files Browse the repository at this point in the history
…ms is case insensitive
  • Loading branch information
tk0miya committed Apr 8, 2020
1 parent 2def1fc commit 267f709
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 6 deletions.
2 changes: 2 additions & 0 deletions CHANGES
Expand Up @@ -16,6 +16,8 @@ Features added
Bugs fixed
----------

* #7418: std domain: duplication warning for glossary terms is case insensitive

Testing
--------

Expand Down
4 changes: 2 additions & 2 deletions sphinx/domains/std.py
Expand Up @@ -305,7 +305,7 @@ def make_glossary_term(env: "BuildEnvironment", textnodes: Iterable[Node], index
term['ids'].append(node_id)

std = cast(StandardDomain, env.get_domain('std'))
std.note_object('term', termtext.lower(), node_id, location=term)
std.note_object('term', termtext, node_id, location=term)

# add an index entry too
indexnode = addnodes.index()
Expand Down Expand Up @@ -565,7 +565,7 @@ class StandardDomain(Domain):
# links to tokens in grammar productions
'token': TokenXRefRole(),
# links to terms in glossary
'term': XRefRole(lowercase=True, innernodeclass=nodes.inline,
'term': XRefRole(innernodeclass=nodes.inline,
warn_dangling=True),
# links to headings or arbitrary labels
'ref': XRefRole(lowercase=True, innernodeclass=nodes.inline,
Expand Down
8 changes: 4 additions & 4 deletions tests/test_domain_std.py
Expand Up @@ -99,7 +99,7 @@ def test_glossary(app):
text = (".. glossary::\n"
"\n"
" term1\n"
" term2\n"
" TERM2\n"
" description\n"
"\n"
" term3 : classifier\n"
Expand All @@ -114,7 +114,7 @@ def test_glossary(app):
assert_node(doctree, (
[glossary, definition_list, ([definition_list_item, ([term, ("term1",
index)],
[term, ("term2",
[term, ("TERM2",
index)],
definition)],
[definition_list_item, ([term, ("term3",
Expand All @@ -127,7 +127,7 @@ def test_glossary(app):
assert_node(doctree[0][0][0][0][1],
entries=[("single", "term1", "term-term1", "main", None)])
assert_node(doctree[0][0][0][1][1],
entries=[("single", "term2", "term-term2", "main", None)])
entries=[("single", "TERM2", "term-TERM2", "main", None)])
assert_node(doctree[0][0][0][2],
[definition, nodes.paragraph, "description"])
assert_node(doctree[0][0][1][0][1],
Expand All @@ -143,7 +143,7 @@ def test_glossary(app):
# index
objects = list(app.env.get_domain("std").get_objects())
assert ("term1", "term1", "term", "index", "term-term1", -1) in objects
assert ("term2", "term2", "term", "index", "term-term2", -1) in objects
assert ("TERM2", "TERM2", "term", "index", "term-TERM2", -1) in objects
assert ("term3", "term3", "term", "index", "term-term3", -1) in objects
assert ("term4", "term4", "term", "index", "term-term4", -1) in objects

Expand Down

0 comments on commit 267f709

Please sign in to comment.