summaryrefslogtreecommitdiff
path: root/sphinx/util
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-09-04 00:17:41 +0200
committerGeorg Brandl <georg@python.org>2009-09-04 00:17:41 +0200
commit2524b3f01e98bb2b787fdfc44810d9b6441311c6 (patch)
treead5f103bf19d47a95911967612f6c30add7e31b4 /sphinx/util
parentdf68eadcfd963e1e9e040f2341aa9c54858bd693 (diff)
parentc816d7defda99496824b8eabf66bc909e4b50f49 (diff)
downloadsphinx-2524b3f01e98bb2b787fdfc44810d9b6441311c6.tar.gz
merge with trunk
Diffstat (limited to 'sphinx/util')
-rw-r--r--sphinx/util/__init__.py26
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