Charles Engelke's Blog

July 10, 2003

OSCON Day 4: Session – Template Toolkit Version 3

Filed under: Ozette Brown — Charles Engelke @ 6:22 pm


* Internal Architecture
* New Parser
Unbreak the unfixed
Encourage more templage modules

Automatice Filtering
* document output
* stash methods
* source filters

Cleave TT in Twain
* Template::Toolkit
– generic templat proessing tools
* Template::TT2, Template::TT3
– specific dialects
* Template::Mason, Template::HTML, Template::Perl
– renaming and functionality
– multilevel API would be a huge win. So users of different templating systems and use it happily
* Multi-level API
– conformity, not uniformly
* Roll your own
– wheels, bearings, axles, nutes and bolts

This session is packed. There are alot of people standing up nad I’m sitting on the floor with at least 5 others.
Ok, this is the 9th time the speakers screen saver activated and the screen went blank. Press the space bar…..

He has a really cool looking skateboard.
The board is unique but it’s also different. Template systes should be like his skateboard, choose a set of wheels w/o having to re-invent the wheels.

New Compiler Architecture
* Compiler front-end
* scanner-text vs tags
* tag-trag specific handling
* directive-directive grammar
* parser-parse generic tokens
* generator

Debugging Generator
* t/parsedirs.t

Custom Tags
Multiple dialects
* different ways of writing the same thing
* same way of writing different things
* cross-dialect functionality

* Real soon now
* coming to a CVS server near you…
* before the end of the year

* INternal arch
* language cleanup
* compile time magic
* localization, internationalization, comstomization
* performance
* convergence
* divergence

There are currently 37 template modules on CPAN

Ok, I’m starting to lean more and more towards template toolkit.
The main thing that did it for me is a future API add-on for HTML-Template.
HTML-Template is a small fast and lite templating engine that I use daily for various things.
The Template-Toolkit’s future API extension works then on of my existing code/template will have
to change, things will just work. This is a perfect example of a pluggable component.


Blog at

%d bloggers like this: