From 0e43f515a90645ac64fac3b73814eafc4ddeaca0 Mon Sep 17 00:00:00 2001 From: Martin Bilski Date: Tue, 6 Jan 2015 15:43:13 +0100 Subject: [PATCH] Add support for cljx reader tags #+clj and #+cljs to make it possible to generate marginalia docs in projects using cljx to target Clojure and ClojureScript. --- src/marginalia/parser.clj | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/marginalia/parser.clj b/src/marginalia/parser.clj index 709d5ae..297ffb5 100644 --- a/src/marginalia/parser.clj +++ b/src/marginalia/parser.clj @@ -391,10 +391,17 @@ (defn cljs-file? [filepath] (.endsWith (lower-case filepath) "cljs")) +(defn cljx-file? [filepath] + (.endsWith (lower-case filepath) "cljx")) + +(def cljx-data-readers {'+clj identity + '+cljs identity}) + (defn parse-file [file] - (let [readers (if (cljs-file? file) - (->> default-data-readers (merge *cljs-data-readers*)) - default-data-readers)] + (let [readers (merge {} + (when (cljs-file? file) *cljs-data-readers*) + (when (cljx-file? file) cljx-data-readers) + default-data-readers)] (binding [*data-readers* readers *comments-enabled* (atom true)] (parse (slurp file)))))