Trac - 在Wiki页面中获取特定存储库文件的上次提交日期

时间:2011-01-05 21:36:57

标签: date wiki commit hyperlink trac

我正在使用Trac来管理我的项目。有些人必须定期查看我的维基页面才能观看特殊文件中的更改。因此,我的wikipage上有一个链接。有点链接:

[source:MyRepository/trunk/subfolder/file.pdf@head The file to read]

我想要的是以下输出:


要阅读的文件(最后提交时间:2015年1月11日上午8:52)


如何在trac wiki中管理它?

1 个答案:

答案 0 :(得分:2)

您可能需要为此编写一个小插件,如下所示:

from genshi.builder import tag

from trac.util.datefmt import format_datetime
from trac.util.translation import _
from trac.versioncontrol.api import RepositoryManager
from trac.wiki.api import parse_args
from trac.wiki.macros import WikiMacroBase


class SourceMacro(WikiMacroBase):
    def expand_macro(self, formatter, name, content):
        args, kwargs = parse_args(content)
        path = args[0]
        label = kwargs.get('label', path)
        rm = RepositoryManager(self.env)
        reponame, repos, path = rm.get_repository_by_path(path)
        node = repos.get_node(path)
        href = formatter.href.browser(reponame or None, path)
        return tag(tag.a(label, href=href),
                   _(' (last committed: %(date)s)',
                     date=format_datetime(node.last_modified)))

(对于Trac 0.12或更高版本,错误处理作为可怕的练习留给读者。)

将其放在Trac环境的source_link.py目录中名为plugins的文件文件中。然后,您可以使用以下宏引用您的文件:

[[Source(MyRepository/trunk/subfolder/file.pdf)]]

或者如果您想要特定标签:

[[Source(MyRepository/trunk/subfolder/file.pdf, label=The file to read)]]