2444
Comment: add note of related material on choosing among these alternatives.
|
2527
Added Woven
|
Deletions are marked like this. | Additions are marked like this. |
Line 35: | Line 35: |
* DOMTemplate (from Twisted Matrix) | * DOMTemplate (from TwistedMatrix) |
Line 37: | Line 37: |
* [http://www.twistedmatrix.com/documents/howto/woven Woven] (from TwistedMatrix) |
Presentation Styles
There are several different styles of presentation technology employed in the various Web application frameworks (see WebProgramming).
- ["Programmatic"]
An interesting article which introduces other useful terminology is [http://www.perl.com/pub/a/2001/08/21/templating.html "Choosing a Templating System"].
Syntax
In the area of syntax, several different design decisions are made alongside the above classifications, and this is often the principal reason that new template systems get invented:
Examples
Some presentation systems fall neatly into the categories above. Others are less easy to classify but have a closer association to one category than the others.
PythonInWebPage
- Castalian
- ["Cheetah"]
- PSP (from ["Webware"])
- ["Spyce"]
StructureAnnotation
DOMTemplate (from TwistedMatrix)
- DTML (Document Template Markup Language - see ["Zope"])
[http://www.twistedmatrix.com/documents/howto/woven Woven] (from TwistedMatrix)
wt (see JonsPythonModules)
- ZPT (Zope Page Templates - see ["Zope"])
Hybrids
CHTL and CGTL (from CherryPy) - PythonInWebPage and StructureAnnotation
PyMeld - StructureAnnotation and ["Programmatic"]
["STML"] (from SkunkWeb) - PythonInWebPage, StructureAnnotation, and ["Programmatic"] being all equally apt (or equally inadequate)
Programmatic
- PTL (from ["Quixote"])
Notes
Feel free to add more abstract descriptions and more examples to help people decide what they are looking for!
Do you need to use full-fledged python, embedded bits of definitions but no functions -- there is a range of options depending on your problem. Sometimes there's no python in "the output page" -- as in raw documents put thru a filter. Or there may be limited amounts of embedded python -- as in YAPTU and other filters. Or python may be the matrix language, with text embedded within it. Your handler code can be anything from a substituter (using, say, regular expressions to catch things to be altered) to a mini python engine. See [http://pythonjournal.cognizor.com 'Python Journal 3(1)'] a feature article that draws together several of the options above into a series on the pure-text to pure-python "dimension". See what your options are.