diff --git a/doc/cljdoc.edn b/doc/cljdoc.edn new file mode 100644 index 00000000..a3db2599 --- /dev/null +++ b/doc/cljdoc.edn @@ -0,0 +1,49 @@ +{:cljdoc/include-namespaces-from-dependencies + [metosin/reitit + metosin/reitit-core + metosin/reitit-ring + metosin/reitit-spec + metosin/reitit-schema + metosin/reitit-swagger + metosin/reitit-swagger-ui], + :cljdoc.doc/tree + [["Introduction" {:file "doc/README.md"}] + ["Basics" + {:file "doc/basics/README.md"} + ["Route Syntax" {:file "doc/basics/route_syntax.md"}] + ["Router" {:file "doc/basics/router.md"}] + ["Path-based Routing" {:file "doc/basics/path_based_routing.md"}] + ["Name-based Routing" {:file "doc/basics/name_based_routing.md"}] + ["Route Data" {:file "doc/basics/route_data.md"}] + ["Route Data Validation" + {:file "doc/basics/route_data_validation.md"}] + ["Route Conflicts" {:file "doc/basics/route_conflicts.md"}]] + ["Coercion" + {:file "doc/coercion/README.md"} + ["Coercion Explained" {:file "doc/coercion/coercion.md"}] + ["Plumatic Schema" {:file "doc/coercion/schema_coercion.md"}] + ["Clojure.spec" {:file "doc/coercion/clojure_spec_coercion.md"}] + ["Data-specs" {:file "doc/coercion/data_spec_coercion.md"}]] + ["Advanced" + {:file "doc/advanced/README.md"} + ["Configuring Routers" + {:file "doc/advanced/configuring_routers.md"}] + ["Different Routers" {:file "doc/advanced/different_routers.md"}] + ["Route Validation" {:file "doc/advanced/route_validation.md"}] + ["Dev Workflow" {:file "doc/advanced/dev_workflow.md"}]] + ["Ring" + {:file "doc/ring/README.md"} + ["Ring-router" {:file "doc/ring/ring.md"}] + ["Default handler" {:file "doc/ring/default_handler.md"}] + ["Static Resources" {:file "doc/ring/static.md"}] + ["Dynamic Extensions" {:file "doc/ring/dynamic_extensions.md"}] + ["Data-driven Middleware" + {:file "doc/ring/data_driven_middleware.md"}] + ["Pluggable Coercion" {:file "doc/ring/coercion.md"}] + ["Route Data Validation" + {:file "doc/ring/route_data_validation.md"}] + ["Compiling Middleware" {:file "doc/ring/compiling_middleware.md"}] + ["Swagger Support" {:file "doc/ring/swagger.md"}]] + ["Performance" {:file "doc/performance.md"}] + ["Interceptors (WIP)" {:file "doc/interceptors.md"}] + ["FAQ" {:file "doc/faq.md"}]]} diff --git a/test/clj/cljdoc/reaper.clj b/test/clj/cljdoc/reaper.clj new file mode 100644 index 00000000..5c648aee --- /dev/null +++ b/test/clj/cljdoc/reaper.clj @@ -0,0 +1,31 @@ +(ns cljdoc.reaper + (:require [clojure.java.io :as io] + [clojure.string :as str])) + +(defn reap! [] + (let [docs (->> (for [line (-> (io/file "./doc/SUMMARY.md") (slurp) (str/split #"\n")) + :let [data (-> (re-seq #"^(.*)\* \[(.*)\]\((.*)\)" line) first rest seq)] + :when data] + (let [[indent name file] data + wrap (if (pos? (count indent)) vector identity)] + (wrap [name {:file (str "doc/" file)}]))) + (reduce + (fn [acc data] + (if (vector? (first data)) + (update-in acc [(dec (count acc)) 2] (fnil into []) data) + (conj acc data)) + ) []) + ;; third sweep to flatten chids... + (mapv (fn [[n o c]] (if c (into [n o] c) [n o])))) + data {:cljdoc/include-namespaces-from-dependencies ['metosin/reitit + 'metosin/reitit-core + 'metosin/reitit-ring + 'metosin/reitit-spec + 'metosin/reitit-schema + 'metosin/reitit-swagger + 'metosin/reitit-swagger-ui] + :cljdoc.doc/tree docs}] + (spit "doc/cljdoc.edn" (with-out-str (clojure.pprint/pprint data))))) + +(comment + (reap!))