This document (and the documents it links to) will describe the architecture for the Zope PageTemplates. It is a work in progress.
By an architecture, we mean a subset of the design that documents the design decisions made to address the Major UseCases and RiskFactors. This will typically include a high-level design overview. The design will typically be expressed as prose, often supplemented with UML diagrams.
ZPT consists of 4 major components:
- The Template Attribute Language (TAL) implementation
- The Template Attribute Language Expression Syntax (TALES) implementation
- The Macro Expansion Template Attribute Language (METAL) implementation
- PageTemplates
Before we can harden the design and implementation of these components, we need to agree on the ways in which these components interact. We'll begin by defining relevant ZPTInterfaces that the various components will need to provide. We'll decide what these interfaces need to look like through ZopeTemplateLanguageCollaborations.
ZPT has complex interactions to deal with. The HTML editing tool (whether it be emacs, vi, GoLive or whatever) will have to communicate with Zope (usually through WebDAV or FTP) in order to save and load PageTemplates. Since the templates may have TAL syntax errors in them, we need to develop ErrorHandlingStrategies.