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-eval
was introduced.
It is a simple evaluator akin to the standard eval
function 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 symbol-value
.
TMPL_EVAL
tag and create-eval-printer were introduced;
the former should be used instead of the TMPL_VAR
tag.
*format-non-strings*
has got an additional meaning.
If it equals to T
, the result is produced by means of
princ-to-string
, i.e. (format nil "~A" ...)
.*string-modifier*
is applied afterwards.TMPL_ELSE
and 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_ELIF
tag 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 requires
YHTML-Template is required by YstokHelp and YstokHTML.
YHTML-Template source code is available from
html-template-0-10-3.zip or
html-template-0-10-3.tgz.