[ 
https://issues.apache.org/jira/browse/VELOCITY-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nathan Bubna resolved VELOCITY-666.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.7

Thanks, Jarkko!

> 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
>             Fix For: 1.7
>
>         Attachments: velocity-blockmacro.patch, 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to