diff options
| author | Georg Brandl <georg@python.org> | 2009-08-09 22:46:16 +0200 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2009-08-09 22:46:16 +0200 |
| commit | 56d512f16db5eca0c3f991bcc1a0e6737da46492 (patch) | |
| tree | 23c504cd0a19e563d6b74e2527734914faa58fcb /sphinx/util | |
| parent | cc6fb3d54926794ec20124b7f9e58956057f61d2 (diff) | |
| parent | 56ccba668d2c0770ef2161d285af8059e3aa7e67 (diff) | |
| download | sphinx-56d512f16db5eca0c3f991bcc1a0e6737da46492.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 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 |
