Sphinx - generate automatic references to Trac tickets and changesets
-
21-09-2019 - |
Solution
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.
OTHER TIPS
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
.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow