From 17f3b8c45ab395b5fe03d2358defe01f38ee727d Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Sat, 4 Dec 2021 17:34:04 -0300 Subject: Add link and image renderer --- src/clarktown/parsers/link_and_image.clj | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/clarktown/parsers/link_and_image.clj (limited to 'src/clarktown/parsers') diff --git a/src/clarktown/parsers/link_and_image.clj b/src/clarktown/parsers/link_and_image.clj new file mode 100644 index 0000000..5ef8857 --- /dev/null +++ b/src/clarktown/parsers/link_and_image.clj @@ -0,0 +1,21 @@ +(ns clarktown.parsers.link-and-image + (:require + [clojure.string :as string])) + + +(defn render + "Renders all occuring links and images." + [block] + (loop [block block + matches (-> (re-seq #"\!?\[(.*?)\]\((.*?)\)" block) + distinct)] + (if (empty? matches) + block + (let [[whole-match label href] (first matches) + image? (string/starts-with? whole-match "!") + image (str "\""") + link (str "" label "")] + (recur (if image? + (string/replace block whole-match image) + (string/replace block whole-match link)) + (drop 1 matches)))))) -- cgit v1.2.3