summaryrefslogtreecommitdiff
path: root/sphinx/util
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-08-09 22:46:16 +0200
committerGeorg Brandl <georg@python.org>2009-08-09 22:46:16 +0200
commit56d512f16db5eca0c3f991bcc1a0e6737da46492 (patch)
tree23c504cd0a19e563d6b74e2527734914faa58fcb /sphinx/util
parentcc6fb3d54926794ec20124b7f9e58956057f61d2 (diff)
parent56ccba668d2c0770ef2161d285af8059e3aa7e67 (diff)
downloadsphinx-56d512f16db5eca0c3f991bcc1a0e6737da46492.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 9d677233..082ca888 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -453,6 +453,23 @@ def split_explicit_title(text):
else:
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!
@@ -482,8 +499,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