mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge branch '3.0.x' into 3.x
This commit is contained in:
commit
5c14375365
2
CHANGES
2
CHANGES
@ -61,9 +61,11 @@ Bugs fixed
|
||||
----------
|
||||
|
||||
* #7461: py domain: fails with IndexError for empty tuple in type annotation
|
||||
* #7418: std domain: :rst:role:`term` role could not match case-insensitively
|
||||
* #7461: autodoc: empty tuple in type annotation is not shown correctly
|
||||
* #7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking
|
||||
* C++, fix spacing issue in east-const declarations.
|
||||
* #7414: LaTeX: Xindy language options were incorrect
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
@ -54,13 +54,13 @@ XINDY_LANG_OPTIONS = {
|
||||
'hr': '-L croatian -C utf8 ',
|
||||
'cs': '-L czech -C utf8 ',
|
||||
'da': '-L danish -C utf8 ',
|
||||
'nl': '-L dutch -C ij-as-ij-utf8 ',
|
||||
'nl': '-L dutch-ij-as-ij -C utf8 ',
|
||||
'en': '-L english -C utf8 ',
|
||||
'eo': '-L esperanto -C utf8 ',
|
||||
'et': '-L estonian -C utf8 ',
|
||||
'fi': '-L finnish -C utf8 ',
|
||||
'fr': '-L french -C utf8 ',
|
||||
'de': '-L german -C din5007-utf8 ',
|
||||
'de': '-L german-din5007 -C utf8 ',
|
||||
'is': '-L icelandic -C utf8 ',
|
||||
'it': '-L italian -C utf8 ',
|
||||
'la': '-L latin -C utf8 ',
|
||||
@ -73,9 +73,9 @@ XINDY_LANG_OPTIONS = {
|
||||
'pl': '-L polish -C utf8 ',
|
||||
'pt': '-L portuguese -C utf8 ',
|
||||
'ro': '-L romanian -C utf8 ',
|
||||
'sk': '-L slovak -C small-utf8 ', # there is also slovak-large
|
||||
'sk': '-L slovak-small -C utf8 ', # there is also slovak-large
|
||||
'sl': '-L slovenian -C utf8 ',
|
||||
'es': '-L spanish -C modern-utf8 ', # there is also spanish-traditional
|
||||
'es': '-L spanish-modern -C utf8 ', # there is also spanish-traditional
|
||||
'sv': '-L swedish -C utf8 ',
|
||||
'tr': '-L turkish -C utf8 ',
|
||||
'hsb': '-L upper-sorbian -C utf8 ',
|
||||
@ -86,7 +86,7 @@ XINDY_LANG_OPTIONS = {
|
||||
'be': '-L belarusian -C utf8 ',
|
||||
'bg': '-L bulgarian -C utf8 ',
|
||||
'mk': '-L macedonian -C utf8 ',
|
||||
'mn': '-L mongolian -C cyrillic-utf8 ',
|
||||
'mn': '-L mongolian-cyrillic -C utf8 ',
|
||||
'ru': '-L russian -C utf8 ',
|
||||
'sr': '-L serbian -C utf8 ',
|
||||
'sh-cyrl': '-L serbian -C utf8 ',
|
||||
@ -96,7 +96,7 @@ XINDY_LANG_OPTIONS = {
|
||||
# can work only with xelatex/lualatex, not supported by texindy+pdflatex
|
||||
'el': '-L greek -C utf8 ',
|
||||
# FIXME, not compatible with [:2] slice but does Sphinx support Greek ?
|
||||
'el-polyton': '-L greek -C polytonic-utf8 ',
|
||||
'el-polyton': '-L greek-polytonic -C utf8 ',
|
||||
}
|
||||
|
||||
XINDY_CYRILLIC_SCRIPTS = [
|
||||
|
@ -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:
|
||||
|
@ -141,12 +141,23 @@ def test_glossary(app):
|
||||
[nodes.definition, nodes.paragraph, "description"])
|
||||
|
||||
# index
|
||||
objects = list(app.env.get_domain("std").get_objects())
|
||||
domain = app.env.get_domain("std")
|
||||
objects = list(domain.get_objects())
|
||||
assert ("term1", "term1", "term", "index", "term-term1", -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
|
||||
|
||||
# term reference (case sensitive)
|
||||
refnode = domain.resolve_xref(app.env, 'index', app.builder, 'term', 'term1',
|
||||
pending_xref(), nodes.paragraph())
|
||||
assert_node(refnode, nodes.reference, refid="term-term1")
|
||||
|
||||
# term reference (case insensitive)
|
||||
refnode = domain.resolve_xref(app.env, 'index', app.builder, 'term', 'term2',
|
||||
pending_xref(), nodes.paragraph())
|
||||
assert_node(refnode, nodes.reference, refid="term-TERM2")
|
||||
|
||||
|
||||
def test_glossary_warning(app, status, warning):
|
||||
# empty line between terms
|
||||
|
Loading…
Reference in New Issue
Block a user