Dmitry Vasiliev wrote:
Some time ago there has been a discussion on Zope3-Users list about
specifying an encoding of the PageTemplateFile like this:
So there are some questions:
- Is anybody working on this?
- What should be the default encoding if no encoding is given? UTF-8?
- Can we include this functionality in Zope 3.1 release? I guess we at
least can set the default encoding of the PageTemplateFile to "UTF-8"
without any problems.
I wouldn't mind such a change, but I think it's a little too late for
3.1. The first beta of 3.1 is already out, that means a feature freeze.
In the long term, I would rather have this specified the way it should
be with XML data: using an <?xml version="1.0" encoding="utf-8" ?>
The reason this doesn't work right now (or, I should say, work the way
you'd expect it) is because the PageTemplate machinery makes the (now
unnecessary) distinction between HTML and XML. It uses two different
parsers for those; that way it can support SGML-based HTML4. HTML mode
is the default, XML mode gets triggered by an <?xml ?> processing
instruction like the one above.
Apart from enforcing XML syntax, XML mode also requires you to
explicitly provide definitions for the TAL, METAL and i18n namespaces (I
think this is a good thing because a) it's the standard and b) people
from other technologies know standard and are tired of Zope constantly
cooking its own soup). Also, macros from XML PageTemplates are
incompatible with macros from HTML PageTemplates.
So, to conclude, I would propose to rip out HTML mode of PageTemplates
completely in the long term. Everyone nowadays uses XHTML, the drawbacks
are (apart from the required namespace declarations) none and the
benefits apart from the discussed encoding issue are a) less code to
maintain and b) compliance with standards.
Zope3-dev mailing list