From 3770175783d53f9008d81dca8b19741b218d925f Mon Sep 17 00:00:00 2001 From: Asko Nomm Date: Tue, 5 Apr 2022 01:38:03 +0200 Subject: bump --- src/clarktown/parsers/ordered_list_block.clj | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/clarktown/parsers/ordered_list_block.clj (limited to 'src/clarktown/parsers/ordered_list_block.clj') diff --git a/src/clarktown/parsers/ordered_list_block.clj b/src/clarktown/parsers/ordered_list_block.clj new file mode 100644 index 0000000..4dfaf38 --- /dev/null +++ b/src/clarktown/parsers/ordered_list_block.clj @@ -0,0 +1,25 @@ +(ns clarktown.parsers.ordered-list-block + (:require + [clojure.string :as string] + [clarktown.parser :as parser])) + + +(defn is? + "Determines whether we're dealing with a list block or not." + [block] + (re-matches #"(?s)^\d\..*$" (string/trim block))) + + +(defn render + "Renders the ordered list block" + [block parsers] + (loop [result "" + items (string/split-lines block)] + (if (empty? items) + (str "
    " result "
") + (let [value (-> (first items) + (string/replace-first #"\d\." "") + string/trim + (parser/parse parsers))] + (recur (str result "
  • " value "
  • ") + (drop 1 items)))))) -- cgit v1.2.3