Mark Rogers wrote:
Actually, since Smarty is tied to PHP which is pretty much tied to HTTP server usage (I know that's not strictly true but it's fairly typical to find it installed that way), Smarty falls into the category you'd find suspicious, but it is one of the major template engines on the PHP platform. In fact I suspect that anything PHP-based will fall into this category for the same reason - PHP can be used as a general purpose scripting language but it usually is not and is much "happier" working through an HTTP server. Perl and Python are much more widespread away from HTTP server usage so it would make sense that any template systems based on them will be equally happy away from the server.
All that said, I have an HTTP server and I'm not afraid to use it! I'm building a website after all!
For what it's worth, I have (and continue to) run several high-profile (well, in our industry at least) websites using nothing more than a fairly simple Perl[1] script to parse files, scan for particular comments (acting as custom tags, like where the "content body" begins and ends or where the menu goes), read a template, generate a context-aware menu, swap a bunch of stuff around and rebuild the pages. I've never found it a problem managing sites up to a few hundred pages this way, and being my own code, it's as flexible/intelligent as I need. In fact, they're really so trivial to knock up that I've generally written a new one from scratch for each new project (as they all tend to have different rules and requirements) with only a few basics cut'n'pasted from one to the next.
If you like a spot of coding, I'd recommend something along those lines, perhaps over trying to cajole some third-party setup to do exactly what you want. And, as you say, being Perl, it's completely independent of having a local server to run against (although you'd really want this to test what you're doing!)
Simon
[1] it's not elegant, compared to Python, but Perl's string mangling^H^H^Hmatching really comes in to its own for this sort of thing.