annotate roundup/cgi/TAL/README.txt @ 2467:76ead526113d

client instances may be used as translation engines. any backend translator may be passed as constructor argument or via setTranslator() method. by default, templating.translationService is used. use this engine to translate client messages.
author Alexander Smishlajev <a1s@users.sourceforge.net>
date Tue, 15 Jun 2004 09:19:49 +0000
parents b9988e118055
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1049
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 TAL - Template Attribute Language
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 ---------------------------------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 This is an implementation of TAL, the Zope Template Attribute
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 Language. For TAL, see the Zope Presentation Templates ZWiki:
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 http://dev.zope.org/Wikis/DevSite/Projects/ZPT/FrontPage
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 It is not a Zope product nor is it designed exclusively to run inside
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 of Zope, but if you have a Zope checkout that includes
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 Products/ParsedXML, its Expat parser will be used.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 Prerequisites
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 -------------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 You need:
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 - A recent checkout of Zope2; don't forget to run the wo_pcgi.py
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 script to compile everything. (See above -- this is now optional.)
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 - A recent checkout of the Zope2 product ParsedXML, accessible
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 throught <Zope2>/lib/python/Products/ParsedXML; don't forget to run
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 the setup.py script to compiles Expat. (Again, optional.)
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 - Python 1.5.2; the driver script refuses to work with other versions
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 unless you specify the -n option; this is done so that I don't
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 accidentally use Python 2.x features.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 - Create a .path file containing proper module search path; it should
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 point the <Zope2>/lib/python directory that you want to use.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 How To Play
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 -----------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 (Don't forget to edit .path, see above!)
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 The script driver.py takes an XML file with TAL markup as argument and
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 writes the expanded version to standard output. The filename argument
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 defaults to tests/input/test01.xml.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 Regression test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 ---------------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 There are unit test suites in the 'tests' subdirectory; these can be
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 run with tests/run.py. This should print the testcase names plus
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 progress info, followed by a final line saying "OK". It requires that
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 ../unittest.py exists.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 There are a number of test files in the 'tests' subdirectory, named
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 tests/input/test<number>.xml and tests/input/test<number>.html. The
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 Python script ./runtest.py calls driver.main() for each test file, and
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 should print "<file> OK" for each one. These tests are also run as
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 part of the unit test suites, so tests/run.py is all you need.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 What's Here
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 -----------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 DummyEngine.py simple-minded TALES execution engine
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 TALInterpreter.py class to interpret intermediate code
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
60 TALGenerator.py class to generate intermediate code
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 XMLParser.py base class to parse XML, avoiding DOM
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
62 TALParser.py class to parse XML with TAL into intermediate code
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 HTMLTALParser.py class to parse HTML with TAL into intermediate code
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
64 HTMLParser.py HTML-parsing base class
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
65 driver.py script to demonstrate TAL expansion
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 timer.py script to time various processing phases
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
67 setpath.py hack to set sys.path and import ZODB
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 __init__.py empty file that makes this directory a package
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 runtest.py Python script to run file-comparison tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 ndiff.py helper for runtest.py to produce diffs
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71 tests/ drectory with test files and output
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 tests/run.py Python script to run all tests
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 Author and License
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 ------------------
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
77 This code is written by Guido van Rossum (project lead), Fred Drake,
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 and Tim Peters. It is owned by Digital Creations and can be
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
79 redistributed under the Zope Public License.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 TO DO
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 -----
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
84 (See also http://www.zope.org/Members/jim/ZPTIssueTracker .)
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
86 - Need to remove leading whitespace and newline when omitting an
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
87 element (either through tal:replace with a value of nothing or
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 tal:condition with a false condition).
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 - Empty TAL/METAL attributes are ignored: tal:replace="" is ignored
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 rather than causing an error.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93 - HTMLTALParser.py and TALParser.py are silly names. Should be
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 HTMLTALCompiler.py and XMLTALCompiler.py (or maybe shortened,
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
95 without "TAL"?)
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 - Should we preserve case of tags and attribute names in HTML?

Roundup Issue Tracker: http://roundup-tracker.org/