(define (flatten l) (cond ((not (list? l)) l) ((null? l) '()) ((list? (car l)) (append (flatten (car l)) (flatten (cdr l)))) (#t (cons (car l) (flatten (cdr l)))))) (define (tree path) (cond ((file-directory? path) (map (lambda (item) (tree (string-append path "/" item))) (directory-list path))) (#t path))) (define (string-suffix s n) (let ([strlen (string-length s)]) (substring s (- strlen n) strlen))) (define (pictures path) (sort string<=? (filter (lambda (filename) (string=? ".JPG" (string-suffix filename 4))) (flatten (tree path))))) (define (albumize path) `(html () (head () (meta (charset "utf-8")) (style () " img { display:block; max-width: 100%; margin: auto; padding: 10px; } ")) (body () ,(map (lambda (filename) `(img (src ,filename))) (pictures path))))) ;(define (sexpr->html