diff options
| author | Asko Nomm <asko@bien.ee> | 2022-04-07 11:08:32 +0200 |
|---|---|---|
| committer | Asko Nomm <asko@bien.ee> | 2022-04-07 11:08:32 +0200 |
| commit | c0c8a2e49d395b574c7a31727c06f315139d7336 (patch) | |
| tree | d186eef02dc054bfeaff07da816494ea83264b08 | |
| parent | 842d64c8f02a7958e4201660b05f2c17cdd9b6dc (diff) | |
Add tests for italic text, and support using `*` for italic text creation as well (re #5)
| -rw-r--r-- | src/clarktown/parsers/italic.clj | 4 | ||||
| -rw-r--r-- | test/clarktown/parsers/italic_test.clj | 17 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/clarktown/parsers/italic.clj b/src/clarktown/parsers/italic.clj index 5dfe46e..5f63620 100644 --- a/src/clarktown/parsers/italic.clj +++ b/src/clarktown/parsers/italic.clj @@ -7,11 +7,11 @@ "Renders all occurring italic text as italic." [block _] (loop [block block - matches (-> (re-seq #"_.*?_" block) + matches (-> (re-seq #"(\*{1}|\_{1})(.*?)(\*{1}|\_{1})" block) distinct)] (if (empty? matches) block - (let [match (first matches) + (let [match (ffirst matches) value (subs match 1 (- (count match) 1)) replacement (str "<em>" value "</em>")] (recur (string/replace block match replacement) diff --git a/test/clarktown/parsers/italic_test.clj b/test/clarktown/parsers/italic_test.clj new file mode 100644 index 0000000..373a945 --- /dev/null +++ b/test/clarktown/parsers/italic_test.clj @@ -0,0 +1,17 @@ +(ns clarktown.parsers.italic-test + (:require [clojure.test :refer [deftest testing is]] + [clarktown.parsers.italic :as italic])) + + +(deftest italic-test + (testing "Creating italic text with one surrounding asterisk character" + (is (= "<em>This is italic.</em>" + (italic/render "*This is italic.*" nil)))) + + (testing "Creating italic text with one surrounding underscore character" + (is (= "<em>This is italic.</em>" + (italic/render "_This is italic._" nil)))) + + (testing "Creating italic text with both underscores and asterisks mixed" + (is (= "Hi, my name is <em>John</em>, what is <em>your name?</em>" + (italic/render "Hi, my name is *John*, what is _your name?_" nil)))))
\ No newline at end of file |
