Fix no namespace extracted from .cljx files.
This commit is contained in:
parent
0e43f515a9
commit
319f26693d
2 changed files with 27 additions and 21 deletions
|
@ -36,9 +36,8 @@
|
||||||
[clojure.string :as str])
|
[clojure.string :as str])
|
||||||
(:use [marginalia
|
(:use [marginalia
|
||||||
[html :only (uberdoc-html index-html single-page-html)]
|
[html :only (uberdoc-html index-html single-page-html)]
|
||||||
[parser :only (parse-file)]]
|
[parser :only (parse-file parse-ns)]]
|
||||||
[clojure.tools
|
[clojure.tools
|
||||||
[namespace :only (read-file-ns-decl)]
|
|
||||||
[cli :only (cli)]]))
|
[cli :only (cli)]]))
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,7 +92,7 @@
|
||||||
(->> (io/file dir)
|
(->> (io/file dir)
|
||||||
(file-seq)
|
(file-seq)
|
||||||
(filter (partial processable-file? pred))
|
(filter (partial processable-file? pred))
|
||||||
(sort-by #(->> % read-file-ns-decl second))
|
(sort-by #(->> % parse-ns second))
|
||||||
(map #(.getCanonicalPath %))))
|
(map #(.getCanonicalPath %))))
|
||||||
|
|
||||||
;; ## Project Info Parsing
|
;; ## Project Info Parsing
|
||||||
|
@ -170,15 +169,8 @@
|
||||||
:else (recur (merge-line (first lines) cur-group) groups (rest lines)))))
|
:else (recur (merge-line (first lines) cur-group) groups (rest lines)))))
|
||||||
|
|
||||||
(defn path-to-doc [fn]
|
(defn path-to-doc [fn]
|
||||||
(let [file (java.io.File. fn)
|
{:ns (parse-ns (java.io.File. fn))
|
||||||
ns (-> file
|
:groups (parse-file fn)})
|
||||||
(read-file-ns-decl)
|
|
||||||
(second)
|
|
||||||
(str))
|
|
||||||
ns (if (or (nil? ns) (empty? ns)) (.getName file) ns)
|
|
||||||
groups (parse-file fn)]
|
|
||||||
{:ns ns
|
|
||||||
:groups groups}))
|
|
||||||
|
|
||||||
|
|
||||||
;; ## Output Generation
|
;; ## Output Generation
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
"Provides the parsing facilities for Marginalia."
|
"Provides the parsing facilities for Marginalia."
|
||||||
(:refer-clojure :exclude [replace])
|
(:refer-clojure :exclude [replace])
|
||||||
(:use [clojure [string :only (join replace lower-case)]]
|
(:use [clojure [string :only (join replace lower-case)]]
|
||||||
[cljs.tagged-literals :only [*cljs-data-readers*]]))
|
[cljs.tagged-literals :only [*cljs-data-readers*]]
|
||||||
|
[clojure.tools.namespace :only (read-file-ns-decl)]))
|
||||||
|
|
||||||
|
|
||||||
;; Extracted from clojure.contrib.reflect
|
;; Extracted from clojure.contrib.reflect
|
||||||
|
@ -397,11 +398,24 @@
|
||||||
(def cljx-data-readers {'+clj identity
|
(def cljx-data-readers {'+clj identity
|
||||||
'+cljs identity})
|
'+cljs identity})
|
||||||
|
|
||||||
(defn parse-file [file]
|
(defmacro with-readers-for [file & body]
|
||||||
(let [readers (merge {}
|
`(let [readers# (merge {}
|
||||||
(when (cljs-file? file) *cljs-data-readers*)
|
(when (cljs-file? ~file) *cljs-data-readers*)
|
||||||
(when (cljx-file? file) cljx-data-readers)
|
(when (cljx-file? ~file) cljx-data-readers)
|
||||||
default-data-readers)]
|
default-data-readers)]
|
||||||
(binding [*data-readers* readers
|
(binding [*data-readers* readers#]
|
||||||
*comments-enabled* (atom true)]
|
~@body)))
|
||||||
(parse (slurp file)))))
|
|
||||||
|
(defn parse-file [fn]
|
||||||
|
(with-readers-for fn
|
||||||
|
(binding [*comments-enabled* (atom true)]
|
||||||
|
(parse (slurp fn)))))
|
||||||
|
|
||||||
|
(defn parse-ns [file]
|
||||||
|
(let [filename (.getName file)]
|
||||||
|
(with-readers-for filename
|
||||||
|
(or (not-empty (-> file
|
||||||
|
(read-file-ns-decl)
|
||||||
|
(second)
|
||||||
|
(str)))
|
||||||
|
filename))))
|
Loading…
Reference in a new issue