45 lines
897 B
Scheme
45 lines
897 B
Scheme
(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
|
|
|
|
|