From 58828802e96761c6f23ff906c25bf1b89039c098 Mon Sep 17 00:00:00 2001 From: oakes Date: Sun, 30 Mar 2014 21:48:55 -0400 Subject: [PATCH] Improve formatting --- doclet/src/clojure/play_clj_doclet/core.clj | 11 ++----- doclet/src/clojure/play_clj_doclet/html.clj | 32 ++++++++++++++++----- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/doclet/src/clojure/play_clj_doclet/core.clj b/doclet/src/clojure/play_clj_doclet/core.clj index 622b17a..1085d55 100644 --- a/doclet/src/clojure/play_clj_doclet/core.clj +++ b/doclet/src/clojure/play_clj_doclet/core.clj @@ -8,13 +8,6 @@ (def targets (-> "targets.edn" io/resource slurp edn/read-string)) -(defn camel->keyword - [s] - (->> (string/split (string/replace s "_" "-") #"(?<=[a-z])(?=[A-Z])") - (map string/lower-case) - (string/join "-") - keyword)) - (defn parse-param [^Parameter p] [(.typeName p) (.name p)]) @@ -28,7 +21,7 @@ (subs (.name d) (+ 1 (.lastIndexOf (.name d) "."))) :else (.name d)) - camel->keyword) + html/camel->keyword) (.commentText d) (when (isa? (type d) ExecutableMemberDoc) (->> d .parameters (map parse-param) vec))]) @@ -60,7 +53,7 @@ (defn save [doc-map] (->> doc-map pr-str (spit (io/file "uberdoc.edn"))) - (->> doc-map html/create-html (spit (io/file "uberdoc.html")))) + (->> doc-map html/create (spit (io/file "uberdoc.html")))) (defn parse [^RootDoc root] diff --git a/doclet/src/clojure/play_clj_doclet/html.clj b/doclet/src/clojure/play_clj_doclet/html.clj index 4685dfc..d6b0a01 100644 --- a/doclet/src/clojure/play_clj_doclet/html.clj +++ b/doclet/src/clojure/play_clj_doclet/html.clj @@ -1,18 +1,36 @@ (ns play-clj-doclet.html - (:require [hiccup.core :refer :all])) + (:require [clojure.string :as string] + [hiccup.core :refer :all])) -(defn create-item +(defn camel->keyword + [s] + (->> (string/split (string/replace s "_" "-") #"(?<=[a-z])(?=[A-Z])") + (map string/lower-case) + (string/join "-") + keyword)) + +(defn param + [[type-name param-name]] + (html [:span {} + [:span {:class "type-name"} "^" type-name] + " " + (-> param-name camel->keyword name)])) + +(defn item [[name text params]] [:div - [:h3 (str name)] + [:p + [:b (str name)] + " " + (string/join ", " (map param params))] [:i text]]) -(defn create-section +(defn section [[clj-name items]] [:div [:h2 {} clj-name] - (map create-item items)]) + (map item (sort-by first items))]) -(defn create-html +(defn create [doc-map] - (html (map create-section doc-map))) + (html (map section doc-map)))