blob: 5b2e4840eb7362da33faefba28c1349ffe533143 (
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
|
(ns mulk.benki.util
(:refer-clojure)
(:use [hiccup core page-helpers]
noir.core))
(def fmt clojure.pprint/cl-format)
(defonce #^:private finished-initializations (atom #{}))
(defmacro do-once [key & body]
`(while (not (@(deref #'finished-initializations) key))
(let [fininit-copy# @(deref #'finished-initializations)]
(when (compare-and-set! (deref #'finished-initializations)
fininit-copy#
(conj fininit-copy# key))
(do ~@body)))))
;; defpartial is just defn + html.
(defpartial layout [title & content]
(html5
[:head [:title title]]
[:body [:h1 title]
content]))
|