Tidying up style, and switch to display in one spot

This commit is contained in:
Vivianne 2024-02-29 09:36:36 -05:00
parent 0eac888619
commit c18669e7b5
1 changed files with 12 additions and 6 deletions

View File

@ -51,7 +51,7 @@
(define (style->sequence style port)
(define str (style-string style))
(define (just-str) (format port "~a" str))
(define (just-str) (display str port))
;; Color sequences aren't strings, so handle them specially
;; Colors don't get resolved until we have the port because we don't know the color profile until then.
@ -72,12 +72,18 @@
(define (cons-seq stylish sequence)
(match stylish
((? string? str) (make-style str (list sequence)))
((style) (cons-seq style sequence))
((? list? l) (make-style-node (map (cut cons-seq <> sequence) l)))
((? style? style) (set-style-sequences style (cons* sequence (style-sequences style))))
((? string? str)
(make-style str (list sequence)))
((style)
(cons-seq style sequence))
((? list? l)
(make-style-node (map (cut cons-seq <> sequence) l)))
((? style? style)
(set-style-sequences style
(cons* sequence (style-sequences style))))
((? style-node? node)
(set-style-node-children node (map (cut cons-seq <> sequence) (style-node-children node))))))
(set-style-node-children node
(map (cut cons-seq <> sequence) (style-node-children node))))))
(define (bold . s) (cons-seq s %BOLD))
(define (faint . s) (cons-seq s %FAINT))