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]