-
Notifications
You must be signed in to change notification settings - Fork 97
/
doc.clj
29 lines (26 loc) · 1.04 KB
/
doc.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(ns leiningen.doc
(:refer-clojure :exclude [doc]))
(defn- eval-in-project
"Support eval-in-project in both Leiningen 1.x and 2.x."
[project form init]
(let [[eip two?] (or (try (require 'leiningen.core.eval)
[(resolve 'leiningen.core.eval/eval-in-project)
true]
(catch java.io.FileNotFoundException _))
(try (require 'leiningen.compile)
[(resolve 'leiningen.compile/eval-in-project)]
(catch java.io.FileNotFoundException _)))]
(if two?
(eip project form init)
(eip project form nil nil init))))
(defn- get-options [project]
(-> project
(select-keys [:name :version :description])
(merge (get project :codox))))
(defn doc
"Generate API documentation from source code."
[project]
(eval-in-project
(update-in project [:dependencies] conj ['codox/codox.core "0.6.1"])
`(codox.main/generate-docs '~(get-options project))
`(require 'codox.main)))