diff --git a/project.clj b/project.clj
index fada044..84c91a4 100644
--- a/project.clj
+++ b/project.clj
@@ -11,5 +11,6 @@
[hiccup "1.0.3"]
[stencil "0.3.2"]
[tinsel "0.4.0" :exclusions [hickory]]
+ [selmer "0.1.8"]
[me.raynes/laser "1.1.1"]
[me.shenfeng/mustache "1.1"]])
diff --git a/src/clojure_template_benchmarks/core.clj b/src/clojure_template_benchmarks/core.clj
index e52e017..9dc6529 100644
--- a/src/clojure_template_benchmarks/core.clj
+++ b/src/clojure_template_benchmarks/core.clj
@@ -6,7 +6,8 @@
[hiccup.core :as hiccup]
[me.raynes.laser :as laser :refer [defdocument]]
[net.cgrand.enlive-html :as enlive]
- [me.shenfeng.mustache :as mustache]))
+ [me.shenfeng.mustache :as mustache]
+ [selmer.parser :as selmer]))
(def bar (str "bar"))
@@ -23,6 +24,23 @@
""))
+(defn simple-selmer-no-fd []
+ (selmer/render "{{bar}}" {:bar bar}))
+
+(defn list-selmer-no-fd [ceil]
+ (selmer/render "
{% for item in items %}- {{item}}
{% endfor %}
"
+ {:items (range 1 ceil)}))
+
+(defn simple-selmer []
+ (selmer/render-file "clojure_template_benchmarks/templates/simple.html" {:bar bar}))
+
+(defn list-selmer [ceil]
+ (selmer/render-file "clojure_template_benchmarks/templates/list.html" {:items (range 1 ceil)}))
+
+(defn list-selmer-template [template ceil]
+ (selmer/render template {:items (range 1 ceil)}))
+
+
(defn simple-hiccup []
(hiccup/html [:span {:class "foo"} bar]))
@@ -52,6 +70,7 @@
(render-file "clojure_template_benchmarks/templates/list.html" {:items (range 1 ceil)}))
+
(defn simple-stencil-no-fd []
(stencil/render-string "{{bar}}" {:bar bar}))
@@ -146,6 +165,22 @@
(with-progress-reporting (quick-bench (list-clabango 1000)))
(println "\n --- \n")
+ (println "\n\n ***** selmer string ***** \n\n")
+ (quick-bench (simple-selmer-no-fd))
+ (println "\n --- \n")
+ (quick-bench (list-selmer-no-fd 50))
+ (println "\n --- \n")
+ (quick-bench (list-selmer-no-fd 1000))
+ (println "\n --- \n")
+
+ (println "\n\n ***** selmer from file template ***** \n\n")
+ (with-progress-reporting (quick-bench (simple-selmer)))
+ (println "\n --- \n")
+ (with-progress-reporting (quick-bench (list-selmer 50)))
+ (println "\n --- \n")
+ (with-progress-reporting (quick-bench (list-selmer 1000)))
+ (println "\n --- \n")
+
(println "\n\n ***** stencil string ***** \n\n")
(with-progress-reporting (quick-bench (simple-stencil-no-fd)))
(println "\n --- \n")
@@ -193,7 +228,7 @@
(println "\n --- \n")
(with-progress-reporting (quick-bench (list-laser-hinted 1000)))
(println "\n --- \n")
-
+
(println "\n\n ***** enlive ***** \n\n")
(with-progress-reporting (quick-bench (simple-enlive)))
(println "\n --- \n")