   that are required by `render-paths-fn`.
 
   Returns a boot `with-pre-wrap` result"
-  [task-name render-paths-fn options tracer]
+  [{:keys [task-name render-paths-fn options tracer]}]
   (let [tmp (boot/tmp-dir!)]
     (boot/with-pre-wrap fileset
       (let [render-paths (render-paths-fn fileset options)
             global-meta (pm/get-global-meta fileset)
-            new-metadata (render-to-paths task-name render-paths (:renderer options) tmp tracer global-meta)
+            new-metadata (render-to-paths {:task-name task-name
+                                           :data render-paths
+                                           :renderer (:renderer options)
+                                           :tmp tmp
+                                           :tracer tracer
+                                           :global-meta global-meta})
             rm-files (keep #(boot/tmp-get fileset (-> % :entry :path)) (vals render-paths))]
         (perun/report-info task-name "rendered %s pages" (count render-paths))
         (perun/report-debug task-name "removing files" rm-files)

  (let [pod     (create-pod markdown-deps)
        options (merge +markdown-defaults+ *opts*)]
    (content-pre-wrap
     (fn [meta] `(io.perun.markdown/parse-markdown ~meta ~options))
     [".md" ".markdown"]
     ".html"
     :io.perun/markdown
     options
     pod)))

(deftask global-metadata
  "Read global metadata from `perun.base.edn` or configured file.

  All `:entry`s will be returned, with their `:path`s and `:canonical-url`s
  (if there is a valid `:base-url` in global metadata) set, and `tracer`
  added to `io.perun/trace`."
  [{:keys [task-name data renderer tmp tracer global-meta]}]
  (pod/with-call-in @render-pod
    (io.perun.render/update!))
  (doall
