diff options
-rw-r--r-- | package.lisp | 3 | ||||
-rw-r--r-- | shtml.lisp | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/package.lisp b/package.lisp index 27fa91f..0da7196 100644 --- a/package.lisp +++ b/package.lisp @@ -1,6 +1,7 @@ (uiop:define-package #:shtml (:use #:cl) - (:export #:a + (:export #:cat + #:a #:abbr #:address #:area @@ -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) |