Sphinx是否可以将#112
或r1023
等文字自动链接到Trac中相应的故障单/变更集?
例如:
#112 -> http://mytracsite/tickets/112
r1023 -> http://mytracsite/changeset/1023
有关更多示例,请参阅TracLinks。
答案 0 :(得分:9)
如果你把它放在你的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)
然后,您可以在文档中使用:trac:`#123`
和:trac:`r1023`
。
这可能是快速链接到trac网站的最简单方法。它自动适用于所有类型的TracLink,因为它使用了链接的intertrac机制。
答案 1 :(得分:5)
Sphinx 1.0现在使用extlinks
扩展程序支持external links。使用可配置的角色名称(例如“问题”),您可以编写如下链接:
:issue:`123`
,它将转换为http://mytracsite/123
。