我见过的胡须的所有文档和示例都展示了如何使用哈希来填充模板。我有兴趣走向另一个方向。 EG,如果我有这样的:小胡子:从模板中检索标签的列表/散列?
Hello {{name}}
能小胡子产生这样(伪代码):
tags = 'name'
我使用胡须的PHP的味道,但我不是太讲究语言。我想要做的是构建一个系统,人们可以使用Mustache标签创建模板,另一位开发人员可以快速查看模板需要的数据。这是小胡子可以做的事情,还是我将不得不做一些有趣的正则表达式魔法?
我见过的胡须的所有文档和示例都展示了如何使用哈希来填充模板。我有兴趣走向另一个方向。 EG,如果我有这样的:小胡子:从模板中检索标签的列表/散列?
Hello {{name}}
能小胡子产生这样(伪代码):
tags = 'name'
我使用胡须的PHP的味道,但我不是太讲究语言。我想要做的是构建一个系统,人们可以使用Mustache标签创建模板,另一位开发人员可以快速查看模板需要的数据。这是小胡子可以做的事情,还是我将不得不做一些有趣的正则表达式魔法?
你可以使用Hogan.js上的NodeJS例如运行,并使用scan
功能:
var template = "{{foo}}{{#bar}}{{baz}}{{/bar}}{{#array}}{{.}}{{/array}}"'
var parsedTree = Hogan.scan(template, '{{ }}');
什么这是返回对象的数组。每个对象条目都有两个要查找的键:n表示标记名称,标记表示标记类型。 我不认为标签类型是明确记录的,但作为参考_v
表示纯文本,#
是节开始,/
是节结束。
我知道我迟到了这个问题,但当我在Ruby中寻找关于如何做同样事情的建议时,我偶然发现了它。因为我找到了适合我的解决方案,所以我认为我会分享:
创建自Mustache的子类化的自定义渲染器,并跟踪每个部分或上下文的请求。无论如何,你会想要/需要普通的渲染行为,因为你需要捕获从其他部分引用的上下文/部分。
在Ruby中,这非常容易实现 - 希望它对PHP开发者来说仍然有帮助。 :)