           [(TextNode. "")]))
     context-map))
 
+(defn if-numeric-handler [[p1 p2 p3 p4 :as params] if-tags else-tags render]
+  (cond
+    (and p4 (not= p1 "not"))
+    (throw (Exception. (str "invalid params for if-tag: " params)))
+
+    (= "not" p1)
+    #(render-if-numeric render true (parse-numeric-params p2 p3 p4) % if-tags else-tags)
+
+    :else
+    #(render-if-numeric render false (parse-numeric-params p1 p2 p3) % if-tags else-tags)))
+
 (defn render-if-any-all [not? op params if-tags else-tags render]
   (let [filters (map compile-filter-body params)]
     (fn [context-map]

        (let [test (op #{true} (map #(if-result (% context-map)) filters))]
          (if not? (not test) test))
        if-tags else-tags))))

(defn if-numeric-handler [[p1 p2 p3 p4 :as params] if-tags else-tags render]
  (cond
    (and p4 (not= p1 "not"))
    (throw (Exception. (str "invalid params for if-tag: " params)))

    (= "not" p1)
    #(render-if-numeric render true (parse-numeric-params p2 p3 p4) % if-tags else-tags)

    :else
    #(render-if-numeric render false (parse-numeric-params p1 p2 p3) % if-tags else-tags)))

(defn if-handler [params tag-content render rdr]
  (let [{if-tags :if else-tags :else} (tag-content rdr :if :else :endif)] 

    (fn [context-map] (render content context-map))))

(defn now-handler [args _ _ _]
  (fn [context-map]
    ((:date @filters) (java.util.Date.) (clojure.string/join " " args))))

(defn comment-handler [args tag-content render rdr]
