[I sent this to Edi earlier, but it seems to have been ignored. I just saw
that there is actually a mailing list for this project, so I'm hoping that
sending it to the correct place will generate a bit more response.]
> For a personal project I extended your HTML-TEMPLATE library with an
> extra TMPL tag. If you think my extension is useful enough to be
> included in the library proper, I'll be happy to properly document it
> and submit a patch. Here is how it works:
>
> Support for the TMPL_CALL tag is added. This is related to
> TMPL_INCLUDE, but allows the values passed to a template to
> 'dynamically' determine which sub-templates should be used. It was
> inspired by the way XSLT's apply-templates works. The tag takes a
> single symbol as argument, and treats it the way TMPL_LOOP does,
> iterating over a list or a vector of values. Each of these values
> specifies a template to use and a set of values to apply that template
> to. These are extracted by applying the functions
> *call-template-access-function* and *call-values-access-function* to
> the given values - these default to #'car and #'cdr respectively.
>
> If *default-template-pathname* is set properly, and there are
> templates named "fancy-paragraph" and "standard-footer", something
> like this...
>
> '(:title "Title"
> :body
> ((#P"fancy-paragraph" :content "This is a fancy paragraph")
> (#P"standard-footer")))
>
> ... can be fed to a template that applies TMPL_CALL to :body to render
> its body in whatever way the code that generated the values thought
> suitable.
>
> Basically, this extension allows the use of outer templates that do
> not know precisely what kind of content will be inserted into them. A
> very basic example is a template that contains the <html>, <head>, &
> <body> tags + maybe some basic formatting, and which can be used by
> all pages that generate pages with a similar outer structure.
>
> Let me know what you think,
> Marijn Haverbeke
[Also, reading a few older message on this list suggests that adding fancy
new features isn't a priority for this library -- but I still think adding a
dynamic way to include subtemplates would be useful enough to warrant the
extra complexity.]