Skip to content

Commit f9fd783

Browse files
committed
Resolve circular dep and avoid requring-resolve
1 parent cc90f90 commit f9fd783

File tree

3 files changed

+26
-28
lines changed

3 files changed

+26
-28
lines changed

src/nextjournal/clerk.clj

+5-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
[nextjournal.clerk.eval :as eval]
1313
[nextjournal.clerk.parser :as parser]
1414
[nextjournal.clerk.viewer :as v]
15-
[nextjournal.clerk.webserver :as webserver]))
15+
[nextjournal.clerk.webserver :as webserver]
16+
[nextjournal.clerk.window :as window]))
1617

1718
(defonce ^:private !show-filter-fn (atom nil))
1819
(defonce ^:private !last-file (atom nil))
@@ -78,9 +79,9 @@
7879
#_(show! "https://raw.githubusercontent.com/nextjournal/clerk-demo/main/notebooks/rule_30.clj")
7980
#_(show! (java.io.StringReader. ";; # In Memory Notebook 👋\n(+ 41 1)"))
8081

81-
(defn window! "todo" [& args] (apply (requiring-resolve 'nextjournal.clerk.window/open!) args))
82-
(defn close-window! "todo" [id] ((requiring-resolve 'nextjournal.clerk.window/close!) id))
83-
(defn close-all-windows! "todo" [] ((requiring-resolve 'nextjournal.clerk.window/close-all!)))
82+
(defn window! [& args] (apply window/open! args))
83+
(defn close-window! [id] (window/close! id))
84+
(defn close-all-windows! [] (window/close-all!))
8485

8586
(defn recompute!
8687
"Recomputes the currently visible doc, without parsing it."

src/nextjournal/clerk/tap.clj

+16-18
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
;; # 🚰 Tap Inspector
22
(ns nextjournal.clerk.tap
33
{:nextjournal.clerk/visibility {:code :hide :result :hide}}
4-
(:require [clojure.core :as core]
5-
[nextjournal.clerk :as clerk]
6-
[nextjournal.clerk.viewer :as v])
4+
(:require [nextjournal.clerk.viewer :as v])
75
(:import (java.time Instant LocalTime ZoneId)))
86

97
(defn inst->local-time-str [inst] (str (LocalTime/ofInstant inst (ZoneId/systemDefault))))
@@ -25,18 +23,18 @@
2523
[:button.text-xs.rounded-full.px-3.py-1.border-2.font-sans.hover:bg-slate-100.cursor-pointer
2624
{:on-click #(nextjournal.clerk.render/clerk-eval `(reset-taps!))} "Clear"]]))))
2725

28-
^{::clerk/sync true ::clerk/viewer switch-view ::clerk/visibility {:result :show}}
26+
^{:nextjournal.clerk/sync true :nextjournal.clerk/viewer switch-view :nextjournal.clerk/visibility {:result :show}}
2927
(defonce !view (atom :stream))
3028

3129
(defonce !taps (atom ()))
3230

3331
(defn reset-taps! []
3432
(reset! !taps ())
35-
(clerk/recompute!))
33+
((resolve 'nextjournal.clerk/recompute!)))
3634

3735
(defn tapped [x]
3836
(swap! !taps conj (record-tap x))
39-
(clerk/recompute!))
37+
((resolve 'nextjournal.clerk/recompute!)))
4038

4139
(defonce tap-setup
4240
(add-tap (fn [x] ((resolve `tapped) x))))
@@ -58,25 +56,25 @@
5856
(update-in [:nextjournal/value ::tapped-at] inst->local-time-str)))})
5957

6058

61-
^{::clerk/visibility {:result :show}
62-
::clerk/viewers (v/add-viewers [tap-viewer])}
63-
(clerk/fragment (cond->> @!taps
64-
(= :latest @!view) (take 1)))
59+
^{:nextjournal.clerk/visibility {:result :show}
60+
:nextjournal.clerk/viewers (v/add-viewers [tap-viewer])}
61+
(v/fragment (cond->> @!taps
62+
(= :latest @!view) (take 1)))
6563

6664
(comment
6765
(last @!taps)
6866
(dotimes [_i 5]
6967
(tap> (rand-int 1000)))
7068
(tap> (shuffle (range (+ 20 (rand-int 200)))))
71-
(tap> (clerk/md "> The purpose of visualization is **insight**, not pictures."))
69+
(tap> (v/md "> The purpose of visualization is **insight**, not pictures."))
7270
(tap> (v/plotly {:data [{:z [[1 2 3] [3 2 1]] :type "surface"}]}))
73-
(tap> (clerk/html {::clerk/width :full} [:h1.w-full.border-2.border-amber-500.bg-amber-500.h-10]))
74-
(tap> (clerk/table {::clerk/width :full} [[1 2] [3 4]]))
75-
(tap> (clerk/plotly {::clerk/width :full} {:data [{:y [3 1 2]}]}))
76-
(tap> (clerk/image "trees.png"))
71+
(tap> (v/html {:nextjournal.clerk/width :full} [:h1.w-full.border-2.border-amber-500.bg-amber-500.h-10]))
72+
(tap> (v/table {:nextjournal.clerk/width :full} [[1 2] [3 4]]))
73+
(tap> (v/plotly {:nextjournal.clerk/width :full} {:data [{:y [3 1 2]}]}))
74+
(tap> (v/image "trees.png"))
7775
(do (require 'rule-30)
78-
(tap> (clerk/with-viewers (clerk/add-viewers rule-30/viewers) rule-30/rule-30)))
79-
(tap> (clerk/with-viewers (clerk/add-viewers rule-30/viewers) rule-30/board))
80-
(tap> (clerk/html [:h1 "Fin. 👋"]))
76+
(tap> (v/with-viewers (v/add-viewers rule-30/viewers) rule-30/rule-30)))
77+
(tap> (v/with-viewers (v/add-viewers rule-30/viewers) rule-30/board))
78+
(tap> (v/html [:h1 "Fin. 👋"]))
8179
(tap> (reduce (fn [acc _] (vector acc)) :fin (range 200)))
8280
(reset-taps!))

src/nextjournal/clerk/window.clj

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
(ns nextjournal.clerk.window
2-
(:require [nextjournal.clerk :as clerk]
3-
[nextjournal.clerk.tap :as tap]
2+
(:require [nextjournal.clerk.tap :as tap]
43
[nextjournal.clerk.viewer :as v]
54
[nextjournal.clerk.webserver :as webserver]))
65

76
(declare open!)
87
(defonce !taps-view (atom :stream))
9-
(defn set-view! [x] (reset! !taps-view x) (open! ::clerk/taps))
8+
(defn set-view! [x] (reset! !taps-view x) (open! :nextjournal.clerk/taps))
109

1110
(def taps-viewer
1211
{:render-fn '(fn [taps {:as opts :keys [taps-view]}]
@@ -49,18 +48,18 @@
4948
:nextjournal/fetch-opts {:blob-id (str id)}
5049
:nextjournal/blob-id (str id)}))))
5150

52-
(add-watch tap/!taps ::tap-watcher (fn [_ _ _ _] (open! ::clerk/taps)))
51+
(add-watch tap/!taps ::tap-watcher (fn [_ _ _ _] (open! :nextjournal.clerk/taps)))
5352

5453
(defn close! [id] (webserver/close-window! id))
5554

5655
(defn close-all! []
5756
(doseq [w (keys @webserver/!windows)]
5857
(close! w)))
5958

60-
#_(open! ::clerk/taps)
59+
#_(open! :nextjournal.clerk/taps)
6160
#_(doseq [f @@(resolve 'clojure.core/tapset)] (remove-tap f))
6261
#_(tap> (range 30))
63-
#_(close! ::clerk/taps)
62+
#_(close! :nextjournal.clerk/taps)
6463
#_(tap> (v/plotly {:data [{:y [1 2 3]}]}))
6564
#_(tap> (v/table [[1 2] [3 4]]))
6665
#_(open! ::my-window {:title "🔭 Rear Window"} (v/table [[1 2] [3 4]]))

0 commit comments

Comments
 (0)