0

在开源trac 问题跟踪软件中,当您在 wiki 中编写文本或工单评论时,您可以使用链接到工单,也可以使用#1234链接到代码变更集r1234。这是文档:http ://trac.edgewall.org/wiki/TracLinks

我想定义我自己的链接格式。我想做的3个例子:

  1. 我想a1234链接到acunote票证(它是 trac 的补充,但在我们的 trac 安装之外)。
  2. 我想ge2a1b3caadd0986e3e3d316c01965a2495329b87链接到github提交(即https://github.com/peritor/webistrano/commit/e2a1b3caadd0986e3e3d316c01965a2495329b87)。
  3. 我想CComponent链接到Yii文档(即http://www.yiiframework.com/doc/api/1.1/CComponent

有谁知道我如何使用 trac v0.12 做到这一点。我应该使用宏吗?插件?一个Genshi模板?如果你知道怎么做,这让我觉得很简单?


4

2 回答 2

4

如果你想要这种精确的语法,你别无选择,只能创建一个插件并拥有一个Component实现IWikiSyntaxProvider 接口的插件。

如果您可以使用稍微不同的语法,例如[a:1234]acunote 票证、[g:e2a1b3caadd0986e3e3d316c01965a2495329b87]github 变更集和[y:CComponent]Yii 文档,那么您可以将以下条目添加到 Trac 安装的InterMapTxt页面:

a    http://my.acunote.site/ticket/$1                  # Acunote ticket $1
g    https://github.com/peritor/webistrano/commit/$1   # Changeset $1 on Github
y    http://www.yiiframework.com/doc/api/1.1/$1        # Yii documentation for $1
于 2011-05-14T21:16:20.440 回答
1

Remy 是正确的,因为您的语法可能会使这变得更加困难。链接的标准 Trac 语法是resource_type:link_specifier. 如果您能够改用该语法,那么使用 Inter-Wiki 链接来完成您想要的事情是相当简单的。

如果这不是一个选项,您可以使用定制插件执行您所描述的操作。这并不像听起来那么难,您可以使用现有插件的源代码作为示例。我之前已经做过几次了,你真正需要的只是一个代表你希望使用的语法的正则表达式和一个代表结果链接格式的正则表达式,以及大约一页 Python 代码。

更新: 有关如何通过 Trac 插件执行此操作的示例,官方 Trac 文档中有示例代码和说明。

于 2011-05-15T16:15:36.743 回答