[ZPT] METAL enhancements

Amos Latteier amos@zope.com
Thu, 27 Sep 2001 17:22:39 -0700


I've been trying to understand Evan and Dieter's suggestions for 
enhacing METAL. My brain hurts ;-) I have a macro use case that I'd like 
to see addressed, and I'm not sure if their suggestions address it.

I'd like to be to create collections of related templates with macros. 
For example, I'd like to have hierarchies of templates that inherit look 
and feel using macros:

common
   single column
   two column
     two column with graphic

I'd like to be able to extend any of the templates at a later date. For 
example, I'd like to be able to extend 'two column with graphic' to 'two 
column with graphic and pull quote'.

I have trouble achieving this kind of collection of templates right now 
because I cannot easily inherit the look and feel of a template except 
from the top-level one. The problem is that if you use a macro, it 
doesn't also define a macro. For example, if 'two column' inherits from 
'common' by using a macro and filling a slot, then 'two column with 
graphic' cannot do likewise and use a macro in 'two column' and fill slots.

I'm not sure what the solution to this problem is, but I know from 
having built large web sites that it's common to want many categories of 
closely related web pages.

Perhaps I'm overlooking a simple way to achieve my goal. For example I 
know that I can define a new macro everytime I fill a slot. But I don't 
think that this solves the problem. For example, suppose 'common' has a 
macro 'page' with slots 'header', 'body' and 'footer'. 'two column' uses 
the 'page' macro and fills the 'body' slot. The 'two column with 
graphic' template cannot fill the 'footer' slot even if I define a new 
macro inside the filled 'body' slot in 'two column'.

Thanks for any suggestions on how to achieve my goal with macros as they 
exist or suggestions for how to change macros to make it easy to achieve 
my goal.

Thanks!

-Amos

-- 
Amos Latteier         amos@zope.com
Zope Corporation      http://www.zope.com/