2012-02-20 66 views
2

我見過的鬍鬚的所有文檔和示例都展示瞭如何使用哈希來填充模板。我有興趣走向另一個方向。 EG,如果我有這樣的:小鬍子:從模板中檢索標籤的列表/散列?

Hello {{name}} 

能小鬍子產生這樣(僞代碼):

tags = 'name' 

我使用鬍鬚的PHP的味道,但我不是太講究語言。我想要做的是構建一個系統,人們可以使用Mustache標籤創建模板,另一位開發人員可以快速查看模板需要的數據。這是小鬍子可以做的事情,還是我將不得不做一些有趣的正則表達式魔法?

回答

1

你可以使用Hogan.js上的NodeJS例如運行,並使用scan功能:

var template = "{{foo}}{{#bar}}{{baz}}{{/bar}}{{#array}}{{.}}{{/array}}"' 

var parsedTree = Hogan.scan(template, '{{ }}'​)​​​​; 

什麼這是返回對象的數組。每個對象條目都有兩個要查找的鍵:n表示標記名稱,標記表示標記類型。 我不認爲標籤類型是明確記錄的,但作爲參考_v表示純文本,#是節開始,/是節結束。

0

我知道我遲到了這個問題,但當我在Ruby中尋找關於如何做同樣事情的建議時,我偶然發現了它。因爲我找到了適合我的解決方案,所以我認爲我會分享:

創建自Mustache的子類化的自定義渲染器,並跟蹤每個部分或上下文的請求。無論如何,你會想要/需要普通的渲染行爲,因爲你需要捕獲從其他部分引用的上下文/部分。

在Ruby中,這非常容易實現 - 希望它對PHP開發者來說仍然有幫助。 :)