blob: fd2620304b951502c9c83a888de456628379d885 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(ns mf2clj.core
(:require [clojure.java.io :as io]
[clojure.walk :refer [keywordize-keys]]
[cheshire.core :as json])
(:import [org.extism.sdk.chicory Manifest ManifestWasm Plugin]
[java.nio.charset StandardCharsets]))
(defn- manifest-from-wasm [wasm]
(Manifest/ofWasms (into-array ManifestWasm [wasm])))
(def plugin
(-> "mf2go.wasm" io/resource io/input-stream .readAllBytes
ManifestWasm/fromBytes .build
manifest-from-wasm .build
Plugin/ofManifest .build))
(defn parse [html-string]
(let [charset StandardCharsets/UTF_8
html-bytes (.getBytes html-string charset)]
(-> (.call plugin "parse" html-bytes)
(String. charset)
json/parse-string
keywordize-keys)))
|