http://www.perlmonks.org?node_id=474258


in reply to Template Toolkit, problem with recursive wrapper templates

I think I figured out how to solve the problem. I changed wrapper.tt2 this way (applying this advice):
[% IF template.naked; content; ELSE; content WRAPPER site_wrapper.tt2; END; %]
Then, in my template:
[% META naked = 1 %] [% WRAPPER site_wrapper.tt2 %] + whatever [% END %] [% FOREACH c IN categories %] [% FILTER redirect("${c.name}/index.html") %] [% PROCESS portfolio/category %] [% END %] [% END %]
site_wrapper.tt2, as you can guess, contains the code that was in wrapper.tt2. In portfolio/category:
[% WRAPPER site_wrapper.tt2 %] it works! [% END %]
Now I have another problem: changing META informations in the processed template. But that's another issue.