For the record, this is how to include a "DOCTYPE declaration"n:http://www.seoconsultants.com/w3c/doctype.asp in Zope when you use "PageTemplates with METAL"n:http://dev.zope.org/Wikis/DevSite/Projects/ZPT/METAL%20Specification%201.0.

In your standard template object (e.g. StandardLook.zpt):

<metal:block define-macro="standard">
<?xml version="1.0"?>
 <metal:block define-slot="doctype">
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 </metal:block>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
...
</html>
</metal:block>

This site is not XHTML valid (yet), but W3C has the validator to use.

Ilkka - 16 February 2005 [«« Reply to this]
Thanks for a great bit of advice! I find that some parsers (notably W3C's validator) get a little confused by the empty 1st line that this results in. I fixed it by doing

<metal:block define-macro="foobar"
><?xml version="1.0" encoding="utf-8"?>
...etc

instead -- no newline between the end of metal:block and the beginning of the xml processing directive.


Your email will never ever be published