File tree Expand file tree Collapse file tree 4 files changed +20
-14
lines changed
Expand file tree Collapse file tree 4 files changed +20
-14
lines changed Original file line number Diff line number Diff line change 22 :deps {org.clojure/clojure {:mvn/version " 1.11.1" }
33 org.clojure/java.classpath {:mvn/version " 1.0.0" }
44 babashka/fs {:mvn/version " 0.5.22" }
5+ org.babashka/http-client {:mvn/version " 0.4.23" }
56 borkdude/edamame {:mvn/version " 1.4.28" }
67 weavejester/dependency {:mvn/version " 0.2.1" }
78 com.nextjournal/beholder {:mvn/version " 1.0.3" }
Original file line number Diff line number Diff line change 11; ; # Tables 🔢
22(ns ^:nextjournal.clerk/no-cache viewers.table
3- (:require [clojure.data.csv :as csv]
3+ (:require [babashka.http-client :as http]
4+ [clojure.data.csv :as csv]
45 [clojure.java.io :as io]
56 [clojure.string :as str]
7+ [honey.sql :as sql]
68 [next.jdbc :as jdbc]
79 [nextjournal.clerk :as clerk]
8- [nextjournal.clerk.viewer :as v]
9- [honey.sql :as sql]))
10+ [nextjournal.clerk.viewer :as v]))
1011
1112; ; ## Empty table
1213
6061 (-> (mapv (fn [char] (clojure.string/join " " (repeat 20 char)))
6162 (map char (range 97 127 ))))]})
6263
64+ (defn read-image [url]
65+ (javax.imageio.ImageIO/read (:body (http/get url {:as :stream }))))
66+
6367; ; ## Table with images
64- (clerk/table [[1 2 ] [3 (javax.imageio.ImageIO/ read ( java.net.URL. " https://nextjournal.com/data/QmeyvaR3Q5XSwe14ZS6D5WBQGg1zaBaeG3SeyyuUURE2pq?filename=thermos.gif&content-type=image/gif" ) )]])
68+ (clerk/table [[1 2 ] [3 (read-image " https://nextjournal.com/data/QmeyvaR3Q5XSwe14ZS6D5WBQGg1zaBaeG3SeyyuUURE2pq?filename=thermos.gif&content-type=image/gif" )]])
6569
6670; ; ## Table within tables
6771(clerk/table [[1 2 ] [3 (clerk/table [[1 2 ] [3 4 ]])]])
7680(clerk/with-viewers (clerk/add-viewers [(assoc v/image-viewer :render-fn '(fn [blob] [:img {:width " 30px" :height " 30px" :src (nextjournal.clerk.viewer/url-for blob)}]))])
7781 (clerk/table
7882 {:rows (map (juxt identity dec) (range 1 100 ))
79- :head [(javax.imageio.ImageIO/ read ( java.net.URL. " https://upload.wikimedia.org/wikipedia/commons/1/17/Plus_img_364976.png" ) )
80- (javax.imageio.ImageIO/ read ( java.net.URL. " https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/OCR-A_char_Hyphen-Minus.svg/543px-OCR-A_char_Hyphen-Minus.svg.png" ) )]}))
83+ :head [(read-image " https://upload.wikimedia.org/wikipedia/commons/1/17/Plus_img_364976.png" )
84+ (read-image " https://upload.wikimedia.org/wikipedia/commons/thumb/d/df/OCR-A_char_Hyphen-Minus.svg/543px-OCR-A_char_Hyphen-Minus.svg.png" )]}))
8185
8286; ; ## Custom Table Viewers
8387; ; override single table components
Original file line number Diff line number Diff line change 11(ns nextjournal.clerk.builder
22 " Clerk's Static App Builder."
33 (:require [babashka.fs :as fs]
4+ [babashka.http-client :as http]
45 [babashka.process :refer [sh]]
56 [clojure.java.browse :as browse]
67 [clojure.java.io :as io]
169170 :paths (vec (keys path->doc)))))
170171
171172(defn download-text-file [url]
172- (let [client (java.net.http.HttpClient/newHttpClient )
173- request (-> (java.net.http.HttpRequest/newBuilder )
174- (.uri (java.net.URI/create url))
175- (.build ))
176- response (.send client request (java.net.http.HttpResponse$BodyHandlers/ofString ))]
177- (.body response)))
173+ (:body (http/get url)))
178174
179175(defn- node-ssr!
180176 [{:keys [viewer-js state]
Original file line number Diff line number Diff line change 11(ns nextjournal.clerk.viewer
22 (:refer-clojure :exclude [var?])
3- (:require [clojure.datafy :as datafy]
3+ (:require #?(:clj [babashka.http-client :as http])
4+ [clojure.datafy :as datafy]
45 [clojure.pprint :as pprint]
56 [clojure.set :as set]
67 [clojure.string :as str]
616617 (defn read-image [image-or-url]
617618 (ImageIO/read
618619 (if (string? image-or-url)
619- (URL. (cond->> image-or-url (not (.getScheme (URI. image-or-url))) (str " file:" )))
620+ (let [scheme (.getScheme (URI. image-or-url))
621+ http? (when scheme (str/starts-with? scheme " http" ))]
622+ (if http?
623+ (:body (http/get image-or-url {:as :stream }))
624+ (URL. (cond->> image-or-url (not scheme) (str " file:" )))))
620625 image-or-url))))
621626
622627#?(:clj
You can’t perform that action at this time.
0 commit comments