有没有办法在 parenscript 代码中插入原始 javascript?
Is there a way to insert raw javascript in parenscript code?
以下代码将第三方生成的 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 插入一个不带引号的字符串?
将此添加到 parenscript 的非 cl.lisp 文件:
(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;
})();"
以下代码将第三方生成的 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 插入一个不带引号的字符串?
将此添加到 parenscript 的非 cl.lisp 文件:
(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;
})();"