summaryrefslogtreecommitdiff
path: root/dnw/utils.scm
blob: e25ed97e043e6e64bee3e7d77331697c86a287a5 (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
;; Shameless "borrowing" of SXML conveniences from jakob.space and bendersteed.tech.
;; A few modifications and a few additions.

(define-module (dnw utils)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)
  #:use-module (haunt site)
  #:export
  (hyperlink
   image
   stylesheet
   script
   post-uri))

(define (hyperlink target text)
  `(a (@ (href ,target)) ,text))

(define* (image file-name #:optional description class)
  (let ((src (string-append "/assets/image/" file-name)))
    (if description
	(if class
            `(img (@ (src ,src) (alt ,description) (title ,description) (class ,class)))
	    `(img (@ (src ,src) (alt ,description) (title ,description))))
        (if class
	    `(img (@ (src ,src) (class ,class)))
	    `(img (@ (src ,src)))))))

(define (stylesheet file-name)
  `(link (@ (rel "stylesheet") (href ,(format #f "/assets/css/~a" file-name)))))

(define (script file-name)
  (let ((src (string-append "/assets/js/" file-name)))
    `(script (@ (src ,src)))))

(define (post-uri site post)
  (string-append "/posts/" (site-post-slug site post) ".html"))