Merge pull request #56 from kotarak/feature/deleinization

Feature/deleinization
This commit is contained in:
Fogus 2011-09-06 18:09:55 -07:00
commit 09be8386ea
2 changed files with 48 additions and 18 deletions

View file

@ -204,6 +204,12 @@
(defn usage []
(println "marginalia <src1> ... <src-n>"))
(defn split-deps [deps]
(for [d (.split deps ";")
:let [[group artifact version] (.split d ":")]]
[(if (= group artifact) artifact (str group "/" artifact))
version]))
(defn run-marginalia
"Default generation: given a collection of filepaths in a project, find the .clj
files at these paths and, if Clojure source files are found:
@ -220,6 +226,15 @@
"Usage: lein marg <options?> <src1> ... <src-n>\n")
[[dir d "Directory into which the documentation will be written" "./docs"]
[file f "File into which the documentation will be written" "uberdoc.html"]
[name n "Project name - if not given will be taken from project.clj"]
[version v "Project version - if not given will be taken from project.clj"]
[desc D "Project description - if not given will be taken from project.clj"]
[deps a "Project dependencies in the form <group1>:<artifact1>:<version1>;<group2>...
If not given will be taken from project.clj"]
[css c "Additional css resources <resource1>;<resource2>;...
If not given will be taken from project.clj."]
[js j "Additional javascript resources <resource1>;<resource2>;...
If not given will be taken from project.clj"]
src]
(let [sources (format-sources (seq src))]
(if-not sources
@ -227,15 +242,29 @@
(println "Wrong number of arguments passed to marginalia.")
(print-help))
(binding [*docs* dir]
(println "Generating uberdoc for the following source files:")
(doseq [s sources]
(println " " s))
(println)
(ensure-directory! *docs*)
(uberdoc! (str *docs* "/" file) sources (parse-project-file))
(println "Done generating your documentation, please see"
(str *docs* "/" file))
(println ""))))))
(let [project-clj (when (.exists (io/file "project.clj"))
(parse-project-file))
choose #(or %1 %2)
marg-opts (merge-with choose
{:css (when css (.split css ";"))
:javascript (when js (.split js ";"))}
(:marginalia project-clj))
opts (merge-with choose
{:name name
:version version
:description desc
:dependencies (split-deps deps)
:marginalia marg-opts}
project-clj)]
(println "Generating uberdoc for the following source files:")
(doseq [s sources]
(println " " s))
(println)
(ensure-directory! *docs*)
(uberdoc! (str *docs* "/" file) sources opts)
(println "Done generating your documentation, please see"
(str *docs* "/" file))
(println "")))))))
(defn -main
"The main entry point into Marginalia."

View file

@ -110,15 +110,16 @@
"")]))
(defn dependencies-html [deps & header-name]
(let [header-name (or header-name "dependencies")]
(html [:div {:class "dependencies"}
[:h3 header-name]
[:table
(map #(html [:tr
[:td {:class "dep-name"} (str (first %))]
[:td {:class "dotted"} [:hr]]
[:td {:class "dep-version"} (second %)]])
deps)]])))
(when-let [deps (seq deps)]
(let [header-name (or header-name "dependencies")]
(html [:div {:class "dependencies"}
[:h3 header-name]
[:table
(map #(html [:tr
[:td {:class "dep-name"} (str (first %))]
[:td {:class "dotted"} [:hr]]
[:td {:class "dep-version"} (second %)]])
deps)]]))))
(defn cake-plugins-html [tasks]
(when tasks