Skip to content

Commit 51d2b58

Browse files
authored
accomodate emoji namespace into utils (#51)
1 parent d8c2773 commit 51d2b58

File tree

5 files changed

+45
-48
lines changed

5 files changed

+45
-48
lines changed

API.md

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- [`toc->hiccup`](#nextjournal.markdown/toc->hiccup) - Transform a toc node into hiccup data, suitable for using as renderer function in hiccup transform, see [->hiccup](#markdown.transform/toc->hiccup).
1212
- [`nextjournal.markdown.utils`](#nextjournal.markdown.utils)
1313
- [`block-formula`](#nextjournal.markdown.utils/block-formula)
14+
- [`emoji-regex`](#nextjournal.markdown.utils/emoji-regex)
1415
- [`empty-doc`](#nextjournal.markdown.utils/empty-doc) - The empty doc.
1516
- [`formula`](#nextjournal.markdown.utils/formula)
1617
- [`hashtag-tokenizer`](#nextjournal.markdown.utils/hashtag-tokenizer)
@@ -19,8 +20,6 @@
1920
- [`normalize-tokenizer`](#nextjournal.markdown.utils/normalize-tokenizer) - Normalizes a map of regex and handler into a Tokenizer.
2021
- [`text-node`](#nextjournal.markdown.utils/text-node)
2122
- [`tokenize-text-node`](#nextjournal.markdown.utils/tokenize-text-node)
22-
- [`nextjournal.markdown.utils.emoji`](#nextjournal.markdown.utils.emoji) - https://github.com/mathiasbynens/emoji-test-regex-pattern MIT License Copyright Mathias Bynens <https://mathiasbynens.be/>.
23-
- [`regex`](#nextjournal.markdown.utils.emoji/regex)
2423

2524
-----
2625
# <a name="nextjournal.markdown">nextjournal.markdown</a>
@@ -131,73 +130,62 @@ Transform a toc node into hiccup data, suitable for using as renderer function i
131130

132131

133132

134-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L23-L23">Source</a></sub></p>
133+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L24-L24">Source</a></sub></p>
134+
135+
## <a name="nextjournal.markdown.utils/emoji-regex">`emoji-regex`</a>
136+
137+
138+
139+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L28-L28">Source</a></sub></p>
135140

136141
## <a name="nextjournal.markdown.utils/empty-doc">`empty-doc`</a>
137142

138143

139144

140145

141146
The empty doc
142-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L5-L7">Source</a></sub></p>
147+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L6-L8">Source</a></sub></p>
143148

144149
## <a name="nextjournal.markdown.utils/formula">`formula`</a>
145150

146151

147152

148-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L21-L21">Source</a></sub></p>
153+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L22-L22">Source</a></sub></p>
149154

150155
## <a name="nextjournal.markdown.utils/hashtag-tokenizer">`hashtag-tokenizer`</a>
151156

152157

153158

154-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L13-L13">Source</a></sub></p>
159+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L14-L14">Source</a></sub></p>
155160

156161
## <a name="nextjournal.markdown.utils/insert-sidenote-containers">`insert-sidenote-containers`</a>
157162

158163

159164

160-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L17-L17">Source</a></sub></p>
165+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L18-L18">Source</a></sub></p>
161166

162167
## <a name="nextjournal.markdown.utils/internal-link-tokenizer">`internal-link-tokenizer`</a>
163168

164169

165170

166-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L15-L15">Source</a></sub></p>
171+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L16-L16">Source</a></sub></p>
167172

168173
## <a name="nextjournal.markdown.utils/normalize-tokenizer">`normalize-tokenizer`</a>
169174

170175

171176

172177

173178
Normalizes a map of regex and handler into a Tokenizer
174-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L9-L11">Source</a></sub></p>
179+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L10-L12">Source</a></sub></p>
175180

176181
## <a name="nextjournal.markdown.utils/text-node">`text-node`</a>
177182

178183

179184

180-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L19-L19">Source</a></sub></p>
185+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L20-L20">Source</a></sub></p>
181186

182187
## <a name="nextjournal.markdown.utils/tokenize-text-node">`tokenize-text-node`</a>
183188

184189

185190

186-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L25-L25">Source</a></sub></p>
187-
188-
-----
189-
# <a name="nextjournal.markdown.utils.emoji">nextjournal.markdown.utils.emoji</a>
190-
191-
192-
https://github.com/mathiasbynens/emoji-test-regex-pattern
193-
MIT License
194-
Copyright Mathias Bynens <https://mathiasbynens.be/>
195-
196-
197-
198-
199-
## <a name="nextjournal.markdown.utils.emoji/regex">`regex`</a>
200-
201-
202-
203-
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils/emoji.cljc#L15-L16">Source</a></sub></p>
191+
<p><sub><a href="https://github.com/nextjournal/markdown/blob/main/src/nextjournal/markdown/utils.cljc#L26-L26">Source</a></sub></p>

src/nextjournal/markdown/utils.cljc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
;; # Markdown parsing shared utils
22
(ns nextjournal.markdown.utils
3-
(:require [nextjournal.markdown.impl.utils :as u]))
3+
(:require [nextjournal.markdown.impl.utils :as u]
4+
[nextjournal.markdown.utils.emoji :as emoji]))
45

56
(def empty-doc
67
"The empty doc"
@@ -23,3 +24,5 @@
2324
(def block-formula u/block-formula)
2425

2526
(def tokenize-text-node u/tokenize-text-node)
27+
28+
(def emoji-regex emoji/regex)

src/nextjournal/markdown/utils/emoji.cljc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
(ns nextjournal.markdown.utils.emoji
22
"https://github.com/mathiasbynens/emoji-test-regex-pattern
33
MIT License
4-
Copyright Mathias Bynens <https://mathiasbynens.be/>")
4+
Copyright Mathias Bynens <https://mathiasbynens.be/>"
5+
{:skip-wiki true})
56

67
;; https://raw.githubusercontent.com/mathiasbynens/emoji-test-regex-pattern/f798c38987917b48e26d490590ba4f5481eb6e93/dist/latest/java.txt
78
#?(:clj

test/nextjournal/markdown/public_api_test.clj

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(ns nextjournal.markdown.public-api-test
22
(:require [clojure.string :as str]
33
[clojure.test :refer [deftest is]]
4-
[nextjournal.markdown]
4+
[nextjournal.markdown] :reload-all
55
[nextjournal.markdown.transform]
66
[nextjournal.markdown.utils]))
77

@@ -17,15 +17,20 @@
1717
set))
1818

1919
(deftest public-namespaces-test
20-
(is (= '#{nextjournal.markdown.utils.emoji
21-
nextjournal.markdown.transform
22-
nextjournal.markdown
23-
nextjournal.markdown.utils}
24-
(-> (filter #(and (str/starts-with? (str %) "nextjournal.markdown")
25-
(not (str/includes? (str %) ".impl"))
26-
(not (str/ends-with? (str %) "-test")))
27-
(map ns-name (all-ns)))
28-
set))))
20+
(let [public-nss (-> (filter #(and (str/starts-with? (str %) "nextjournal.markdown")
21+
(not (str/includes? (str %) ".impl"))
22+
(not (str/ends-with? (str %) "-test")))
23+
(map ns-name (all-ns)))
24+
set)]
25+
(is (= '#{nextjournal.markdown.utils.emoji
26+
nextjournal.markdown.transform
27+
nextjournal.markdown
28+
nextjournal.markdown.utils}
29+
public-nss))
30+
(is (= '#{nextjournal.markdown
31+
nextjournal.markdown.utils}
32+
(set (remove #(-> (find-ns %) meta :skip-wiki)
33+
public-nss))))))
2934

3035
(deftest public-vars-test
3136
(is (= '#{default-hiccup-renderers
@@ -53,7 +58,8 @@
5358
block-formula
5459
empty-doc
5560
hashtag-tokenizer
56-
formula}
61+
formula
62+
emoji-regex}
5763
(public-vars 'nextjournal.markdown.utils)))
5864
(is (= '#{regex}
5965
(public-vars 'nextjournal.markdown.utils.emoji))))

test/nextjournal/markdown_test.cljc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
[matcher-combinators.matchers :as m]
66
[matcher-combinators.test :refer [match?]]
77
[nextjournal.markdown :as md]
8-
[nextjournal.markdown.transform :as md.transform]
98
[nextjournal.markdown.utils :as u]))
109

1110
;; com.bhauman/cljs-test-display doesn't play well with ANSI codes
@@ -303,7 +302,7 @@ rupt me when I'm writing."))))
303302
### Section 2.1
304303
"
305304
data (md/parse md)
306-
hiccup (md.transform/->hiccup data)]
305+
hiccup (md/->hiccup data)]
307306

308307
(is (match? {:type :doc
309308
:title "Title"
@@ -490,7 +489,7 @@ _this #should be a tag_, but this [_actually #foo shouldnt_](/bar/) is not."))))
490489
{:href "/tags/useful-123"}
491490
"#useful-123"]
492491
" tags"]]
493-
(md.transform/->hiccup
492+
(md/->hiccup
494493
(parse-hashtags "# Hello Tags
495494
par with #really_nice #useful-123 tags
496495
"))))))
@@ -568,7 +567,7 @@ Did we mention qtmphysics?
568567
and _interpret_
569568
softbreaks as
570569
spaces")
571-
md.transform/->text))))
570+
md/node->text))))
572571

573572
(def parsed+sidenotes
574573
(-> "Text[^firstnote] and^[inline _note_ here].
@@ -821,7 +820,7 @@ c[^note3] d.
821820
{:style {:margin-right "3px"}}
822821
"3"]
823822
"Explain 2"]]]]
824-
(md.transform/->hiccup parsed+sidenotes)))))
823+
(md/->hiccup parsed+sidenotes)))))
825824

826825
(deftest parse-multiple-inputs
827826
(testing "adding to the ToC"
@@ -1059,7 +1058,7 @@ Bye") :content)))
10591058
#?(:clj
10601059
(is (= "<div><p>Hello <a href=\"dude\"><em>Dude</em></a></p></div>"
10611060
(str (hiccup/html (md/->hiccup
1062-
(assoc md.transform/default-hiccup-renderers
1061+
(assoc md/default-hiccup-renderers
10631062
:html-inline (fn [_ m]
10641063
(hiccup/raw (-> m :content first :text)))
10651064
:html-block (fn [_ m]
@@ -1068,7 +1067,7 @@ Bye") :content)))
10681067
#?(:clj
10691068
(is (= "<div><p>Hello <a href=\"dude\">multi</p><p>line</p><p>link</a></p></div>"
10701069
(str (hiccup/html (md/->hiccup
1071-
(assoc md.transform/default-hiccup-renderers
1070+
(assoc md/default-hiccup-renderers
10721071
:html-inline (fn [_ m]
10731072
(hiccup/raw (-> m :content first :text)))
10741073
:html-block (fn [_ m]

0 commit comments

Comments
 (0)