I agree, this would be useful. But since the parser would have to know
macros definitions to detect blocks, I'm pretty sure it's very hard to
implement.

The way to go is the custom directive - that's much easier.


  Claude

Le dimanche 06 janvier 2008 à 14:13 -0800, Nathan Bubna a écrit :
> Yeah, i'm at least interested.  If it works well and we have some good
> tests for it (and, of course, all existing tests pass), i would even
> support putting it into Velocity 1.6 (rather than wait for 1.7).
> We've already got a lot of macro improvements in, this would Though,
> i'd want the support of at least one other committer before doing
> that.  I do have one question and one suggestion at this point:  Would
> it work to overload the #macro directive instead of using #blockmacro?
>  (Not that big a deal to me, but people will ask.)  And i would
> suggest using $bodyContent as the default, instead of $yield since
> that is more familiar to people.
> 
> This is a great idea though!  People have talked about it, but no one
> has ever taken it upon themselves to work on it.
> 
> On Jan 6, 2008 12:19 PM, Raghu Rajah <[EMAIL PROTECTED]> wrote:
> > If I offer to implement block support, is there any interest in absorbing 
> > this contribution into the codebase.
> >
> > Here's what I intend to do,
> >
> > 1. Add a new directive called "blockmacro", along the same lines as macro, 
> > subclassing behavior from the current macro processing both in the 
> > directive and the JJT.
> > 2. In order to render the content of the block, one could use a special 
> > context variable called "yield", that could be customized as whatever in 
> > the properties.
> >
> > The net definition would look something like,
> >
> > #blockmacro strong
> > <strong>${yield}</strong>
> > #end
> >
> > and usage would look like
> >
> > #strong
> >   This is a strong text for #if (${user.male}) Mr. #else Ms. #end  
> > ${user.name}.
> > #end
> >
> > Regards,
> >  Raghu.
> >
> > > From: [EMAIL PROTECTED]
> > > To: [EMAIL PROTECTED]
> > > Subject: RE: Blocks in Velocimacros
> > > Date: Thu, 3 Jan 2008 17:49:07 -0500
> >
> > >
> > > I think I will go the custom directive route.
> > >
> > > Thanks for all the pointers. I especially like the Hacking Velocity 
> > > presentation - rather groovy. It addresses nearly all the issues I had.
> > >
> > > Raghu.
> > >
> > >
> > > > Date: Thu, 3 Jan 2008 14:37:35 -0800
> > > > From: [EMAIL PROTECTED]
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Re: Blocks in Velocimacros
> > > >
> > > > Of course, you would then have to be sure to escape all " characters
> > > > in your body content:
> > > >
> > > > #set( $Q = '"' )
> > > >
> > > > #myForm( "
> > > > <!-- some ${Q}arbitrary${Q} -->
> > > > " )
> > > >
> > > > so that you don't prematurely end your $body parameter.  this is
> > > > obviously not ideal, but may be easier than writing a custom
> > > > directive, depending on the specifics of your case(s).
> > > >
> > > > On Jan 3, 2008 2:35 PM, Nathan Bubna <[EMAIL PROTECTED]> wrote:
> > > > > Also note that as of Velocity 1.5, you can include line breaks in
> > > > > strings, making it reasonable (though not as pretty to do something
> > > > > like:
> > > > >
> > > > > #macro( myForm $body )
> > > > > <form...>
> > > > > $body
> > > > > </form>
> > > > > #end
> > > > >
> > > > > #myForm("
> > > > > <!-- some arbitrary html here -->
> > > > > ")
> > > > >
> > > > >
> > > > >
> > > > > On Jan 2, 2008 7:13 PM, Raghuram Rajah <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > Can I use a block within a velocimacro? Basically, I am trying to 
> > > > > > create a macro that will emit a XHTML tag with some javascript out. 
> > > > > > I would hate to create a begin macro and an end macro to accomplish 
> > > > > > this. That would be rather error prone.
> > > > > >
> > > > > > I would ideally like to do something like,
> > > > > >
> > > > > > #myForm(...)
> > > > > >   <!-- some arbitrary html here -->
> > > > > > #end
> > > > > >
> > > > > > generating something like
> > > > > >
> > > > > > <form ....
> > > > > >   <!-- some arbitrary html here -->
> > > > > > </form>
> > > > > >
> > > > > > Any suggestions would be greatly appreciated.
> > > > > >
> > > > > > Thanks,
> > > > > > Raghu.
> > > > > >
> > > > > > _________________________________________________________________
> > > > > > Share life as it happens with the new Windows Live.
> > > > > > http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_122007
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > >
> > > _________________________________________________________________
> > > i'm is proud to present Cause Effect, a series about real people making a 
> > > difference.
> > > http://im.live.com/Messenger/IM/MTV/?source=text_Cause_Effect
> >
> > _________________________________________________________________
> > Watch "Cause Effect," a show about real people making a real difference.
> > http://im.live.com/Messenger/IM/MTV/?source=text_watchcause
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to