From d4fd8d01eb9b57f1ee7b770ca24fc5e121b49edc Mon Sep 17 00:00:00 2001 From: Asko Nomm Date: Sun, 10 Apr 2022 05:16:34 +0200 Subject: Fix #9: Underscores in links get rendered into --- src/clarktown/parsers.clj | 12 ++++++------ src/clarktown/parsers/link_and_image.clj | 12 +++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) (limited to 'src/clarktown') diff --git a/src/clarktown/parsers.clj b/src/clarktown/parsers.clj index b5b6132..cd909b3 100644 --- a/src/clarktown/parsers.clj +++ b/src/clarktown/parsers.clj @@ -20,26 +20,26 @@ {:matcher horizontal-line-block/is? :renderers [horizontal-line-block/render]} {:matcher heading-block/is? - :renderers [bold/render + :renderers [link-and-image/render + bold/render italic/render inline-code/render strikethrough/render - link-and-image/render heading-block/render]} {:matcher quote-block/is? :renderers [quote-block/render]} {:matcher code-block/is? :renderers [code-block/render]} {:matcher list-block/is? - :renderers [bold/render + :renderers [link-and-image/render + bold/render italic/render inline-code/render strikethrough/render - link-and-image/render list-block/render]} - {:renderers [bold/render + {:renderers [link-and-image/render + bold/render italic/render inline-code/render strikethrough/render - link-and-image/render paragraph-block/render]}]) diff --git a/src/clarktown/parsers/link_and_image.clj b/src/clarktown/parsers/link_and_image.clj index 3dbbac7..fb8ad31 100644 --- a/src/clarktown/parsers/link_and_image.clj +++ b/src/clarktown/parsers/link_and_image.clj @@ -3,18 +3,24 @@ [clojure.string :as string])) +(defn encode-href + [href] + (-> href + (string/replace "_" "_"))) + + (defn render "Renders all occurring links and images." [block _] (loop [block block - matches (-> (re-seq #"\!?\[(\w+( \w+|\.|\,)*)\]\((.*?)\)" block) + matches (-> (re-seq #"\!?\[(\w+( \w+)*)\]\((.*?)\)" block) distinct)] (if (empty? matches) block (let [[whole-match label _ href] (first matches) image? (string/starts-with? whole-match "!") - image (str "\""") - link (str "" label "")] + image (str "\""") + link (str "" label "")] (recur (if image? (string/replace block whole-match image) (string/replace block whole-match link)) -- cgit v1.2.3