summaryrefslogtreecommitdiff
path: root/docs/index.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/index.rst')
-rw-r--r--docs/index.rst30
1 files changed, 30 insertions, 0 deletions
diff --git a/docs/index.rst b/docs/index.rst
index d806fdd..2b80efc 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,11 +1,41 @@
.. include:: ../README.rst
+Using ``zope.tal`` requires three steps: choosing an expression engine
+(usually :mod:`zope.tales`), creating a generator and parser, and then
+interpreting the compiled program::
+
+ from io import StringIO
+ from zope.tal.talgenerator import TALGenerator
+ from zope.tal.htmltalparser import HTMLTALParser
+ from zope.tal.talinterpreter import TALInterpreter
+
+ compiler = None # Will use a compiler for a dummy language
+ source_file = '<string>'
+ source_text = '<html><body><p>Hi</p></body></html>'
+ gen = TALGenerator(compiler, source_file=source_file)
+ parser = TALParser(gen)
+ parser.parseString(source_text)
+ program, macros = parser.getCode()
+
+ output = StringIO()
+ context = None # Usually will create a zope.tales context
+ interpreter = TALInterpreter(self.program, macros, context, stream=output)
+ interpreter()
+ result = output.getvalue()
+
+These aspects are all brought together in :mod:`zope.pagetemplate`.
+
API Documentation:
.. toctree::
:maxdepth: 2
interfaces
+ taldefs
+ talgenerator
+ htmltalparser
+ talparser
+ talinterpreter
.. toctree::
:maxdepth: 1