[Date Index][Thread Index]
[Date Prev][Date Next][Thread Prev][Thread Next]
Re: [wml] Nested tags
- From: Fritz Zaucker <nospam@thanx>
- Date: Tue, 11 Apr 2000 07:23:58 +0200 (MET DST)
Your second approach works if you don't preserve/restore the variable
inside the macro, but use a "global" variable:
<define-container UL whitespace=delete>
<set-var IN_UL=1>
<table cellpadding=3 cellspacing=0 border=0>
%body
</table>
<set-var IN_UL=0>
</define-container UL>
<define-container LI whitespace=delete>
<ifeq <get-var IN_UL> 1
<group
<tr>
<td valign=top>
<IMG ALIGN=top ALT="" src="$(ROOT)/.pics/3d-ball.gif">
</td>
<td>%body</td>
</tr>
>
<group
<LI*>%body</LI*>>
>
</define-container LI>
This way you can use <LI> within <UL></UL> with this special meaning
and within <OL></OL> with its "normal" meaning.
Of course, for <UL> this should deal with nesting which it doesn't
right now. But it could be easily extended by incrementing IN_UL for
each <UL> and decrementing for each </UL>.
Although <OL></OL> inside <UL></UL> still would break (you'd need a
IN_OL variable to deal with this I guess).
Cheers,
Fritz
On Mon, 10 Apr 2000, Xose Manoel Ramos wrote:
> I wonder if there is a simple way to define nested tags (i.e. tags
> that have a special meaning inside another tags).
>
> Something like:
>
> <macro>
> <title>Just the master</title>
> <content>
> This is the content
> </content>
> </macro>
>
> I mean, this tags should have only this meaning when used inside the
> <macro> tag, and otherwise have their normal meaning.
>
> I worked out a system using 'perl' & 'redirectors'. Later I have
> looked at 'grid.wml' and I discovered Ralph has used the same
> approach as me.
>
> I just wonder if somebody has thought of a better, and simpler method
> to do this. I thought of something like:
>
> <define-container macro>
> <preserve __inside>
> <set-var __inside="macro">
> %body
> <restore __inside>
> </define-container>
>
> <define-container title>
> <when <eq <get-var __inside> macro>>
> (...something...)
> </when>
> </define>
>
> But this does not work as I should have expected.
>
>
--
Dr. Fritz Zaucker, Head IT Support Group
Department of Electrical Engineering, Federal Institute of Technology
ETZ J97, Gloriastrasse 35, 8092 Zurich, Switzerland
Tel.: +41-1-632-5241 Fax: +41-1-632-1194 http://ee-staff.ethz.ch/~zaucker/
E-mail: zaucker@ee.ethz.ch (see home page for PGP key)
______________________________________________________________________
Website META Language (WML) www.engelschall.com/sw/wml/
Official Support Mailing List sw-wml@engelschall.com
Automated List Manager majordomo@engelschall.com