diff --git a/notebooks/paren_soup.clj b/notebooks/paren_soup.clj index 75486ea4a..20f7e1c2f 100644 --- a/notebooks/paren_soup.clj +++ b/notebooks/paren_soup.clj @@ -30,6 +30,15 @@ {1 [2] 3 [4]} +{:a "a\nb"} + +[1 "a\nb"] + +[[1 "a\nb"]] + +{:a 1 :b [[3 4 "aaaa\nbbb\nccc\ndd\ne"]]} + +{:a 1 :b [[3 4 (apply str (cons "a\n" (repeat 80 "b")))]]} #_(nextjournal.clerk/build-static-app! {:paths ["notebooks/paren_soup.clj"]}) #_(nextjournal.clerk/show! "notebooks/paren_soup.clj") diff --git a/resources/viewer-js-hash b/resources/viewer-js-hash index 91584fd85..b29244da8 100644 --- a/resources/viewer-js-hash +++ b/resources/viewer-js-hash @@ -1 +1 @@ -8GnZqWmiQN3odN9v6Rdb9ccfy2T \ No newline at end of file +3DEHoEomGh3QJLoJ4WjRdcbuf36v \ No newline at end of file diff --git a/src/nextjournal/clerk/render.cljs b/src/nextjournal/clerk/render.cljs index 0db73c39b..0259896a0 100644 --- a/src/nextjournal/clerk/render.cljs +++ b/src/nextjournal/clerk/render.cljs @@ -414,16 +414,15 @@ (if (string? s) [s] s)))) (defn render-quoted-string [s {:as opts :keys [path viewer !expanded-at] :or {path []}}] - (let [{:keys [closing-paren]} viewer] - [:span.cmt-string.inspected-value.inline-flex - [:span + (let [{:keys [opening-paren closing-paren]} viewer] + [:span.inspected-value.inline-flex + [:span.cmt-string (if (some #(and (string? %) (str/includes? % "\n")) (if (string? s) [s] s)) - [expand-button !expanded-at "\"" path] - [:span "\""])] + [expand-button !expanded-at opening-paren path] + [:span opening-paren])] [:div - (viewer/->value (render-string s opts)) - "\"" - closing-paren]])) + [:span.cmt-string (viewer/->value (render-string s opts)) (first closing-paren)] + (when (list? closing-paren) (into [:<>] (rest closing-paren)))]])) (defn render-number [num] [:span.cmt-number.inspected-value diff --git a/src/nextjournal/clerk/viewer.cljc b/src/nextjournal/clerk/viewer.cljc index 94981ccb9..c0d71841c 100644 --- a/src/nextjournal/clerk/viewer.cljc +++ b/src/nextjournal/clerk/viewer.cljc @@ -659,7 +659,11 @@ {:pred char? :render-fn '(fn [c] [:span.cmt-string.inspected-value "\\" c])}) (def string-viewer - {:pred string? :render-fn 'nextjournal.clerk.render/render-quoted-string :page-size 80}) + {:pred string? + :render-fn 'nextjournal.clerk.render/render-quoted-string + :opening-paren "\"" + :closing-paren "\"" + :page-size 80}) (def number-viewer {:pred number? :render-fn 'nextjournal.clerk.render/render-number})