Text::Xslateのmemo

synopsisのloopsにLoop iterators are partially supported.とあったのでmemo。

    [% FOREACH item IN arrayref %]
        [%- IF loop.is_first -%]
        <first>
        [%- END -%]
        * [% loop.index %]
        * [% loop.count     # loop.index + 1 %]
        * [% loop.body      # alias to arrayref %]
        * [% loop.size      # loop.body.size %]
        * [% loop.max_index # loop.size - 1 %]
        * [% loop.peek_next # loop.body[ loop.index - 1 ]
        * [% loop.peek_prev # loop.body[ loop.index + 1 ]
        [%- IF loop.is_last -%]
        <last>
        [%- END -%]
    [% END %]

あと、セットしたパラメータをエスケープさせたくないときは
Utilのmark_rawを使う。

use Text::Xslate::Util qw(mark_raw);
・
・
・
        tag => mark_raw($self->show_tag()),
・
・
・