2011-01-05 34 views

回答

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環境的plugins目錄中的文件文件source_link.py中。然後,你可以用下面的宏引用您的文件:

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

,或者如果你想有一個特定的標籤:

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

如何您指定一個代碼塊應該呈現爲Python代碼? – 2011-01-05 23:15:31

+0

哇!感謝您的快速響應......我會盡力並會報告。 – derroman 2011-01-05 23:24:10

+0

是啊!有用!謝謝! – derroman 2011-01-05 23:31:54

相關問題