Plaster
New
List
Login
text
default
anonymous
2022.02.18 20:56:58
(defmacro emit (language file &body body) `(with-open-file (str ,file :direction :output :if-exists :supersede) (format str "~A" (cond ((eq ',language 'html) (with-html-output-to-string (s nil :prologue t :indent t) ,@body)) ((eq ',language 'javascript) (ps ,@body)) ((eq ',language 'json) (remove #\; (ps ,@body))))))) (emit json "blah.txt" (create "name" "Blah" "description" "Blah." "version" "1.0" "manifest_version" 3 "background" (create "service_worker" "blah.js") "permissions" (array "storage") "action" (create "default_title" "Blah" "default_popup" "blah.html"))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; slime-expand-1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (WITH-OPEN-FILE (STR "blah.txt" :DIRECTION :OUTPUT :IF-EXISTS :SUPERSEDE) (FORMAT STR "~A" (COND ((EQ 'JSON 'HTML) (WITH-HTML-OUTPUT-TO-STRING (S NIL :PROLOGUE T :INDENT T) (CREATE "name" "Blah" "description" "Blah." "version" "1.0" "manifest_version" 3 "background" (CREATE "service_worker" "blah.js") "permissions" (ARRAY "storage") "action" (CREATE "default_title" "Blah" "default_popup" "blah.html")))) ((EQ 'JSON 'JAVASCRIPT) (PS (CREATE "name" "Blah" "description" "Blah." "version" "1.0" "manifest_version" 3 "background" (CREATE "service_worker" "blah.js") "permissions" (ARRAY "storage") "action" (CREATE "default_title" "Blah" "default_popup" "blah.html")))) ((EQ 'JSON 'JSON) (REMOVE #\; (PS (CREATE "name" "Blah" "description" "Blah." "version" "1.0" "manifest_version" 3 "background" (CREATE "service_worker" "blah.js") "permissions" (ARRAY "storage") "action" (CREATE "default_title" "Blah" "default_popup" "blah.html"))))))))
Raw
Annotate
Repaste
Edit