[Templates] Process vs Macro ?

Boysenberry Payne boysenberry@humaniteque.com
Fri, 22 Sep 2006 14:08:48 -0500


I use macros for recursive processing.
When I've tried to use Process for this it errors out.
Am I doing this wrong?

For example:

[%- MACRO make_element( current_element )
   BLOCK;
     FOREACH tag_name IN current_element.keys;
       tag = current_element.$tag_name;
       "<$tag_name";
       attr = tag.attr;
       IF attr;
         PROCESS attributes.htm;
       END;
       IF tag.uni;
         " />";
       ELSE;
         ">";
         IF tag.content;
           FOREACH content IN tag.content;
             IF content.length;
               FILTER html;
                 "$content";
               END;
             ELSE;
               make_tag( content );
             END;
           END;
         END;
         "</$tag_name>";
       END;
     END;
   END
-%]



Thanks,
Boysenberry

boysenberrys.com | habitatlife.com | selfgnosis.com

On Sep 22, 2006, at 10:37 AM, Perrin Harkins wrote:

> Evan Carroll wrote:
>> Could someone please juxtapose PROCESS w/ ARGS, vs, MACRO? I'm  
>> confused
>> as to which one to use.
>
> It's a matter of scope.  If want to split out some repeated code  
> that no other template will use, make it a MACRO in the current  
> template.  If you have something that other templates might  
> conceivably use too, make it a separate template and call it with  
> PROCESS.
>
> In practice, I have almost no use for MACRO.
>
> - Perrin
>
> _______________________________________________
> templates mailing list
> templates@template-toolkit.org
> http://lists.template-toolkit.org/mailman/listinfo/templates
>
>