Проблемы с cl-who, parenscript и кавычками при генерации встроенного JavaScript
Итак, я запускаю учебник по parenscript, используя следующий код:
(defparameter *js-string-delimiter* #\")
(hunchentoot:define-easy-handler (tutorial1 :uri "/tutorial1") ()
(cl-who:with-html-output-to-string (s)
(:html
(:head (:title "Parenscript tutorial, example 1"))
(:body (:h2 "Parenscript totorial: 1st example")
"Please click the link below." :br
(:a :href "#" :onclick (parenscript:ps (alert "Hello World!"))
"Hello World!")))))
Страница отображается, но интерактивная ссылка не работает. Когда я просматриваю источник, я получаю следующее:
<html><head><title>Parenscript tutorial, example 1</title></head><body><h2>Parenscript totorial: 1st example</h2>Please click the link below.<br /><a href='#' onclick='alert('Hello World!');'>Hello World!</a></body></html>
Который не работает. Мне нужна функция оповещения, заключенная в кавычки ", а не в кавычки". Что я делаю не так?
1 ответ
Хорошо, после нескольких осмотров я обнаружил, что учебник кажется неправильным. Вместо использования parenscript:ps для генерации кода, вы должны использовать parenscript:ps-inline, чтобы получить правильное цитирование.
Надеюсь, это поможет кому-то еще.