         (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)

  ([]
    (base {}))
  ([opts]
    {: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)}}))

(defn default-content-opts
  []

   :content-fn (constantly nil)})

(defn default-data-content-opts
  ([]
    (default-data-content-opts {}))
  ([opts]
    (merge (default-content-opts)
           {:content-fn identity}
           opts)))

(defn default-resource-content-opts
  ([]
    (default-resource-content-opts {}))
  ([opts]
    (merge (default-content-opts)
           {:content-fn resource-content}
           opts)))

(defn default-markdown-content-opts
  ([]
    (default-markdown-content-opts {}))
  ([opts]
    (merge (default-content-opts)
           {:content-fn markdown-content}
           opts)))

(defn common
  [posts additional-opts]
