[Zope] Augmenting Structured Text (Re: <% ... %>) ?

Martijn Faassen M.Faassen@vet.uu.nl
Tue, 15 Jun 1999 16:55:30 +0200


Boris Borcic wrote:
> 
> Jim Fulton wrote:
> 
> > It would be helpful to make hideuosness a little more specific.
> 
> It doesn't look like Python.

Yes, I'll add a 'me too!' here. Looking like Python is very important.
DTML is too Perlish in that it has verbose syntax with a lot of weird
characters, and too many ways to do the same thing at times.

Even the expressions that *do* look like Python become rather hideous
due to the _ namespace and other things.

<!--#var "_.str(_.int(foo) + 1)"-->

looks unreadable compared to:

<!--#var "str(int(foo) + 1)"-->

I think what we need is a way to somehow visually and syntactically
clearly distinguish what is HTML and what is DTML or even better
something closer to what Python is. Perhaps turn things around and mark
the *HTML* instead of marking the (Pythonic) logic.

var(name=standard_html_header)
HTML('''<p>And now, a list!</p>''')
HTML('''<ul>''')
for el in some_list:
   HTML('''<li>''')
   var(name=el)
   HTML('''</li>''')
HTML('''</ul>''')
HTML('''<a href="%s">%s</a>''' % (var(some_link), var(link_name)))
var(name=standard_html_footer)

Looks more pleasant to me than:

<!--#var standard_html_header-->
<p>And now, a list!</p>
<ul>
<!--#in some_list-->
   <li>
   <!--#var sequence-item-->
   </li>
<!--#/in-->
</ul>
<!--#var standard_html_footer-->

Of course the former is executable python. Of course one can get close
to that in external method, but it seems to be more obscure to do
DTML-ish things than what I just described. Hm. Digicool folks, could we
have some plans on the Python scripting abilities you're working on?
Would it look like my suggestion? Would you take any suggestions? :)

Regards,

Martijn