[Zope3-dev] Re: [SpringCleaning07]

Jim Washington jwashin at vt.edu
Wed Dec 20 08:22:51 EST 2006


Martijn Faassen wrote:
> Jim Washington wrote:
>> Martijn Faassen wrote:
>>> http://genshi.edgewall.org
>>>
>>> Inspired by Kid (in turn among others inspired by ZPT), the main 
>>> template language of TurboGears, written by the people who also 
>>> created Trac, and it seems to be getting traction. TurboGears among 
>>> others is going to adopt it, but also things like the creator of 
>>> SQLAlchemy (and Myghthy) spending time optimizing it, etc. It's 
>>> close enough to ZPT to be palatable to me, and has some nice 
>>> features for reuse.
>>>
>>> If we're going to get out of the server business we could also 
>>> consider getting out of the template language business. :)
>
>> I'm a big fan of using lxml.etree for templating.  Very pythonic, 
>> very easy to refactor, very explicit.
>
> Cool!
>
>> It's premature to announce (we plan to have eggs on pypi soon) , but 
>> take a look at zif.xtemplate at zif.sourceforge.net .  It's pretty 
>> alpha at the moment, but it uses a DTD and some xpath to get around 
>> the "tags that shouldn't be minimized" issue, and it includes a first 
>> stab at an HTML sanitizer, to use when snippets of untrusted HTML are 
>> to be included on a page.  In addition, the entire page DOM is 
>> available for postprocessing right up until serialization.  Of 
>> course, those with better lxml knowledge are encouraged to point out 
>> issues with the implementation.
>
> I just took a brief look at this. Do I understand that this templating 
> solution basically generates the entire template from Python? There is 
> no actual textual template present at all, right? I understand you 
> could add them back and use XPath, the elementtree API and even XSLT 
> to generate templates, but in the default there is no template?
>
> I have used this approach when I needed to generate very particular 
> XML, but for web templating I generally expect there to be a textual 
> template. This way it becomes more easy to take a template created by 
> a designer and integrate it into ones system. What are your thoughts 
> about this?
>
The current implementation allows you to start with an HTML file.  
That's the "template" class parameter, which is the full path to an 
initial (well-formed) document, which is parsed on __init__ into an 
ElementTree.  If it has "id" attributes in tags, all the better for 
hooking-in dynamic content.  At the moment, there is a bit of an issue 
with namespaces / namespaced elements and attributes, but a file with 
standard, non-namespaced HTML will work just fine.

-Jim Washington


More information about the Zope3-dev mailing list