(ns clarktown.renderers.fenced-code-block (:require [clojure.string :as string])) (defn render "Renders the code block." [block _ _] (let [language (->> block (re-find #"\`\`\`(\w+)") second) lines (string/split-lines block) block* (->> (next lines) (take (- (count lines) 2)) (string/join \newline)) code (-> block* (string/replace #"&" "&") (string/replace #"<" "<") (string/replace #">" ">") string/trim)] (if language (str "
" code "
") (str "
" code "
"))))