diff options
author | Arun Isaac | 2025-04-07 15:57:53 +0100 |
---|---|---|
committer | Arun Isaac | 2025-04-07 15:57:53 +0100 |
commit | a760bff3efa44c282ed119032a6831bdaac79e7b (patch) | |
tree | 44a74e8d59b44065ab5b3a3270ba57827ec5fc1a /pandoc-blog/make.scm | |
download | gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.tar.gz gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.tar.lz gexp-make-a760bff3efa44c282ed119032a6831bdaac79e7b.zip |
Initial commit
Diffstat (limited to 'pandoc-blog/make.scm')
-rw-r--r-- | pandoc-blog/make.scm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/pandoc-blog/make.scm b/pandoc-blog/make.scm new file mode 100644 index 0000000..1c9728c --- /dev/null +++ b/pandoc-blog/make.scm @@ -0,0 +1,47 @@ +(use-modules ((gnu packages haskell-xyz) #:select (pandoc)) + ((gnu packages python) #:select (python)) + (guix build utils) + (guix gexp)) + +(define (build-post post) + (computed-file (basename post ".md") + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (let ((posts-directory (string-append #$output "/posts/"))) + (mkdir-p posts-directory) + (invoke #$(file-append pandoc "/bin/pandoc") + "--from" "markdown" + "--to" "html" + "--standalone" + "--output" (string-append posts-directory + #$(basename post ".md") + ".html") + #$(local-file post))))))) + +(define (build-index posts) + (computed-file "blog-index" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (invoke #$(file-append python "/bin/python3") + #$(local-file "generate-index.py") + "index.md" + #$@(map (lambda (file) + (local-file file)) + posts)) + (mkdir #$output) + (invoke #$(file-append pandoc "/bin/pandoc") + "--from" "markdown" + "--to" "html" + "--standalone" + "--metadata" "title=My blog" + "--output" (string-append #$output "/index.html") + "index.md"))))) + +(let ((posts (find-files "posts" "\\.md$"))) + (directory-union "blog" + (cons (build-index posts) + (map build-post posts)))) |