Как изменить trac для создания собственного пользовательского формата ссылок (TracLinks) - PullRequest
0 голосов
/ 14 мая 2011

В ПО с открытым исходным кодом для отслеживания проблем , когда вы пишете текст в вики или комментарии к заявке, вы можете связать заявку с помощью #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. Должен ли я использовать Macro? Плагин?? Мне кажется, что это может быть довольно просто, если у вас есть ноу-хау?


Ответы [ 2 ]

4 голосов
/ 15 мая 2011

Если вам нужен этот точный синтаксис, у вас нет другого выбора, кроме как создать плагин и иметь Component, который реализует интерфейс IWikiSyntaxProvider .

Если вы можете житьс немного другим синтаксисом, например [a:1234] для билета acunote, [g:e2a1b3caadd0986e3e3d316c01965a2495329b87] для набора изменений github и [y:CComponent] для документации Yii, затем вы можете добавить следующие записи на страницу InterMapTxt вашей установки Trac:

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
1 голос
/ 15 мая 2011

Реми прав в том, что ваш синтаксис потенциально усложняет это.Стандартный синтаксис Trac для ссылок resource_type:link_specifier.Если вы можете использовать этот синтаксис вместо этого, то довольно просто использовать меж-вики-ссылки для достижения желаемого.

Если это не вариант, вы можете делать то, что вы описываете, с помощью пользовательского плагина.,Это не так сложно, как может показаться, вы можете использовать источник из существующего плагина в качестве примера.Я делал это несколько раз раньше, все, что вам действительно нужно, это регулярное выражение, представляющее синтаксис, который вы хотите использовать, и такое, которое представляет формат получающейся ссылки, а также около одной страницы кода Python.

Обновление: Пример того, как это сделать с помощью плагина Trac, приведен в виде примера кода и описания в официальной документации Trac 1009 *.

.
...