List Info

Thread: custom filters and chaining




custom filters and chaining
user name
2006-05-24 17:02:37
Dustin Frazier wrote:
 > Second question: I can't quite figure out the syntax
for chaining 
> filters.  I would like to replace:
>  
> [% FILTER indent("\t") %]
> [% FILTER wrap(95) %]
> [% FILTER html_entity %]
> A long block of raw text to be converted to HTML,
wrapped, and indented...
> [% END %]
> [% END %]
> [% END %]
>  
> With:
>  
> [% FILTER html_entity | wrap(95) |
indent("\t") %]
> ...
>  
> The rather short explanation of filter chaining in the
documentation 
> seems to imply (to me, at least) that this is possible.
 However, I get 
> a syntax error that complains about the "|"
after the first filter 
> (html_entity).
>  
> Either solution, a custom filter that encapsulates a
few others, or the 
> ability to chain, would sure save me a lot of typing...

I don't use ttree so I don't know if the following is
possible or not, but I'd imagine so.

If you don't use a custom filter, then some other solutions
might be to do:
[% result = BLOCK %]
A long block of raw text to be converted to HTML, wrapped,
and indented...
[% END %]
[% result | html_entity | wrap(95) |
indent("\t") %]

OR:

[% BLOCK myblock %]
A long block of raw text to be converted to HTML, wrapped,
and indented...
[% END %]
[% PROCESS myblock | html_entity | wrap(95) |
indent("\t") %]

OR:

You might even be able to use a wrapper. (You can keep
reusing it too.)
[% BLOCK myfilters %]
[% content | html_entity | wrap(95) |
indent("\t") %]
[% END %]
[% WRAPPER myfilters %]
A long block of raw text to be converted to HTML, wrapped,
and indented...
[% END %]


Disclaimer: I have not tested any of these, but they sound
like they should work. At the very least they might give you
some ideas.

-- Josh

_______________________________________________
templates mailing list
templatestemplate-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )