2012-02-20 100 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开发者来说仍然有帮助。 :)