Различия между YstokHTML и HTMLGen
- Макрос
html переименован в htm (одноименный
макрос есть в
CL-WHO).
- YstokHTML может генерировать XHTML с соответствующими закрывающими тегами
для пустых элементов в зависимости от значения переменной
*html-mode*;
поэтому (htm :hr) генерирует или
'<hr>', или '<hr />'. Эта же переменная *html-mode*
задает завершение тегов '/>' в семействе функций print-html-...
- Имена тегов переводятся в нижний регистр, когда
*html-mode*
есть :xml.
- Имена атрибутов переводятся в нижний регистр, когда
*html-mode*
есть :xml или
*attribute-case* есть :downcase. В это режиме (htm ((:p class 'a)))
генерирует '<p class="a"></p>'.
- Дополнительные псевдотеги
:include, :nbsp, :jscript, :format, :format-safe,
:!doctype, :?xml.
- Дополнительный псевдотег
:escape производит escape-кодирование
содержимого путем вызова функции html-template:escape-string.
- Дополнительный (помимо
:if*) признак :optional,
указывающий способ
вычисления значения атрибута.
- Автоматическое заключение значений атрибутов в двойные кавычки (quoting).
- Вхождения вспомогательного макроса
if* удалены из исходного
файла htmlgen.lisp.
- Структурный тип
html-process переименован в descriptor:
- теперь это "настоящий" структурный тип, а не представленный
списком;
- слот
name-attrs переименован в name-attr;
- добавлен слот
uri-attrs, в котором перечисляются имена
атрибутов со значениями типа URI.
- Функция
prin1-safe-http-string заменена обобщённой фукнцией prin1-attribute-value
сигнатуры:
(val &optional stream).
- Сигнатура функций
html-print-list и html-print
изменена на:
(form &optional stream).
- К макросу
def-std-html добавлен необязательный параметр macro-name:
- явно передаваемый аргумент должен быть символом —
именем макроса, который будет генерировать HTML-код для
соответствующего элемента,
- умолчательным значением служит символ
— результат (intern "key"),
а не (intern "WITH-HTML-key"),
как для макроса HTMLGen.
- Вспомогательные функции
attribute-name-string и prin1-attribute-value
однообразно генерируют HTML и при вызове функции
html-standard-print, и с помощью макроса htm.