HTML-TEMPLATE is a portable library for Common Lisp written by Edi Weitz. It is used to fill templates with arbitrary values at runtime. (Actually, it does not matter whether the result is HTML but this the library is mostly used for it.) It is loosely modeled after the Perl module HTML::Template and partially compatible with a its syntax, though both libraries contain some extensions that the other does not support.
The detail information about HTML-TEMPLATE, source code, and documentation can be downloaded from http://weitz.de/html-template/.
YHTML-Template is a futher development of the above library in a more "lispy" direction.
TMPL_INCLUDE) accept forms instead of "old style" attributes.
*attributes-are-lisp-forms*special variable was introduced. Bind or set it to NIL to treating those tags in the compatibility mode.
template-evalwas introduced. It is a simple evaluator akin to the standard
evalfunction except for:
IF WHEN UNLESS AND OR NOT PROGN QUOTE SETQ.
(boundp symbol)is true, is treated as a dynamic variable and is retrieved via
TMPL_EVALtag and create-eval-printer were introduced; the former should be used instead of the
*format-non-strings*has got an additional meaning. If it equals to
T, the result is produced by means of
(format nil "~A" ...).
*string-modifier*is applied afterwards.
TMPL_ELSEand all ending tags
/TMPL_...can embed an optional text between the tag name and the closing marker "-->". This text is intended for readability only and completely ignored by the template parser. For example:
<!-- /TMPL_LOOP rows -->
TMPL_ELIFtag was introduced to allow a more concise code. In full, now the "if" pattern looks like:
<!-- TMPL_IF condition_1 --> text_1 <!-- TMPL_ELIF condition_2 --> text_2 ... <!-- TMPL_ELSE --> text_else <!-- /TMPL_IF -->
YHTML-Template source code has too many differences and can hardly be available as a patch to HTML-TEMPLATE. Instead, untouched and updated files are included into the html-template-0-10-2.zip bundle.