       (render-main-glossary args)
       (render-main-word-frame args)]])
 
+(defn- render-categories-list-item
+  [{:keys [id name] :as category}]
+  (list-item (link (str "categories/" id "/index.html") name)))
+
 (defn- render-categories-list
   [{:keys [categories] :as args}]
-  (innerpage "overview" "Übersicht" true
-             [(TODO "Kategorieliste")]))
+  (->> categories
+       (into (sorted-set-by (key-comp :name)))
+       (map render-categories-list-item)
+       (ulist)
+       (innerpage "overview" "Übersicht" true)))
 
 (defn render-categories-page
   "Renders the categories main page."

  [{:keys [videos] :as args}]
  (let [video-list (into (sorted-set-by (key-comp :name)) videos)]
    (innerpage "overview" "Übersicht" true
               (ulist (map render-video-list-item video-list)))))

(defn render-videos-page
  "Renders the videos main page."

     [(headline 2 "Kategorien")
      (render-categories-list args)]])

(defn- render-videos-list-item
  "Renders a video link as list item."
  [{:keys [id name] :as video}]
  (list-item (link (str "videos/" id "/index.html") name)))
