Для format
, в частности, Эндрю ответ правильный.В общем, вы можете использовать str
:
CL-USER> (with-html-output-to-string (*standard-output*)
(:p (str (format nil "~A" '<hello/>))))
"<p><HELLO/></p>"
Обратите внимание, что в этом случае строка не экранирована HTML (это относится и к fmt
).Если вы хотите, чтобы это было, используйте esc
вместо:
CL-USER> (with-html-output-to-string (*standard-output*)
(:p (esc (format nil "~A" '<hello/>))))
"<p><HELLO/></p>"
Аналогично, используйте htm
, чтобы вернуться в режим HTML после выхода из него:
CL-USER> (with-html-output-to-string (*standard-output*)
(:ul (loop for x from 1 to 3
do (htm (:li (str x))))))
"<ul><li>1</li><li>2</li><li>3</li></ul>"