;;;cd entry subclauses.

(define (cd-number n) (tag-data 'cd-number (as-string n)))
(define (cd-artist a) (tag-data 'cd-artist (as-string a)))
(define (cd-title t) (tag-data 'cd-title (as-string t)))
(define (cd-playing-time min sec) (tag-data 'cd-playing-time (string-append (as-string min) ":" (as-string sec))))
;;Present a cd entry

(define (cd-entry . subentries) (let ((number ; (defaulted-get-prop 'cd-number subentries "?")) (artist (defaulted-get-prop 'cd-artist subentries "No artist")) (title (defaulted-get-prop 'cd-title subentries "No title")) (play-time (defaulted-get-prop 'cd-playing-time subentries "Unknown playing time")) ) (table 'border "2" ; (tr (tdb "Number") (td number)) (tr (tdb "Artist") (td artist)) (tr (tdb "Title") (td title)) (tr (tdb "Playing time") (td play-time)) )))
;;Present a cd archive

(define (cd-archive . cd-entries) (html (head (title page-title)) (body (h1 page-title) ; (map spacy cd-entries) ; ) ) )
;;;Other definitions
;Tag string-data with tag
(define (tag-data tag string-data) (list (as-symbol tag) string-data))
(define (spacy x) (list x (p)))
(define (tdb x) (td (b x)))