(load "mustache/mustache")
(load "pandoc/pandoc")
(import-all "mustache")
(import-all "pandoc")
(define tpl (read-contents "layout.html"))
(define poem-dir "poems/")
(define (all-poems)
(let* ((ls (os:ls poem-dir))
(ls (filter ($ (not (in? ["." ".."] %))) ls)))
(map (curry ++ poem-dir) ls)))
(define (from-path file)
(regex:sub r/.md$/ "" (list:last (string:split file "/"))))
(define (treat str)
(regex:gsub r/
/ "
" (regex:gsub r/
/ "
" str))) (define (render targets) (let* ((strs (map read-contents targets)) (args (make-hash "poems" (map (compose treat (curry pandoc:convert "markdown" "html")) strs)))) (with-output-file "index.html" (curry write (mustache:template tpl args))))) (let ((targets (all-poems))) (render targets))