summaryrefslogtreecommitdiff
path: root/dnw/utils.scm
diff options
context:
space:
mode:
authorDuncan Wilkie <antigravityd@gmail.com>2023-06-26 10:15:27 -0500
committerDuncan Wilkie <antigravityd@gmail.com>2023-06-26 10:15:27 -0500
commite1b7e1f50709c89b7b6448bd86999a5a562f0e1b (patch)
tree1cfd616033378ab4bcfa6991a3b64cb6ca0e38d0 /dnw/utils.scm
Start over cleanly
Diffstat (limited to 'dnw/utils.scm')
-rw-r--r--dnw/utils.scm37
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"))