5

Sphinx,有没有办法自动将文本链接#112Tracr1023中的相应票证/变更集?

例如:

#112  -> http://mytracsite/tickets/112
r1023 -> http://mytracsite/changeset/1023

有关更多示例,请参阅TracLinks

4

2 回答 2

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 机制。

于 2010-01-21T17:23:54.823 回答
5

Sphinx 1.0 现在支持使用扩展的外部链接。extlinks使用可配置的角色名称(例如“问题”),您可以编写如下链接:

:issue:`123`

它将被转换为http://mytracsite/123.

于 2011-12-11T10:48:12.833 回答