diff options
Diffstat (limited to 'dnw/utils.scm')
-rw-r--r-- | dnw/utils.scm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/dnw/utils.scm b/dnw/utils.scm new file mode 100644 index 0000000..e25ed97 --- /dev/null +++ b/dnw/utils.scm @@ -0,0 +1,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")) |