|Version 2 (modified by shesek, 6 years ago) (diff)|
WikiSyntax for multiple repository revision
When multiple repositories are configured, the 'r123' syntax doesn't enable you to specify the repository and the [changeset:123:repo] or [123/repo] syntax must be used instead. As I do find the 'r123' syntax more readable, I wrote this small plugin that lets you use 'r123repo' (simply add the repository name right after the changeset number).
This is displayed as 'repo/r123' with a link to the changeset. Parsing 'repo/r123' syntax isn't possible (AFAIK) as the built-in parser parses the 'r123' part, so the syntax is 'r123repo' but it displayed as 'repo/r123'.
I'm usually at #trac as shsek or shesek.
If you have any issues, create a new ticket.
Simply drop the source code as a .py file directly in your plugins directory
from trac.core import * from trac.wiki import IWikiSyntaxProvider from genshi.builder import tag class RepoRevisionSyntax(Component): implements(IWikiSyntaxProvider) # -- IWikiSyntaxProvider def get_wiki_syntax(self): yield ( r'[r#](?P<rev_id>\d+)(?:\/|@)?(?P<repo>[a-zA-Z0-9_\/]+)', self._format_regex_link) def _format_regex_link(self, formatter, ns, match): return tag.a('%s/r%s' % (match.group('repo'), match.group('rev_id')), href=formatter.href.changeset('%s/%s'%(match.group('rev_id'), match.group('repo'))))
'Fixed by r78trac' (as a ticket comment) would get displayed as 'Fixed by trac/r78' with a link.