I am trying to implement metal 1.1 in tal2xslt. I think I have it correct.

However this URL:

http://www.zope.org/Wikis/DevSite/Projects/ZPT/MacroExtension

Gives an example that is malformed. The T2 macro mentions </block> but there's no opening <block>.

And the final output also shows </block> in a few places, but no opening <block>

My feeling is that T2's define-slot=D should not appear in the output, since T3 provides a fill-slot=A, which I believe should entirely replace the contents of T2's define-slot=A



Here are my input files, in case anyone cares to remark:

t1.xml

<?xml version="1.0" ?>
<div xmlns:metal="http://xml.zope.org/namespaces/metal"; metal:define-macro="base">
        <div metal:define-slot="A">default A filler</div>
        <div metal:define-slot="B">default B filler</div>
        <div metal:define-slot="C">default C filler</div>
</div>

t2.xml


<?xml version="1.0" ?>
<div xmlns:metal="http://xml.zope.org/namespaces/metal"; metal:define-macro="extension"
        metal:extend-macro="t1.xml#base">
        <div metal:fill-slot="A">
                slot A decoration from T2
                <div metal:define-slot="A">
                        overridden A filler
                        <div metal:define-slot="D">default D filler</div>
                </div>
        </div>
</div>


t3.xml

<?xml version="1.0" ?>
<div xmlns:metal="http://xml.zope.org/namespaces/metal"; metal:use-macro="t2.xml#extension">
        <div metal:fill-slot="A">final slot A filler</div>
        <div metal:fill-slot="C">final slot C filler</div>
        <div metal:fill-slot="D">final slot D filler</div>
</div>

and the libxml output run:

<?xml version="1.0"?>
<div xmlns:metal="http://xml.zope.org/namespaces/metal"; metal:use-macro="extension">

  <div metal:fill-slot="A">
                slot A decoration from T2
                <div metal:fill-slot="A">final slot A filler</div>
        </div>
  <div metal:define-slot="B">default B filler</div>
  <div metal:fill-slot="C">final slot C filler</div>
</div>


This doesn't match the example output from the MacroExtension URL page, but then, the input files don't match exactly either.

(oh, is it bad form to copy fill-slot and define-slot to the output? I think it's handy for debugging, but I see extended-macro makes it look confusing)
_______________________________________________
ZPT mailing list
ZPT@zope.org
http://mail.zope.org/mailman/listinfo/zpt

Reply via email to