diff options
author | Georg Brandl <georg@python.org> | 2010-11-06 07:19:35 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-11-06 07:19:35 +0000 |
commit | 88d32af64fa94a3e7d95dcd38f8f33247f9be737 (patch) | |
tree | cf18adecdfda4e195cb695668adeb7d00f7c83bd /Doc/tools | |
parent | ad262b66302a93e0f874a0d73dd1d67e67eb14b5 (diff) | |
download | cpython-88d32af64fa94a3e7d95dcd38f8f33247f9be737.tar.gz |
#10334: add a role to refer to Python source files in SVN.
Diffstat (limited to 'Doc/tools')
-rw-r--r-- | Doc/tools/sphinxext/pyspecific.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Doc/tools/sphinxext/pyspecific.py b/Doc/tools/sphinxext/pyspecific.py index 0a5df83db3..2d9b35961d 100644 --- a/Doc/tools/sphinxext/pyspecific.py +++ b/Doc/tools/sphinxext/pyspecific.py @@ -10,8 +10,10 @@ """ ISSUE_URI = 'http://bugs.python.org/issue%s' +SOURCE_URI = 'http://svn.python.org/view/python/branches/py3k/%s?view=markup' from docutils import nodes, utils +from sphinx.util.nodes import split_explicit_title # monkey-patch reST parser to disable alphabetic and roman enumerated lists from docutils.parsers.rst.states import Body @@ -44,6 +46,16 @@ def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): return [refnode], [] +# Support for linking to Python source files easily + +def source_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): + has_t, title, target = split_explicit_title(text) + title = utils.unescape(title) + target = utils.unescape(target) + refnode = nodes.reference(title, title, refuri=SOURCE_URI % target) + return [refnode], [] + + # Support for marking up implementation details from sphinx.util.compat import Directive @@ -214,6 +226,7 @@ def parse_pdb_command(env, sig, signode): def setup(app): app.add_role('issue', issue_role) + app.add_role('source', source_role) app.add_directive('impl-detail', ImplementationDetail) app.add_builder(PydocTopicsBuilder) app.add_builder(suspicious.CheckSuspiciousMarkupBuilder) |