diff options
| author | Asko Nomm <asko@bien.ee> | 2022-04-05 01:38:03 +0200 |
|---|---|---|
| committer | Asko Nomm <asko@bien.ee> | 2022-04-05 01:38:03 +0200 |
| commit | 3770175783d53f9008d81dca8b19741b218d925f (patch) | |
| tree | b56482908485599d23afde3de3a91340eb96fb0a /src/clarktown/parsers | |
| parent | a17bb85a5a7170efc92f110d11cff1cef43e92b2 (diff) | |
bump
Diffstat (limited to 'src/clarktown/parsers')
| -rw-r--r-- | src/clarktown/parsers/bold.clj | 2 | ||||
| -rw-r--r-- | src/clarktown/parsers/code_block.clj | 3 | ||||
| -rw-r--r-- | src/clarktown/parsers/inline_code.clj | 2 | ||||
| -rw-r--r-- | src/clarktown/parsers/italic.clj | 2 | ||||
| -rw-r--r-- | src/clarktown/parsers/link_and_image.clj | 2 | ||||
| -rw-r--r-- | src/clarktown/parsers/ordered_list_block.clj | 25 | ||||
| -rw-r--r-- | src/clarktown/parsers/strikethrough.clj | 2 |
7 files changed, 32 insertions, 6 deletions
diff --git a/src/clarktown/parsers/bold.clj b/src/clarktown/parsers/bold.clj index 296f002..cc209e6 100644 --- a/src/clarktown/parsers/bold.clj +++ b/src/clarktown/parsers/bold.clj @@ -4,7 +4,7 @@ (defn render - "Renders all occuring bold text as bold." + "Renders all occurring bold text as bold." [block _] (loop [block block matches (-> (re-seq #"\*\*.*?\*\*" block) diff --git a/src/clarktown/parsers/code_block.clj b/src/clarktown/parsers/code_block.clj index 9d41ae7..b1699d7 100644 --- a/src/clarktown/parsers/code_block.clj +++ b/src/clarktown/parsers/code_block.clj @@ -4,7 +4,7 @@ (defn is? - "Determines whether or not we're dealing with a code block." + "Determines whether we're dealing with a code block." [block] (and (string/starts-with? block "```") (string/ends-with? block "```"))) @@ -23,6 +23,7 @@ (string/replace n #"<" "<") (string/replace n #">" ">") (string/replace n #"\n" "<br>") + (string/replace n #"\tab" "<tab>") (string/trim n))] (if language (str "<pre class=\"language-" language "\"><code>" code "</code></pre>") diff --git a/src/clarktown/parsers/inline_code.clj b/src/clarktown/parsers/inline_code.clj index c75adf4..1de73bf 100644 --- a/src/clarktown/parsers/inline_code.clj +++ b/src/clarktown/parsers/inline_code.clj @@ -4,7 +4,7 @@ (defn render - "Renders all occuring inline code." + "Renders all occurring inline code." [block _] (loop [block block matches (-> (re-seq #"\`.*?\`" block) diff --git a/src/clarktown/parsers/italic.clj b/src/clarktown/parsers/italic.clj index d8c7c03..5dfe46e 100644 --- a/src/clarktown/parsers/italic.clj +++ b/src/clarktown/parsers/italic.clj @@ -4,7 +4,7 @@ (defn render - "Renders all occuring italic text as italic." + "Renders all occurring italic text as italic." [block _] (loop [block block matches (-> (re-seq #"_.*?_" block) diff --git a/src/clarktown/parsers/link_and_image.clj b/src/clarktown/parsers/link_and_image.clj index 7964448..dd8c9d0 100644 --- a/src/clarktown/parsers/link_and_image.clj +++ b/src/clarktown/parsers/link_and_image.clj @@ -4,7 +4,7 @@ (defn render - "Renders all occuring links and images." + "Renders all occurring links and images." [block _] (loop [block block matches (-> (re-seq #"\!?\[(.*?)\]\((.*?)\)" block) 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 "<ol>" result "</ol>") + (let [value (-> (first items) + (string/replace-first #"\d\." "") + string/trim + (parser/parse parsers))] + (recur (str result "<li>" value "</li>") + (drop 1 items)))))) diff --git a/src/clarktown/parsers/strikethrough.clj b/src/clarktown/parsers/strikethrough.clj index 31e4cc3..6f03152 100644 --- a/src/clarktown/parsers/strikethrough.clj +++ b/src/clarktown/parsers/strikethrough.clj @@ -4,7 +4,7 @@ (defn render - "Renders all occuring strikethrough text." + "Renders all occurring strikethrough text." [block _] (loop [block block matches (-> (re-seq #"~~.*?~~" block) |
