cl-who: использование переменной в with-html-output-to-string
Все примеры, которые я видел за cl-who
работать так:
(with-html-output-to-string (s)
(:HTML (:HEAD (:TITLE "hello")) (:BODY (:DIV "world"))))
Который работает отлично. Тем не менее, я хотел использовать with-html-output-to-string
с переменной, вместо жестко закодированного HTML-дерева; если *p*
имеет (:HTML (:HEAD (:TITLE "hello")) (:BODY (:DIV "world")))
и я делаю это
(with-html-output-to-string (s)
*p*)
я получил ""
в следствии. Я думаю, что как with-html-output-to-string
это макрос, его последний аргумент никогда не оценивается. Есть ли способ, которым я могу обойти это?
2 ответа
Использование cl-who:str
; проверьте примеры на http://weitz.de/cl-who/.
Если вы делаете:
(with-html-output-to-string (s)
(str *p*))
вы получите ожидаемый результат.
Передача частичных html-деревьев в виде lisp-форм не является ожидаемым способом в cl-who, но вы можете использовать некоторые внутренние компоненты cl-who (применить tree-to-commands
) написать небольшую обертку.