1
0
Fork 0
website/build.boot

47 lines
1.9 KiB
Clojure

(set-env!
:source-paths #{"src"}
:resource-paths #{"content"}
:dependencies '[[perun "0.5.0-SNAPSHOT" :scope "test"]
[org.clojure/clojurescript "1.11.4"]
[adzerk/boot-cljs "2.1.5" :scope "test"]
[hiccup "2.0.0-alpha2" :exclusions [org.clojure/clojure]]
[garden "1.3.10"]
[org.martinklepsch/boot-garden "1.3.2-0"]
[pandeiro/boot-http "0.8.3" :exclusions [org.clojure/clojure]]])
(require '[io.perun :as perun]
'[adzerk.boot-cljs :refer [cljs]]
'[pandeiro.boot-http :refer [serve]]
'[org.martinklepsch.boot-garden :refer [garden]]
'[site.core])
(deftask build [o optimize? bool "Optimize css & js output"]
(comp (perun/draft)
(perun/pandoc :cmd-opts ["-f" "markdown" "-t" "html5"])
(sift :to-resource #{#"^img/(.*)"})
(sift :to-resource #{#"^extra/(.*)"})
(sift :to-resource #{#"^CNAME"})
(garden :styles-var 'site.styles/base :output-to "main.css" :pretty-print (if optimize? false true))
;(cljs :optimizations (if optimize? :advanced :none) :source-map (if optimize? false true))
(perun/ttr) ;; Time to read
(perun/word-count)
(perun/render :renderer 'site.core/page)
(perun/permalink :filterer (fn [p] (not= (:slug p) "index")))
(perun/collection :renderer 'site.core/page-blog
:filterer (fn [p] (:title p)) ; don't list anything without a title
:sortby :date
:page "blog/index.html" :out-dir "")
(perun/sitemap :filename "sitemap.xml")
(sift :move {#"^public/(.*)" "$1"}))) ; perun/render ignores out-dir for some reason
(deftask dev []
(comp (watch)
(build :optimize? false)
(serve :port 8000 :resource-root "")))
(deftask publish []
(comp (build :optimize? true)
(target :dir #{"docs"})))