summaryrefslogtreecommitdiff
path: root/sphinx/domains
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-04-18 18:23:27 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-04-18 23:48:49 +0900
commit4577f6856ce71ff4630b8dd31a5ac2e0b7aef3f6 (patch)
treef1247cf76269e255219b335c016301aa177352ff /sphinx/domains
parent50d2d289e150cb429de15770bdd48a723de8c45d (diff)
downloadsphinx-git-4577f6856ce71ff4630b8dd31a5ac2e0b7aef3f6.tar.gz
Fix #7418: std domain: term role role could not match case-insensitively
Diffstat (limited to 'sphinx/domains')
-rw-r--r--sphinx/domains/std.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py
index 52546fb4c..74e901779 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std.py
@@ -789,6 +789,8 @@ class StandardDomain(Domain):
RemovedInSphinx40Warning)
domain = env.get_domain('citation')
return domain.resolve_xref(env, fromdocname, builder, typ, target, node, contnode)
+ elif typ == 'term':
+ resolver = self._resolve_term_xref
else:
resolver = self._resolve_obj_xref
@@ -923,6 +925,28 @@ class StandardDomain(Domain):
return make_refnode(builder, fromdocname, docname,
labelid, contnode)
+ def _resolve_term_xref(self, env: "BuildEnvironment", fromdocname: str,
+ builder: "Builder", typ: str, target: str,
+ node: pending_xref, contnode: Element) -> Element:
+ result = self._resolve_obj_xref(env, fromdocname, builder, typ,
+ target, node, contnode)
+ if result:
+ return result
+ else:
+ for objtype, term in self.objects:
+ if objtype == 'term' and term.lower() == target.lower():
+ docname, labelid = self.objects[objtype, term]
+ logger.warning(__('term %s not found in case sensitive match.'
+ 'made a reference to %s instead.'),
+ target, term, location=node, type='ref', subtype='term')
+ break
+ else:
+ docname, labelid = '', ''
+ if not docname:
+ return None
+ return make_refnode(builder, fromdocname, docname,
+ labelid, contnode)
+
def _resolve_obj_xref(self, env: "BuildEnvironment", fromdocname: str,
builder: "Builder", typ: str, target: str,
node: pending_xref, contnode: Element) -> Element: