在梅森我可以定义一个过滤器:
<%filter Div($class)>
<div class="<% $class %>">
<% $yield->() %>
</div>
</%filter>
后来我可以使用它
% $.Div("row") {{
1 The "$yield->()" method returns everything from here (free text)
% $.Div("col") {{
2 even could have another nested filter, etc...
% }}
% }}
结果
<div class="row">
1 The "$yield->()" method returns everything from here (free text)
<div class="col">
2 even could have another nested filter, etc...
</div>
</div>
例如,该$yield->()
方法返回封闭过滤器内部的所有内容。
想要使用Text::Xslate实现相同的功能,但不知道如何。
我发现的最接近的东西是我可以写的宏块:
: macro div -> ($cls,$str) {
<div class="<: $cls :>">
<: $str :>
</div>
: }
并将其用作
: div("row",
: div("col",
: "my string"
: )
: )
但my string
必须引用和:
标记,因此不可能使用任何免费的 html 文本。例如以下死亡。
: div("row",
some free text here
: div("col",
nested
here
: )
: )
经过长篇介绍,问题很简单:
存在于Text::Xslate
作为 Mason$yield->()
调用的某事中,它返回封闭过滤器调用的内容?(或者如果不存在,我怎么能模仿它?)