.. _zope4contentmigration: Migrating content ================= These issues may appear when rendering content (templates, scripts or other built-in Zope code objects) created with Zope 2 in Zope 4. .. _zope4pagetemplatemigration: Page Template parsing issues ---------------------------- Zope 4 is using `Chameleon `_ as its new parsing engine for Page Templates. Chameleon is strict. **Very strict**. Have I mentioned that Chameleon's parsing is **extremely strict**? It will throw any sloppy HTML and TAL/TALES right in your face and refuse to compile it, even if it may be syntactically correct and the Zope 2 parsing engine has worked with it just fine. - namespace names are case-sensitive. For Page templates, that means only lowercased namespaces like ``tal`` or ``metal`` are allowed: .. code-block:: html - Opening and closing tags must match in type: .. code-block:: html ... - Opening and closing tags must match in case: .. code-block:: html Text Text Text ... ... - HTML comments must not contain any double hyphens inside the comment or more than two hyphens in the closing sequence: .. code-block:: html - HTML syntax errors that were ignored before .. code-block:: sh ... - Python expression syntax errors that were parsing OK under Zope 2 but caused errors at execution time are now caught during parsing: .. code-block:: html ...