summaryrefslogtreecommitdiff
path: root/haunt.scm
blob: b7f3fafad299e8f8f2a177d0a28c569177ee4b8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
;;; Copyright © 2018-2021 David Thompson <davet@gnu.org>
;;;
;;; This program is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU General Public License as
;;; published by the Free Software Foundation; either version 3 of the
;;; License, or (at your option) any later version.
;;;
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;;; General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with this program.  If not, see
;;; <http://www.gnu.org/licenses/>.

(use-modules (haunt asset)
             (haunt builder blog)
             (haunt builder atom)
             (haunt builder assets)
             (haunt post)
             (haunt publisher rsync)
             (haunt site)
             (markdown)
             (projects)
             (theme)
             (utils))

(define %collections
  `(("Recent Blog Posts" "index.html" ,posts/reverse-chronological)))

(define about-page
  (static-page
   "About Me"
   "about.html"
   `((h2 "Hi.")
     (p "I am a professional software developer.  I like to write
programs in Scheme in my free time, such as the software that built
this website.")
     (p "I also like to garden and make things out of wood.")
     (p "If you're into social media, you can follow me on "
        ,(anchor "Mastodon" "https://toot.cat/@dthompson") "."))))

(define projects-page
  (static-page
   "Projects"
   "projects.html"
   `((h1 "Projects")
     (p ,(anchor "Haunt" "projects/haunt.html")
        " — Functional, hackable static site generator")
     (p ,(anchor "Chickadee" "projects/chickadee.html")
        " — Game development toolkit for Guile Scheme")
     (p ,(anchor "guile-SDL2" "projects/guile-sdl2.html")
        " — SDL2 bindings for Guile Scheme")
     (p ,(anchor "guile-syntax-highlight" "projects/guile-syntax-highlight.html")
        " — Syntax highlighting library for Guile Scheme")
     (p ,(anchor "Shroud" "projects/shroud.html")
        " — GPG-based password manager (inactive)")
     (p ,(anchor "Sly" "projects/sly.html")
        " — Functional reactive game engine (abandoned)")
     (p ,(anchor "srt2vtt" "projects/srt2vtt.html")
        " — SRT to WebVTT subtitle converter"))))

(site #:title "dthompson"
      #:domain "dthompson.us"
      #:default-metadata
      '((author . "David Thompson")
        (email  . "davet@gnu.org"))
      #:readers (list commonmark-reader*)
      #:builders (list (blog #:theme dthompson-theme #:collections %collections
                             #:posts-per-page 10)
                       (atom-feed)
                       (atom-feeds-by-tag)
                       about-page
                       projects-page
                       chickadee-page
                       sly-page
                       guile-sdl2-page
                       guile-syntax-highlight-page
                       haunt-page
                       shroud-page
                       srt2vtt-page
                       (static-directory "js")
                       (static-directory "css")
                       (static-directory "fonts")
                       (static-directory "images")
                       (static-directory "videos")
                       (static-directory "src")
                       (static-directory "manuals"))
      #:publishers (list (rsync-publisher #:destination "/var/www/blog"
                                          #:user "publish"
                                          #:host "dthompson.us")))