        "CREATE TABLE searchIndex(id INTEGER PRIMARY KEY, name TEXT, type TEXT, path TEXT)"
        "CREATE UNIQUE INDEX anchor ON searchIndex (name, type, path)")
 
-    ;; insert sections
     (j/insert! sqlite-db :searchIndex
-       {:name "Library API"  :type "Section" :path (resolve-path "README.html#library-api-reference")}
-       {:name "Compiler API" :type "Section" :path (resolve-path "README.html#compiler-api-reference")})
+       ;; insert categories
+       {:name "Library API"  :type "Category" :path (resolve-path "README.html#library-api-reference")}
+       {:name "Compiler API" :type "Category" :path (resolve-path "README.html#compiler-api-reference")}
+
+       ;; insert sections
+       {:name "Overview"                :type "Section" :path (resolve-path "README.html")}
+       {:name "History"                 :type "Section" :path (resolve-path "HISTORY.html")}
+       {:name "Not Ported From Clojure" :type "Section" :path (resolve-path "UNPORTED.html")}
+       )
 
     ;; insert namespaces
     (apply j/insert! sqlite-db :searchIndex

                    (-> result :compiler-api :symbols))
        namespaces (set (map :ns (vals syms)))]

    (mkdirs docset-docs-path)

    ;; copy over offline pages

    (let [refs-path (str docset-docs-path "/" (resolve-path "refs"))]
      (apply j/insert! sqlite-db :searchIndex
        (for [ref-file (list-dir refs-path)]
          (let [encoded-name
                (second
                  (re-find #"github\.com/cljsinfo/api-refs/blob/catalog/refs/(.*)\.md "
                           (slurp ref-file)))
                full-name (decode-fullname encoded-name)
                item (get syms full-name)]
            {:name full-name
