Differences between YstokHTML and Franz HTMLGen
- Renamed
html macro to htm (a la Edi Weitz's
CL-WHO).
- YstokHTML is XHTML compatible with close tags so that
(htm :hr)
can produce
'<hr>' or '<hr />' depending on *html-mode*.
Whether print-html-... functions produce XHTML termination '/>' also depends on *html-mode*.
- Lowercase tag names when
*html-mode* is :xml.
- Lowercase attribute names when
*html-mode* is :xml or
*attribute-case* is :downcase; so (htm ((:p class 'a)))
produces '<p class="a"></p>'.
- Added new tags
:include, :nbsp, :jscript, :format, :format-safe,
:!doctype, :?xml.
- Added new custom tag
:escape,
which invokes full-fledged html-template:escape-string
and escapes not only four characters, but all satisfying template:*escape-char-p*.
- Added special attribute tag
:optional,
which is similar to :if*.
The :if* pseudo-attribute is deprecated in favor of :when.
- Automatic conversion attribute values to strings (quoting).
- Removed the
if* macro from all the source code.
- Renamed
html-process to descriptor:
- it is of a "normal" structure type now, not of type list;
- slot
name-attrs renamed to name-attr;
- added slot
uri-attrs specifying a list of attributes of type URI.
- Function
prin1-safe-http-string replaced by generic prin1-attribute-value
of signature:
(val &optional stream).
- Added special variable
*lhtml-safe*. When it is true,
- LHTML is already safe for printing, i.e. all atoms are prepared
for direct call of write-string,
- character code to entity/(hexa)decimal conversion is not needed.
You can always override by means of explicit pseudo-tags :escape, :some-safe,
etc.
- Changed
html-print-list and html-print signature:
(form &optional stream).
def-std-html now defines a macro named as follows:
- either a symbol explicitly passed as an optional macro-name argument,
- or by default
(intern "key")
instead of
(intern "WITH-HTML-key"),
produced by the Franz's HTMLGen.
- Owing to calls of
attribute-name-string and prin1-attribute-value, now
html-standard-print generates HTML close to what is produced by the
htm macro.