diff options
| author | georg.brandl <devnull@localhost> | 2008-03-21 14:00:34 +0000 |
|---|---|---|
| committer | georg.brandl <devnull@localhost> | 2008-03-21 14:00:34 +0000 |
| commit | 3d1f2a4d6e3a4d305728eee834497277e434bcf1 (patch) | |
| tree | 837cc3ffb9ffade3a6b69c2b55952b955feee56d /sphinx | |
| parent | 5a7a94b906f9bbc4f758f3731b2168eacbc011cc (diff) | |
| download | sphinx-3d1f2a4d6e3a4d305728eee834497277e434bcf1.tar.gz | |
* Allow the ~ prefix on module xrefs.
* The parse function for custom descitems must return the full name for x-refing.
Diffstat (limited to 'sphinx')
| -rw-r--r-- | sphinx/directives.py | 10 | ||||
| -rw-r--r-- | sphinx/roles.py | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/sphinx/directives.py b/sphinx/directives.py index 824b98c6..322509ff 100644 --- a/sphinx/directives.py +++ b/sphinx/directives.py @@ -321,18 +321,20 @@ def desc_directive(desctype, arguments, options, content, lineno, # another registered generic x-ref directive rolename, indextext, parse_node = additional_xref_types[desctype] if parse_node: - parse_node(sig, signode) + fullname = parse_node(sig, signode) else: signode.clear() signode += addnodes.desc_name(sig, sig) + fullname = sig if not noindex: - targetname = '%s-%s' % (rolename, sig) + targetname = '%s-%s' % (rolename, fullname) signode['ids'].append(targetname) state.document.note_explicit_target(signode) if indextext: - env.note_index_entry('pair', '%s; %s' % (indextext, sig), + env.note_index_entry('pair', + '%s; %s' % (indextext, fullname), targetname, targetname) - env.note_reftarget(rolename, sig, targetname) + env.note_reftarget(rolename, fullname, targetname) # don't use object indexing below continue except ValueError, err: diff --git a/sphinx/roles.py b/sphinx/roles.py index 9f4a45cd..7665340d 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -120,8 +120,9 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): # we want a cross-reference, create the reference node pnode = addnodes.pending_xref(rawtext, reftype=typ, refcaption=False, modname=env.currmodule, classname=env.currclass) + innertext = text # special actions for Python object cross-references - if typ in ('data', 'exc', 'func', 'class', 'const', 'attr', 'meth'): + if typ in ('data', 'exc', 'func', 'class', 'const', 'attr', 'meth', 'mod'): # if the first character is a dot, search more specific namespaces first # else search builtins first if text[0:1] == '.': @@ -134,7 +135,6 @@ def xfileref_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): dot = text.rfind('.') if dot != -1: innertext = text[dot+1:] - innertext = text # look if explicit title and target are given brace = text.find('<') if brace != -1: |
