Skip to content

Commit 4448306

Browse files
committed
Fix render of links on reload (correct eval order)
1 parent a7dd07f commit 4448306

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

src/nextjournal/clerk/doc.clj

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,29 @@
66
[nextjournal.clerk.viewer :as viewer]
77
[nextjournal.markdown.transform :as md.transform]))
88

9+
(clerk/eval-cljs
10+
'(defn handle-click [{:keys [label var ns]} e]
11+
(.stopPropagation e)
12+
(.preventDefault e)
13+
(when (resolve '!active-ns)
14+
(let [scroll-to-target (fn []
15+
(if var
16+
(when-some [el (js/document.getElementById (name var))]
17+
(.scrollIntoView el))
18+
(when ns
19+
(when-some [page (js/document.getElementById "main-column")]
20+
(.scroll page (applied-science.js-interop/obj :top 0))))))]
21+
(when ns
22+
(if (not= @!active-ns (str ns))
23+
(do (reset! !active-ns (str ns))
24+
;; TODO: smarter
25+
(js/setTimeout scroll-to-target 500))
26+
(scroll-to-target)))))))
27+
28+
(clerk/eval-cljs
29+
'(defn render-link [{:as info :keys [label]} _]
30+
[:a {:href "#" :on-click (partial handle-click info)} label]))
31+
932
(def render-input
1033
'(fn [!query]
1134
(nextjournal.clerk.render.hooks/use-effect
@@ -203,30 +226,6 @@
203226
(not (qualified-symbol? (symbol link))))
204227
(str @!active-ns "/"))))
205228

206-
^::clerk/no-cache
207-
(clerk/eval-cljs
208-
'(defn handle-click [{:keys [label var ns]} e]
209-
(js/console.log :handle-click/ns ns :var var)
210-
(.stopPropagation e) (.preventDefault e)
211-
(when (resolve '!active-ns)
212-
(let [scroll-to-target (fn []
213-
(if var
214-
(when-some [el (js/document.getElementById (name var))]
215-
(.scrollIntoView el))
216-
(when ns
217-
(when-some [page (js/document.getElementById "main-column")]
218-
(.scroll page (applied-science.js-interop/obj :top 0))))))]
219-
(when ns
220-
(if (not= @!active-ns (str ns))
221-
(do (reset! !active-ns (str ns))
222-
(js/setTimeout scroll-to-target 500)) ;; TODO: smarter
223-
(scroll-to-target)))))))
224-
225-
^::clerk/no-cache
226-
(clerk/eval-cljs
227-
'(defn render-link [{:as info :keys [label]} _]
228-
[:a {:href "#" :on-click (partial handle-click info)} label]))
229-
230229
(def get-info
231230
(comp clerk/mark-presented
232231
(fn [wv]
@@ -242,10 +241,10 @@
242241

243242
(def custom-markdown-viewers
244243
[{:name :nextjournal.markdown/internal-link
245-
:render-fn 'render-link
244+
:render-fn 'nextjournal.clerk.doc/render-link
246245
:transform-fn get-info}
247246
{:name :nextjournal.markdown/link
248-
:render-fn 'render-link
247+
:render-fn 'nextjournal.clerk.doc/render-link
249248
:transform-fn get-info}])
250249

251250
(def markdown-viewer

0 commit comments

Comments
 (0)