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

@@ -2,6 +2,15 @@
(:require [clojure.string :as string]
[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
[[type-name param-name]]
(html [:span {}
@@ -11,27 +20,30 @@
(defn item
[{:keys [name text type args]}]
[:div
[:p
[:b (str name)]
" "
[:div {:class "item"}
[:span {:class "item-name"}
(str name)]
[:span {:class "item-args"}
(string/join ", " (map param args))]
(when text [:i text])])
(when text
[:div {:class "item-doc"} text])])
(defn create-from-file
[{:keys [ns groups] :as parsed-file}]
[:div
(when ns [:h1 ns])
(for [group groups]
[:div
[:h2 {} (:name group)]
(:docstring group)
(for [[name items] (:java group)]
[:div
(when (not= (:name group) name)
[:h3 name])
(map item items)])])])
(defn content
[parsed-files]
[:div {:class "content"}
(for [{:keys [ns groups] :as pf} parsed-files]
(for [{:keys [name docstring java] :as g} groups]
(concat [[:div {:class "header"} name]
[:div {:class "doc"} docstring]]
(for [[item-name items] java]
(cons (when (not= name item-name)
[:div {:class "sub-header"} item-name])
(map item items))))))])
(defn create
[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)]))