过滤Text :: Xslate中的内容

时间:2017-04-01 08:36:34

标签: perl text-xslate

Mason我可以定义一个过滤器:

<%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>

E.g。 $yield->()方法返回封闭过滤器内的所有内容。

希望使用Text::Xslate实现相同的功能,但不知道如何。

我发现的最接近的是我可以写的macro blocks

: 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调用存在$yield->()内容,它会返回所附过滤器调用的内容? (如果不存在,我怎么能模仿它?)

0 个答案:

没有答案