diff options
| author | Georg Brandl <georg@python.org> | 2009-09-04 00:17:41 +0200 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2009-09-04 00:17:41 +0200 |
| commit | 2524b3f01e98bb2b787fdfc44810d9b6441311c6 (patch) | |
| tree | ad5f103bf19d47a95911967612f6c30add7e31b4 /sphinx/util | |
| parent | df68eadcfd963e1e9e040f2341aa9c54858bd693 (diff) | |
| parent | c816d7defda99496824b8eabf66bc909e4b50f49 (diff) | |
| download | sphinx-2524b3f01e98bb2b787fdfc44810d9b6441311c6.tar.gz | |
merge with trunk
Diffstat (limited to 'sphinx/util')
| -rw-r--r-- | sphinx/util/__init__.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 50c5bd3f..87b08095 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -446,6 +446,23 @@ def split_explicit_title(text): return True, match.group(1), match.group(2) return False, text, text + +from docutils import nodes + +def make_refnode(builder, fromdocname, todocname, targetid, child, title=None): + """Shortcut to create a reference node.""" + node = nodes.reference('', '') + if fromdocname == todocname: + node['refid'] = targetid + else: + node['refuri'] = (builder.get_relative_uri(fromdocname, todocname) + + '#' + targetid) + if title: + node['reftitle'] = title + node.append(child) + return node + + # monkey-patch Node.traverse to get more speed # traverse() is called so many times during a build that it saves # on average 20-25% overall build time! @@ -475,8 +492,7 @@ def _new_traverse(self, condition=None, return self._old_traverse(condition, include_self, descend, siblings, ascend) -import docutils.nodes -docutils.nodes.Node._old_traverse = docutils.nodes.Node.traverse -docutils.nodes.Node._all_traverse = _all_traverse -docutils.nodes.Node._fast_traverse = _fast_traverse -docutils.nodes.Node.traverse = _new_traverse +nodes.Node._old_traverse = nodes.Node.traverse +nodes.Node._all_traverse = _all_traverse +nodes.Node._fast_traverse = _fast_traverse +nodes.Node.traverse = _new_traverse |
