diff options
| author | Asko Nomm <asko@bien.ee> | 2022-04-10 18:24:19 +0200 |
|---|---|---|
| committer | Asko Nomm <asko@bien.ee> | 2022-04-10 18:24:19 +0200 |
| commit | c5e7965fec017d2a51ae42ddd781d472fc89bff8 (patch) | |
| tree | 69c50b9f4e575eaa6995337135373eb352b931a9 /src/clarktown/parsers/list_block.clj | |
| parent | 187bfeaeb559e8d17f63aef46deb1b2c28ee9829 (diff) | |
Close #11: Support dash unordered lists
Diffstat (limited to 'src/clarktown/parsers/list_block.clj')
| -rw-r--r-- | src/clarktown/parsers/list_block.clj | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/clarktown/parsers/list_block.clj b/src/clarktown/parsers/list_block.clj index 437f780..52f955f 100644 --- a/src/clarktown/parsers/list_block.clj +++ b/src/clarktown/parsers/list_block.clj @@ -7,7 +7,7 @@ "Determines whether we're dealing with a list block or not." [block] (->> (string/trim block) - (re-matches #"(?s)^(\d\.\s|\*{1}\s).*$"))) + (re-matches #"(?s)^(\d\.\s|\*{1}\s|\-{1}\s).*$"))) (defn string->indent-n @@ -97,13 +97,21 @@ (loop [result "" inner-items items] (if (empty? inner-items) - (if (string/starts-with? (:value (first items)) "*") + (if (or (string/starts-with? (:value (first items)) "*") + (string/starts-with? (:value (first items)) "-")) (str "<ul>" result "</ul>") (str "<ol>" result "</ol>")) (let [inner-item (first inner-items) - value (if (string/starts-with? (:value inner-item) "*") + value (cond + ; * unordered list + (string/starts-with? (:value inner-item) "*") (-> (string/replace-first (:value inner-item) "*" "") string/trim) + ; - unordered list + (string/starts-with? (:value inner-item) "-") + (-> (string/replace-first (:value inner-item) "-" "") + string/trim) + :else (-> (string/replace-first (:value inner-item) #"\d\." "") string/trim))] (recur (if (:items inner-item) |
