Merge pull request #134 from fogus/master

Added support for prasing Lein project.clj files and files without ns decls
This commit is contained in:
Ben Bader 2014-11-28 22:06:51 -08:00
commit a21cd992c4
2 changed files with 11 additions and 6 deletions

View file

@ -1,4 +1,4 @@
(defproject marginalia "0.8.0"
(defproject marginalia "0.8.1-SNAPSHOT"
:description "lightweight literate programming for clojure -- inspired by [docco](http://jashkenas.github.com/docco/)"
;; :main marginalia.main
:dependencies

View file

@ -170,10 +170,12 @@
:else (recur (merge-line (first lines) cur-group) groups (rest lines)))))
(defn path-to-doc [fn]
(let [ns (-> (java.io.File. fn)
(let [file (java.io.File. fn)
ns (-> file
(read-file-ns-decl)
(second)
(str))
ns (if (or (nil? ns) (empty? ns)) (.getName file) ns)
groups (parse-file fn)]
{:ns ns
:groups groups}))
@ -247,7 +249,7 @@
If no source files are found, complain with a usage message."
[args & [project]]
(let [[{:keys [dir file name version desc deps css js multi]} files help]
(let [[{:keys [dir file name version desc deps css js multi leiningen]} files help]
(cli args
["-d" "--dir" "Directory into which the documentation will be written" :default "./docs"]
["-f" "--file" "File into which the documentation will be written" :default "uberdoc.html"]
@ -260,8 +262,10 @@
If not given will be taken from project.clj."]
["-j" "--js" "Additional javascript resources <resource1>;<resource2>;...
If not given will be taken from project.clj"]
["-m" "--multi" "Generate each namespace documentation as a separate file" :flag true])
sources (distinct (format-sources (seq files)))]
["-m" "--multi" "Generate each namespace documentation as a separate file" :flag true]
["-l" "--leiningen" "Generate the documentation for a Leiningen project file."])
sources (distinct (format-sources (seq files)))
sources (if leiningen (cons leiningen sources) sources)]
(if-not sources
(do
(println "Wrong number of arguments passed to Marginalia.")
@ -273,7 +277,8 @@
choose #(or %1 %2)
marg-opts (merge-with choose
{:css (when css (.split css ";"))
:javascript (when js (.split js ";"))}
:javascript (when js (.split js ";"))
:leiningen leiningen}
(:marginalia project-clj))
opts (merge-with choose
{:name name