(defmacro wrap-in-tag ((tag-name &rest tag-attributes) &body body)
(with-unique-names (tname)
`(let ((,tname ,(string-downcase (string tag-name))))
(emit-open-tag ,tname ,tag-attributes)
(prog1
(progn ,@body)
(emit-close-tag ,tname)))))Source Context