         (base-data-fn)
         (assoc-in [:page-data :active] (name (:category-key opts)))
         (dissoc :title :subtitle)
-        (assoc :posts-data posts
+        (assoc :posts-data (or (:posts-data opts) posts)
                :posts-stats (posts-stats posts)
                :content {
                  :title (:title opts)

   :content-fn (constantly nil)})

(defn default-data-content-opts
  []
  (assoc (default-content-opts) :content-fn identity))

(defn default-resource-content-opts
  []
  (assoc (default-content-opts) :content-fn resource-content))

(defn default-markdown-content-opts
  []
  (assoc (default-content-opts) :content-fn markdown-content))

(defn common
  [posts additional-opts]

  ([]
    (base {}))
  ([opts]
    (merge
      {:page-data {
         :base-path "/blog"
         :site-title (:site-title opts)
         :site-description (:site-description opts)
         :index "index"
         :about "about"
         :community "community"
         :archives "archives"
         :categories "categories"
         :tags "tags"
         :authors "authors"
         :active (:category-key opts)}}
      opts)))

(defn default-content-opts
  []
