   (let [pods    (wrap-pool (pod/pod-pool (boot/get-env)))
         tmp     (boot/tmp-dir!)
         options (merge +render-defaults+ *opts*)]
-  (if (not (test/function? renderer))
-    (u/fail "render task :renderer option should resolve to the function\n")
     (boot/with-pre-wrap fileset
       (let [pod   (pods fileset)
             files (vals (get-perun-meta fileset))]

                                    (str (:filename file) ".html")))]
            (perun/create-file tmp page-filepath html)))
        (u/info "Render all pages\n")
        (commit fileset tmp))))))

(def ^:private +collection-defaults+
  {:out-dir "public"

   s sortby     SORTBY     code "Sort by function"
   c comparator COMPARATOR code "Sort by comparator function"
   p page       PAGE       str  "Collection result page path"]
  (let [pods      (wrap-pool (pod/pod-pool (boot/get-env)))
        tmp       (boot/tmp-dir!)
        options   (merge +collection-defaults+ *opts*)]
    (cond (not (test/function? (:comparator options)))
              (u/fail "collection task :comparator option should be a function\n")
          (not (test/function? (:filterer options)))
              (u/fail "collection task :filterer option should be a function\n")
          (not (test/function? (:sortby options)))
              (u/fail "collection task :sortby option should be a function\n")
          :else
            (boot/with-pre-wrap fileset
              (let [pod            (pods fileset)
                    files          (vals (get-perun-meta fileset))
                    filtered-files (filter (:filterer options) files)
                    sorted-files   (vec (sort-by (:sortby options) (:comparator options) filtered-files))
                    html           (render-in-pod pod renderer sorted-files)
                    page-filepath  (perun/create-filepath (:out-dir options) page)]
                (perun/create-file tmp page-filepath html)
                (u/info (str "Render collection " page "\n"))
                (commit fileset tmp))))))
