diff options
| author | Vineet Kumar <git@vineetk.net> | 2026-05-05 11:43:52 -0400 |
|---|---|---|
| committer | Vineet Kumar <git@vineetk.net> | 2026-05-05 11:43:52 -0400 |
| commit | c58adc06f9b7cfbe818fb7fd3a68f5b66960a620 (patch) | |
| tree | e536b8de30ec450e2e7ce9c22e44fc5474640aec /theme.scm | |
| parent | b35228ff7370f8d9ef2b45bd09cfb974acf1254d (diff) | |
switched to haunt from hugo
Diffstat (limited to 'theme.scm')
| -rw-r--r-- | theme.scm | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/theme.scm b/theme.scm new file mode 100644 index 0000000..4485c62 --- /dev/null +++ b/theme.scm | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | (define-module (theme) | ||
| 2 | #:use-module (haunt artifact) | ||
| 3 | #:use-module (haunt asset) | ||
| 4 | #:use-module (haunt builder blog) | ||
| 5 | #:use-module (haunt html) | ||
| 6 | #:use-module (haunt post) | ||
| 7 | #:use-module (haunt site) | ||
| 8 | #:use-module (srfi srfi-19) | ||
| 9 | #:export (vin-theme)) | ||
| 10 | |||
| 11 | (define (link name uri) | ||
| 12 | `(a (@ (href ,uri)) ,name)) | ||
| 13 | |||
| 14 | (define vin-theme | ||
| 15 | (theme #:name "vin" | ||
| 16 | #:layout | ||
| 17 | (lambda (site title body) | ||
| 18 | `((doctype "html") | ||
| 19 | (head | ||
| 20 | (meta (@ (charset "utf-8"))) | ||
| 21 | (meta (@ (name "viewport") | ||
| 22 | (content "width=device-width, initial-scale=1"))) | ||
| 23 | (title ,(string-append title " - " (site-title site))) | ||
| 24 | (link (@ (rel "alternate") | ||
| 25 | (type "application/atom+xml") | ||
| 26 | (title "Atom feed") | ||
| 27 | (href "/feed.xml"))) | ||
| 28 | (link (@ (rel "icon") | ||
| 29 | (type "image/png") | ||
| 30 | (href "/static/AT_terminus.png"))) | ||
| 31 | (link (@ (rel "stylesheet") | ||
| 32 | (type "text/css") | ||
| 33 | (href "/static/main.css"))) | ||
| 34 | (body | ||
| 35 | (div (@ (class "container")) | ||
| 36 | (nav | ||
| 37 | (ul (li ,(link "Vineet K" "/"))) | ||
| 38 | (ul (li ,(link "About Me" "/about.html")) | ||
| 39 | (li ,(link "Blog" "/index.html")) | ||
| 40 | ;; (li ,(link "Projects" "/projects.html")) | ||
| 41 | )) | ||
| 42 | ,body | ||
| 43 | (footer (@ (class "text-center")) | ||
| 44 | (p "The content for the site is under the " ,(link "CC-BY-NC-SA-4.0 License" "/static/cc-by-nc-sa-4.0.txt") ". " | ||
| 45 | "The code for this site is under the " ,(link "GNU AGPLv3 License" "/static/agpl-3.0.txt") "."))))))) | ||
| 46 | #:post-template | ||
| 47 | (lambda (post) | ||
| 48 | `((article | ||
| 49 | (h1 (@ (class "title")) | ||
| 50 | ,(post-ref post 'title)) | ||
| 51 | (div (@ (class "date")) | ||
| 52 | ,(date->string (post-date post) | ||
| 53 | "~B ~d, ~Y")) | ||
| 54 | (div (@ (class "post")) | ||
| 55 | ,(post-sxml post))))) | ||
| 56 | #:collection-template | ||
| 57 | (lambda (site title posts prefix) | ||
| 58 | (define (post-uri post) | ||
| 59 | (string-append prefix "/" (site-post-slug site post) ".html")) | ||
| 60 | `((h2 ,title " " | ||
| 61 | (a (@ (href "/feed.xml")) "(feed)")) | ||
| 62 | ,(map (lambda (post) | ||
| 63 | (let ((uri (post-uri post))) | ||
| 64 | `(div (@ (class "posts")) | ||
| 65 | (div (@ (class "post")) | ||
| 66 | (span (span (@ (class "date")) | ||
| 67 | ,(date->string | ||
| 68 | (post-date post) | ||
| 69 | "~Y-~m-~d")) | ||
| 70 | " - " | ||
| 71 | (a (@ (href ,uri)) | ||
| 72 | ,(post-ref post 'title))))))) | ||
| 73 | posts))))) | ||
