(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))