Allow formatting with CSS

This commit is contained in:
oakes
2014-03-31 22:17:16 -04:00
parent 9f926daec0
commit 4b3d916a0a
2 changed files with 35 additions and 21 deletions

View File

@@ -90,13 +90,15 @@
[groups] [groups]
(for [{:keys [name] :as group} groups] (for [{:keys [name] :as group} groups]
(when (and name (not (.endsWith name "*"))) (when (and name (not (.endsWith name "*")))
(->> (some #(if (= (:name %) (str name "*")) %) groups) (->> groups
(some #(if (= (:name %) (str name "*")) %))
:raw :raw
(assoc group :raw*))))) (assoc group :raw*)))))
(defn process-groups (defn process-groups
[{:keys [groups] :as parsed-file} doc-map] [{:keys [groups] :as parsed-file} doc-map]
(->> (map #(process-group % doc-map) groups) (->> groups
(map #(process-group % doc-map))
merge-groups merge-groups
(remove nil?) (remove nil?)
(assoc parsed-file :groups))) (assoc parsed-file :groups)))

View File

@@ -2,6 +2,15 @@
(:require [clojure.string :as string] (:require [clojure.string :as string]
[hiccup.core :refer :all])) [hiccup.core :refer :all]))
(defn sidebar
[parsed-files]
[:div {:class "sidebar"}
(for [{:keys [ns groups] :as pf} parsed-files]
(cons (when (> (count ns) 0)
[:div {:class "ns"} ns])
(for [g groups]
[:div {:class "name"} (:name g)])))])
(defn param (defn param
[[type-name param-name]] [[type-name param-name]]
(html [:span {} (html [:span {}
@@ -11,27 +20,30 @@
(defn item (defn item
[{:keys [name text type args]}] [{:keys [name text type args]}]
[:div [:div {:class "item"}
[:p [:span {:class "item-name"}
[:b (str name)] (str name)]
" " [:span {:class "item-args"}
(string/join ", " (map param args))] (string/join ", " (map param args))]
(when text [:i text])]) (when text
[:div {:class "item-doc"} text])])
(defn create-from-file (defn content
[{:keys [ns groups] :as parsed-file}] [parsed-files]
[:div [:div {:class "content"}
(when ns [:h1 ns]) (for [{:keys [ns groups] :as pf} parsed-files]
(for [group groups] (for [{:keys [name docstring java] :as g} groups]
[:div (concat [[:div {:class "header"} name]
[:h2 {} (:name group)] [:div {:class "doc"} docstring]]
(:docstring group) (for [[item-name items] java]
(for [[name items] (:java group)] (cons (when (not= name item-name)
[:div [:div {:class "sub-header"} item-name])
(when (not= (:name group) name) (map item items))))))])
[:h3 name])
(map item items)])])])
(defn create (defn create
[parsed-files] [parsed-files]
(html (map create-from-file parsed-files))) (html [:head
[:link {:rel "stylesheet" :type "text/css" :href "style.css"}]]
[:body
(sidebar parsed-files)
(content parsed-files)]))