Is Sphinx, is there way to automatically link text like #112
or r1023
to the corresponding tickets/changesets in Trac?
For eg:
#112 -> http://mytracsite/tickets/112
r1023 -> http://mytracsite/changeset/1023
See TracLinks for more examples.
If you put this in your config.py
trac_url = 'http://mytratsite/'
from docutils import nodes, utils
from docutils.parsers.rst import roles
import urllib
def trac_role(role, rawtext, text, lineno, inliner, options={}, content=[]):
ref = trac_url + '/intertrac/' + urllib.quote(text, safe='')
node = nodes.reference(rawtext, utils.unescape(text), refuri=ref, **options)
return [node],[]
roles.register_canonical_role('trac', trac_role)
Then you can use :trac:`#123`
and :trac:`r1023`
in your documents.
This is probably the easiest way to make quick links to a trac site. It automatically works for all kinds of TracLinks because it uses the intertrac mechanism for the links.
Sphinx 1.0 now supports external links using the extlinks
extension. Using a configurable role name (e.g. 'issue') you can write your links like:
:issue:`123`
and it will be converted to http://mytracsite/123
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With