Added `split-attributes+body', to make it easy to write xml-like wrapper
functions, and used it in `center-div'.
This commit is contained in:
parent
c73b42325a
commit
e339081fd0
|
@ -10,9 +10,11 @@
|
|||
;; a div that is centered, but the text is still left-justified
|
||||
(provide center-div)
|
||||
(define (center-div . text)
|
||||
(div align: 'center
|
||||
(div align: 'left style: "display: inline-block;"
|
||||
text)))
|
||||
(let-values ([(attrs body) (split-attributes+body text)])
|
||||
(apply div align: 'center
|
||||
(append attrs
|
||||
(list (div align: 'left style: "display: inline-block;"
|
||||
body))))))
|
||||
|
||||
;; a grayish tt text
|
||||
(provide TT)
|
||||
|
|
|
@ -37,6 +37,15 @@
|
|||
"missing attribute value for `~s:'" a)]
|
||||
[else (loop (cddr xs) (cons (cons a (cadr xs)) as))]))))
|
||||
|
||||
;; similar, but keeps the attributes as a list, useful to build new functions
|
||||
;; that accept attributes without knowing about the xml structs.
|
||||
(provide split-attributes+body)
|
||||
(define (split-attributes+body xs)
|
||||
(let loop ([xs xs] [as '()])
|
||||
(if (and (pair? xs) (pair? (cdr xs)) (attribute->symbol (car xs)))
|
||||
(loop (cddr xs) (list* (cadr xs) (car xs) as))
|
||||
(values (reverse as) xs))))
|
||||
|
||||
;; ----------------------------------------------------------------------------
|
||||
;; An output that handles xml quoting, customizable
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user