From 4815462e89e0b4cd704aff00798dd59d10155dc3 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Fri, 22 Jul 2022 17:58:52 +0200 Subject: [PATCH] First working album --- .gitignore | 1 + album.ss | 42 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dcaf716 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +index.html diff --git a/album.ss b/album.ss index 811be0c..4ad9cc0 100644 --- a/album.ss +++ b/album.ss @@ -36,9 +36,41 @@ img { padding: 10px; } ")) - (body () - ,(map (lambda (filename) `(img (src ,filename))) (pictures path))))) + ,(cons 'body (cons '() (map (lambda (filename) `(img (src ,filename))) (pictures path)))))) + +(define (list->attr l) + (cond + ((null? l) "") + (#t (string-append (format " ~A=\"~A\"" (car l) (cadr l)) (list->attr (cddr l)))))) + +(define (list->inner-html l) + (apply + string-append + (map + (lambda (v) + (cond + ((list? v) (sexpr->html v)) + (#t (format "~A" v)))) + l))) + +(define (sexpr->html s) + (cond + ((null? (cddr s)) ; self-closing tag + (format "<~A~A/>~%" (car s) (list->attr (cadr s)))) + (#t ; non self-closing tag + (string-append + ; opening tag + (format "<~A~A>~%" (car s) (list->attr (cadr s))) + ; inner content + (list->inner-html (cddr s)) + ; closing tag + (format "~%" (car s)))) + )) + +(define (build src-folder dest-file) + (call-with-output-file + dest-file + (lambda (p) + (display (sexpr->html (albumize src-folder)) p) +))) -;(define (sexpr->html - -