2012-11-05 71 views
0

好吧,我已經看了所有,我認爲我正在做這個權利,但我沒有得到任何結果。有沒有人寫過可以引導我完成第一步的Trac宏?以下是我寫的內容:寫我的第一個Trac宏

from trac.wiki.macros import WikiMacroBase 
from genshi.builder import tag 

class MyMacro(WikiMacroBase): 
    """Proof of concept""" 

    revision = "$Rev$" 
    url = "$URL$" 

    def expand_macro(self, formatter, name, args): 
     return tag.b("Hello world.") 

我將它保存爲.py文件並將其放入我的Trac項目的/ plugins目錄中。我需要重新啓動Apache嗎?我是否正確期待[[MyMacro]]輸出Hello world。在頁面上?

+1

你肯定需要重新啓動apache。 –

回答

2

使用該格式創建宏時,Trac希望您的班級被命名爲「<name>Macro」。例如,如果你想要一個名爲JustASample的宏,你可以命名爲JustASampleMacro。由於您命名了類MyMacro,Trac認爲您希望您的宏命名爲My。嘗試在維基頁面上使用[[My]],並查看是否獲得了您期望的輸出。

將文件複製到插件目錄後,確實需要重新啓動Web服務器。在此之前,請刪除爲您的插件創建的任何.pyc文件。另外,請確保該文件可供運行Web服務器的帳戶讀取。

+0

Oooh。在我閱讀的任何內容中都不清楚。這真的有幫助,謝謝。 –

+1

@最終用戶 - 我同意,Trac的文檔確實缺少一些像這樣的關鍵細節。我大多不得不通過試驗和錯誤學習,並通過檢查[trac-hacks](http://trac-hacks.org)插件的來源。我建議從trac-hacks中找到一些簡單的插件並將它們用作參考。通過幾個簡單的插件並查看他們共同的東西,您可以開始瞭解什麼是必要的,以及如何在幕後進行工作。 – bta

+1

請注意,有關類和宏名稱的說明並不是Trac及其宏API的特徵 - 它是「WikiMacroBase」抽象幫助程序類的一個功能。這是一個非常可選的類,你可以通過直接實現'trac.wiki.api.IWikiMacroProvider'接口來命名文件,類(組件)和宏,而不是依賴一個有關命名的嚴格規則的幫助器。 – osimons