Plaster

text
(loop for item in '(primary secondary) for symbol = (intern (concatenate 'string "BTN-" (symbol-name item))) for item-name = (format nil "~a" item) collect `(defmacro ,symbol (&body body) `(btn (:type ,item-name) ,@body)))