list-group can be a function too

This commit is contained in:
Marcus Kammer 2025-01-16 17:06:51 +01:00
parent 8073f76ad3
commit 2bb2a5019a
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -20,8 +20,9 @@
(defpackage ml-sbt/list-group
(:use :cl)
(:export
:item
:with-list-group)
#:item
#:list-group
#:with-list-group)
(:documentation "A Common Lisp package for generating Bootstrap List Group components."))
(in-package :ml-sbt/list-group)
@ -55,6 +56,18 @@ Example:
;; `((loop for item in ,items
;; do (:li :class "list-group-item" item))))))))
(defun list-group (flush &rest items)
"This macro generates a Bootstrap list group.
ITEMS: A list of items to be included in the list group.
FLUSH: If true, adds the 'list-group-flush' class."
(let ((class-str (format nil "list-group~@[ list-group-flush~]" flush)))
(spinneret:with-html
(:ul :class class-str
(loop for item in items
do (:li :class "list-group-item" item))))))
(defmacro with-list-group (items &optional flush)
"This macro generates a Bootstrap list group.