|
1 | 1 | {:author |
2 | 2 | [{:id :chouser |
3 | 3 | :name "Chris Houser" |
| 4 | + :image "https://avatars.githubusercontent.com/u/36110?v=4" |
4 | 5 | :url "https://chouser.us/" |
5 | | - :links [{:icon "github" :text "GitHub" :href "https://github.com/chouser"}]} |
6 | | - {:id :daslu |
7 | | - :name "Daniel Slutsky" |
| 6 | + :links [{:icon "github" :href "https://github.com/chouser"}]} |
| 7 | + {:id :daslu |
| 8 | + :name "Daniel Slutsky" |
| 9 | + :image "https://avatars.githubusercontent.com/u/5673102?v=4" |
| 10 | + :url "https://scicloj.github.io/contributors/daslu/" |
8 | 11 | :affiliation [:scicloj] |
9 | | - :links [{:icon "github" :text "GitHub" :href "https://github.com/daslu"}]} |
10 | | - {:id :alexmiller |
11 | | - :name "Alex Miller" |
| 12 | + :links [{:icon "github" :href "https://github.com/daslu"}]} |
| 13 | + {:id :alexmiller |
| 14 | + :name "Alex Miller" |
| 15 | + :image "https://avatars.githubusercontent.com/u/171129?v=4" |
| 16 | + :url "https://insideclojure.org/" |
12 | 17 | :affiliation [:clojure.core] |
13 | | - :links [{:icon "github" :text "GitHub" :href "https://github.com/puredanger"}]} |
14 | | - {:id :timothypratley |
15 | | - :name "Timothy Pratley" |
16 | | - :email "timothypratley@gmail.com" |
17 | | - :url "https://timothypratley.blogspot.com/p/httpswww.html" |
18 | | - :affiliation [:hummi :scicloj] |
19 | | - :links [{:icon "github" :text "GitHub" :href "https://github.com/timothypratley"}]}] |
| 18 | + :links [{:icon "github" :href "https://github.com/puredanger"}]} |
| 19 | + {:id :echeran |
| 20 | + :name "Elango Cheran" |
| 21 | + :image "https://www.unicode.org/consortium/img/cheran-150px.jpg" |
| 22 | + :url "https://www.elangocheran.com" |
| 23 | + :affiliation [] |
| 24 | + :links [{:icon "github" :href "https://github.com/echeran"}]} |
| 25 | + {:id :seancorfield |
| 26 | + :name "Sean Corfield" |
| 27 | + :image "https://avatars.githubusercontent.com/u/43875?v=4" |
| 28 | + :email "sean@corfield.org" |
| 29 | + :url "https://corfield.org" |
| 30 | + :affiliation [:clojurecamp] |
| 31 | + :links [{:icon "github" :href "https://github.com/seancorfield"} |
| 32 | + {:icon "mastodon" :text "Mastodon" :href "https://tech.lgbt/@seancorfield"}]} |
| 33 | + {:id :timschafer |
| 34 | + :name "Tim Schafer" |
| 35 | + :image "https://media.licdn.com/dms/image/v2/D4E03AQGuYEubu1rpeA/profile-displayphoto-shrink_200_200/profile-displayphoto-shrink_200_200/0/1681232451970?e=1754524800&v=beta&t=YbMtki98RI584h2kge6dLdg8PF79uNb7NKt59wrpyVs" |
| 36 | + :url "https://github.com/srcerer" |
| 37 | + :affiliation [:clojurecamp] |
| 38 | + :links [{:icon "github" :href "https://github.com/srcerer"}]} |
| 39 | + {:id :timothypratley |
| 40 | + :name "Timothy Pratley" |
| 41 | + :url "https://timothypratley.blogspot.com/p/httpswww.html" |
| 42 | + :image "https://avatars.githubusercontent.com/u/49298?v=4" |
| 43 | + :email "timothypratley@gmail.com" |
| 44 | + :affiliation [:hummi] |
| 45 | + :links [{:icon "github" :href "https://github.com/timothypratley"}]}] |
20 | 46 |
|
21 | | - :affiliation [{:id :clojure.core :name "Clojure.core" :url "https://clojure.org"} |
22 | | - {:id :scicloj :name "Scicloj" :url "https://scicloj.github.io/"} |
23 | | - {:id :clojurecamp :name "Clojure Camp" :url "https://clojure.camp/"} |
24 | | - {:id :hummi :name "Hummi" :url "https://hummi.app"}] |
| 47 | + :affiliation |
| 48 | + [{:id :clojure.core |
| 49 | + :name "Clojure.core" |
| 50 | + :url "https://clojure.org"} |
| 51 | + {:id :scicloj |
| 52 | + :name "Scicloj" |
| 53 | + :url "https://scicloj.github.io/"} |
| 54 | + {:id :clojurecamp |
| 55 | + :name "Clojure Camp" |
| 56 | + :url "https://clojure.camp/"} |
| 57 | + {:id :hummi |
| 58 | + :name "Hummi" |
| 59 | + ;; TODO: as icons |
| 60 | + :url "https://hummi.app"}] |
25 | 61 |
|
26 | | - :topics |
| 62 | + :topic |
27 | 63 | [{:id :core |
28 | 64 | :desc "Fundamental language concepts" |
29 | 65 | :color "#E2F0CB" |
|
84 | 120 | {:id :community/events |
85 | 121 | :desc "Conferences and meetups"}] |
86 | 122 |
|
87 | | - :notebooks |
| 123 | + :notebook |
88 | 124 | [ |
89 | 125 | ;; ===== CORE ===== |
90 | 126 | {:id "clj-docs" |
91 | 127 | :title "Official Clojure Documentation" |
92 | 128 | :url "https://clojure.org/guides/getting_started" |
93 | 129 | :format :reference |
94 | | - :topics [:core] |
| 130 | + :topic [:core] |
95 | 131 | :level 0} |
96 | 132 |
|
97 | 133 | {:id "brave-clojure" |
98 | 134 | :title "Clojure for the Brave and True" |
99 | 135 | :url "https://www.braveclojure.com/" |
100 | 136 | :format :interactive-book |
101 | | - :topics [:core :core/fp] |
| 137 | + :topic [:core :core/fp] |
102 | 138 | :level 1} |
103 | 139 |
|
104 | 140 | {:id "transducers" |
105 | 141 | :title "Transducers Explained" |
106 | 142 | :url "https://www.youtube.com/watch?v=6mTbuzafcII" |
107 | 143 | :format :video |
108 | | - :topics [:core :core/fp] |
| 144 | + :topic [:core :core/fp] |
109 | 145 | :level 2 |
110 | 146 | :depends-on ["clj-docs"]} |
111 | 147 |
|
|
114 | 150 | :title "Reagent Documentation" |
115 | 151 | :url "https://reagent-project.github.io/" |
116 | 152 | :format :library-docs |
117 | | - :topics [:web :web/frontend] |
| 153 | + :topic [:web :web/frontend] |
118 | 154 | :level 1} |
119 | 155 |
|
120 | 156 | {:id "re-frame" |
121 | 157 | :title "re-frame: A React Framework" |
122 | 158 | :url "https://day8.github.io/re-frame/" |
123 | 159 | :format :library-docs |
124 | | - :topics [:web :web/frontend] |
| 160 | + :topic [:web :web/frontend] |
125 | 161 | :level 2 |
126 | 162 | :depends-on ["reagent-docs"]} |
127 | 163 |
|
128 | 164 | {:id "luminus" |
129 | 165 | :title "Luminus Web Framework" |
130 | 166 | :url "https://luminusweb.com/" |
131 | 167 | :format :framework |
132 | | - :topics [:web :web/backend] |
| 168 | + :topic [:web :web/backend] |
133 | 169 | :level 2} |
134 | 170 |
|
135 | 171 | ;; ===== DATA ===== |
136 | 172 | {:id "tablecloth" |
137 | 173 | :title "Tablecloth: Dataframe Library" |
138 | 174 | :url "https://github.com/scicloj/tablecloth" |
139 | 175 | :format :library-docs |
140 | | - :topics [:data :data/analysis] |
| 176 | + :topic [:data :data/analysis] |
141 | 177 | :level 1} |
142 | 178 |
|
143 | 179 | {:id "clay" |
144 | 180 | :title "Clay Documentation" |
145 | 181 | :url "https://scicloj.github.io/clay/" |
146 | 182 | :format :publishing-tool |
147 | | - :topics [:data] |
| 183 | + :topic [:data] |
148 | 184 | :level 2} |
149 | 185 |
|
150 | 186 | {:id "tech.ml" |
151 | 187 | :title "tech.ml Machine Learning" |
152 | 188 | :url "https://github.com/techascent/tech.ml" |
153 | 189 | :format :library-docs |
154 | | - :topics [:data :data/ml] |
| 190 | + :topic [:data :data/ml] |
155 | 191 | :level 3} |
156 | 192 |
|
157 | 193 | ;; ===== TOOLING ===== |
158 | 194 | {:id "deps-edn" |
159 | 195 | :title "deps.edn Reference" |
160 | 196 | :url "https://clojure.org/reference/deps_and_cli" |
161 | 197 | :format :reference |
162 | | - :topics [:tooling] |
| 198 | + :topic [:tooling] |
163 | 199 | :level 0} |
164 | 200 |
|
165 | 201 | {:id "cider" |
166 | 202 | :title "CIDER for Emacs" |
167 | 203 | :url "https://docs.cider.mx/" |
168 | 204 | :format :tool-docs |
169 | | - :topics [:tooling :tooling/repl] |
| 205 | + :topic [:tooling :tooling/repl] |
170 | 206 | :level 1} |
171 | 207 |
|
172 | 208 | {:id "shadow-cljs" |
173 | 209 | :title "shadow-cljs Build Tool" |
174 | 210 | :url "https://shadow-cljs.github.io/docs/UsersGuide.html" |
175 | 211 | :format :tool-docs |
176 | | - :topics [:tooling :tooling/build] |
| 212 | + :topic [:tooling :tooling/build] |
177 | 213 | :level 2} |
178 | 214 |
|
179 | 215 | ;; ===== COMMUNITY ===== |
180 | 216 | {:id "scicloj" |
181 | 217 | :title "SciCloj Community" |
182 | 218 | :url "https://scicloj.github.io/" |
183 | 219 | :format :community |
184 | | - :topics [:community :community/orgs] |
| 220 | + :topic [:community :community/orgs] |
185 | 221 | :level 0} |
186 | 222 |
|
187 | 223 | {:id "clojure-camp" |
188 | 224 | :title "ClojureCamp Events" |
189 | 225 | :url "https://clojurecamp.berlin/" |
190 | 226 | :format :community |
191 | | - :topics [:community :community/events] |
| 227 | + :topic [:community :community/events] |
192 | 228 | :level 1} |
193 | 229 |
|
194 | 230 | {:id "clojure-tv" |
195 | 231 | :title "ClojureTV YouTube" |
196 | 232 | :url "https://www.youtube.com/user/ClojureTV" |
197 | 233 | :format :video-channel |
198 | | - :topics [:community :community/learning] |
| 234 | + :topic [:community :community/learning] |
199 | 235 | :level 0} |
200 | 236 |
|
201 | 237 | {:id "clojurians" |
202 | 238 | :title "Clojurians Slack" |
203 | 239 | :url "http://clojurians.net/" |
204 | 240 | :format :community |
205 | | - :topics [:community :community/chat] |
| 241 | + :topic [:community :community/chat] |
206 | 242 | :level 0} |
207 | 243 |
|
208 | 244 | {:id "practicalli" |
209 | 245 | :title "Practicalli Tutorials" |
210 | 246 | :url "https://practical.li/" |
211 | 247 | :format :tutorials |
212 | | - :topics [:community :community/learning] |
| 248 | + :topic [:community :community/learning] |
213 | 249 | :level 1} |
214 | 250 |
|
215 | 251 | ;; ===== SYSTEMS ===== |
216 | 252 | {:id "jvm-tuning" |
217 | 253 | :title "JVM Performance Guide" |
218 | 254 | :url "https://clojure.org/reference/jvm_programming" |
219 | 255 | :format :guide |
220 | | - :topics [:systems :systems/production] |
| 256 | + :topic [:systems :systems/production] |
221 | 257 | :level 3} |
222 | 258 |
|
223 | 259 | {:id "component" |
224 | 260 | :title "Component Library" |
225 | 261 | :url "https://github.com/stuartsierra/component" |
226 | 262 | :format :library-docs |
227 | | - :topics [:systems :systems/design] |
| 263 | + :topic [:systems :systems/design] |
228 | 264 | :level 2} |
229 | 265 |
|
230 | 266 | {:id "nrepl" |
231 | 267 | :title "nREPL Protocol" |
232 | 268 | :url "https://nrepl.org/" |
233 | 269 | :format :protocol |
234 | | - :topics [:systems :systems/tooling] |
| 270 | + :topic [:systems :systems/tooling] |
235 | 271 | :level 2} |
236 | 272 |
|
237 | 273 | {:id "datomic" |
238 | 274 | :title "Datomic Database" |
239 | 275 | :url "https://docs.datomic.com/cloud/" |
240 | 276 | :format :database |
241 | | - :topics [:systems :systems/data :data/db] |
| 277 | + :topic [:systems :systems/data :data/db] |
242 | 278 | :level 3} |
243 | 279 |
|
244 | 280 | ;; ===== CROSS-CATEGORY ===== |
245 | 281 | {:id "clojurescript" |
246 | 282 | :title "ClojureScript Guide" |
247 | 283 | :url "https://clojurescript.org/" |
248 | 284 | :format :reference |
249 | | - :topics [:core :web :tooling] |
| 285 | + :topic [:core :web :tooling] |
250 | 286 | :level 1} |
251 | 287 |
|
252 | 288 | {:id "kaocha" |
253 | 289 | :title "Kaocha Test Runner" |
254 | 290 | :url "https://github.com/lambdaisland/kaocha" |
255 | 291 | :format :tool-docs |
256 | | - :topics [:tooling :tooling/testing] |
| 292 | + :topic [:tooling :tooling/testing] |
257 | 293 | :level 2} |
258 | 294 |
|
259 | 295 | {:id "xtdb" |
260 | 296 | :title "XTDB Documentation" |
261 | 297 | :url "https://xtdb.com/" |
262 | 298 | :format :database |
263 | | - :topics [:systems :systems/data :data/db] |
264 | | - :level 3} |
265 | | - ]} |
| 299 | + :topic [:systems :systems/data :data/db] |
| 300 | + :level 3}]} |
0 commit comments