Add clsx utility

This commit is contained in:
Akira Tempaku 2025-05-19 23:33:22 +09:00
parent 314f7cb273
commit 22001ef3e2
Signed by: paku
GPG key ID: 5B4E8402BCC50607
4 changed files with 14 additions and 4 deletions

View file

@ -171,6 +171,10 @@ Or loop:
(hsx (li item))))))
```
## Utils
- `(clsx &rest strs)`: A utility function for constructing class strings conditionally. It removes `nil` from the string list, then joins the remaining strings with spaces.
## 📄 License
MIT License

View file

@ -1,5 +1,5 @@
(defsystem "hsx"
:version "0.5.0"
:version "0.6.0"
:description "Simple and powerful HTML generation library."
:author "Akira Tempaku, Bo Yao"
:maintainer "Akira Tempaku <paku@skyizwhite.dev>"

View file

@ -2,9 +2,11 @@
(:nicknames #:hsx/main)
(:use #:cl
#:hsx/element
#:hsx/dsl)
#:hsx/dsl
#:hsx/utils)
(:import-from #:hsx/builtin)
(:export #:hsx
#:defcomp
#:render-to-string))
#:render-to-string
#:clsx))
(in-package :hsx)

View file

@ -5,7 +5,8 @@
#:make-keyword
#:symbolicate)
(:export #:escape-html-attribute
#:escape-html-text-content))
#:escape-html-text-content
#:clsx))
(in-package #:hsx/utils)
(defparameter *text-content-escape-map*
@ -40,3 +41,6 @@
(defun escape-html-attribute (str)
(escape-string str *attribute-escape-map*))
(defun clsx (&rest strs)
(format nil "~{~a~^ ~}" (remove nil strs)))