website.clj
website.git ยท Tickets
website.git > main > 40e2b5d > files / src / dev / grahp / website.clj
(ns dev.grahp.website
(:require
[clojure.spec.alpha :as s]
[dev.grahp.website.path :as path]))
(defmacro spec
([k s] `(s/def ~k ~s))
([k doc s] `(s/def ~k (vary-meta (s/spec ~s)
assoc :doc ~doc))))
(defmacro schema
([keys] `(s/keys :opt [~@keys])))
(spec ::path path/path?)
(spec ::page (schema [::path]))