summaryrefslogtreecommitdiff
path: root/src/zope/pagetemplate/architecture.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/pagetemplate/architecture.txt')
-rw-r--r--src/zope/pagetemplate/architecture.txt32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/zope/pagetemplate/architecture.txt b/src/zope/pagetemplate/architecture.txt
new file mode 100644
index 0000000..637b028
--- /dev/null
+++ b/src/zope/pagetemplate/architecture.txt
@@ -0,0 +1,32 @@
+=====================================
+ZPT (Zope Page-Template) Architecture
+=====================================
+
+There are a number of major components that make up the page-template
+architecture:
+
+- The TAL *compiler* and *interpreter*. This is responsible for
+ compiling source files and for executing compiled templates. See
+ the `zope.tal` package for more information.
+
+- An *expression engine* is responsible for compiling expressions and
+ for creating expression execution contexts. It is common for
+ applications to override expression engines to provide custom
+ expression support or to change the way expressions are implemented.
+ The `zope.app.pagetemplate` package uses this to implement trusted
+ and untrusted evaluation; a different engine is used for each, with
+ different implementations of the same type of expressions.
+
+ Expression contexts support execution of expressions and provide
+ APIs for setting up variable scopes and setting variables. The
+ expression contexts are passed to the TAL interpreter at execution
+ time.
+
+ The most commonly used expression implementation is that found in
+ `zope.tales`.
+
+- Page templates tie everything together. They assemble an expression
+ engine with the TAL interpreter and orchestrate management of source
+ and compiled template data. See `zope.pagetemplate.interfaces`.
+
+