diff options
| author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-04-18 18:23:27 +0900 |
|---|---|---|
| committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2020-04-18 23:48:49 +0900 |
| commit | 4577f6856ce71ff4630b8dd31a5ac2e0b7aef3f6 (patch) | |
| tree | f1247cf76269e255219b335c016301aa177352ff /sphinx/domains | |
| parent | 50d2d289e150cb429de15770bdd48a723de8c45d (diff) | |
| download | sphinx-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.py | 24 |
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: |
