diff options
author | Juan Manuel Tomás <jtomas1815@gmail.com> | 2022-08-07 18:25:16 -0300 |
---|---|---|
committer | Juan Manuel Tomás <jtomas1815@gmail.com> | 2022-08-07 18:25:16 -0300 |
commit | 20ab54531205d94763f51753c1b02cc42685f4e0 (patch) | |
tree | dac26e46161eb1a25d2ba9f4153340e778b00ee9 /shtml.lisp | |
parent | fc731f3a0de136b145340aed864feecc7fb44b8d (diff) | |
download | shtml-20ab54531205d94763f51753c1b02cc42685f4e0.tar.gz shtml-20ab54531205d94763f51753c1b02cc42685f4e0.zip |
Add a way to concatenate tags with custom separators
Diffstat (limited to 'shtml.lisp')
-rw-r--r-- | shtml.lisp | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1,5 +1,10 @@ (in-package #:shtml) +(defun cat (separator &rest lines) + (format nil + (concatenate 'string "~{~a~^" separator "~}") + lines)) + (defun trim-flatten-assoc (lst) (loop :for (i . j) :in lst :when j :append (list i j))) @@ -43,7 +48,7 @@ (mapcar (lambda (attr) (list 'cons (downcase-name attr) attr)) attrs)))) - `(defmacro ,tag (&rest ,args) + `(defmacro ,tag (&body ,args) (let ((body (gensym)) (parsed-args (separate-keys ,args))) `((lambda (,body &key ,@',attrs) @@ -61,7 +66,7 @@ (mapcar (lambda (attr) (list 'cons (downcase-name attr) attr)) attrs)))) - `(defmacro html (&rest ,args) + `(defmacro html (&body ,args) (let ((body (gensym)) (parsed-args (separate-keys ,args))) `((lambda (,body &key ,@',attrs) |