[ https://issues.apache.org/jira/browse/VELOCITY-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jarkko Viinamäki updated VELOCITY-666: -------------------------------------- Attachment: velocity-call-directive.patch Here's the patch. This issue got ID 666. Nomen ist omen? ;) > RFC: new directive: #call > ------------------------- > > Key: VELOCITY-666 > URL: https://issues.apache.org/jira/browse/VELOCITY-666 > Project: Velocity > Issue Type: Improvement > Affects Versions: 1.6.2, 1.7 > Reporter: Jarkko Viinamäki > Attachments: velocity-call-directive.patch > > > Inspired by VELOCITY-583 (BlockMacro support) I implemented the same > functionality in a slightly different way. > This patch introduces a new directive #call("mymacro" $arg1 $arg2 ... ) any > valid Velocity content here #end > This directive causes a call to defined macro with given arguments AND passes > the enclosed AST as an argument which can be referenced with $bodyContent > (default, name is configurable). > An example: > #set($foobar = "yeah!") > > #macro(strong $txt) > <strong>$bodyContent</strong> $txt > #end > #call("strong" $foobar) > <u>This text is underlined and bold</u> > #end > > Will print: > <strong><u>This text is underlined and bold<u></strong> yeah! > Like I commented in VELOCITY-583 the same thing can be done by first using > #define to build up some custom AST and then pass that AST as an argument to > some macro. While it works, it's not as convenient as this syntax. This patch > however increases the amount of code lines in Velocity and the implementation > is a bit "hackish" so even I'm not totally convinced whether we should commit > this. > But anyway, here it is, I'd love to hear your comments. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org For additional commands, e-mail: dev-h...@velocity.apache.org