Есть ли способ вставить сырой javascript в код parenscript?
Следующий код вставляет сторонний сгенерированный javascript как строку, которая должна быть оценена.
(ps (let ((x (lisp (json:encode-json-alist-to-string
'((:a . 1) (:b . 2))))))))
"(function () {
var x = '{\"a\":1,\"b\":2}';
return null; })();"
Есть ли способ сказать Parenscript, чтобы вставить строку без кавычек?
1 ответ
Решение
Добавил это в файл не-cl.lisp parenscript:
(define-expression-operator lisp-raw (lisp-form)
`(ps-js:escape
,lisp-form))
(defun lisp-raw (x) x)
Результат:
(ps (let ((x (ps::lisp-raw (json:encode-json-alist-to-string
'((:a . 1) (:b . 2))))))))
"(function () {
var x = {\"a\":1,\"b\":2};
return null;
})();"