This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-04-25
Channels
- # announcements (4)
- # babashka (3)
- # beginners (79)
- # biff (4)
- # calva (17)
- # cider (18)
- # clj-kondo (21)
- # cljdoc (45)
- # cljs-dev (14)
- # cljsrn (9)
- # clojure (90)
- # clojure-europe (86)
- # clojure-italy (3)
- # clojure-nl (3)
- # clojure-portugal (1)
- # clojure-uk (9)
- # clojurescript (20)
- # code-reviews (23)
- # conjure (14)
- # cursive (12)
- # datascript (12)
- # emacs (5)
- # events (2)
- # fulcro (13)
- # gratitude (1)
- # holy-lambda (9)
- # lambdaisland (2)
- # malli (6)
- # nbb (1)
- # nextjournal (2)
- # nrepl (30)
- # off-topic (63)
- # pathom (1)
- # portal (24)
- # reagent (5)
- # reitit (13)
- # releases (2)
- # remote-jobs (1)
- # sci (90)
- # shadow-cljs (49)
- # spacemacs (5)
- # sql (13)
- # testing (20)
- # tools-build (17)
- # xtdb (27)
oof, type errors
maybe I'll do the work of rewriting these using functional components
oof, this is all tangled
Oof, if only I understood TypeScript! Does that cause us problems?
Can we catch these types of errors at build time and fail the build?
it doesn't right now but it's something we should fix
things are a bit tangled but it's nothing that can't be fixed
or put in the work to switch to cljs
I will defer to you on all things client-side, but I certainly would not object to a switch to cljs someday. That said, if TypeScript is a better fit and/or preferred, that’s absolutely cool too.
I'd like to learn some more cljs and it might be fun
I was also thinking we might be able to use sci to make it so certain libraries could be tried in the browser
There’s an old https://github.com/cljdoc/cljdoc/issues/70 on this topic.
I’m also quite fascinated with https://github.com/nextjournal/clerk and wonder if/how it could integrate.
oooooh
big upvote here, rendering docs with clerk would be amazing
maybe a new doc format for this? allow people to include clerk files?
we'd have to be careful that nothing is automatically executed, that this is entirely opt-in
puts on her infosec hat
I definitely get a little anxiety at the thought of library publishers being able to run arbitrary javascript in a user's browser
specifically it potentially allows people to use the trust people have for cljdoc to ship malicious js without suspicion
The other thing we need to think of is stability and longevity. CommonMark and AsciiDoc are stable and safe and don’t change much. But other things do change.
Scary JS tidbit: it was only recently that cljdoc started sanitizing out embedded JavaScript from adoc and md 😬
you're the real MVP, Lee
Now live: Searching within a single library now breaks down results for articles by section headings. Looking good to me, let us know if you see any issues! Thanks to @corasaurus-hex for encouraging me to dive in on this one (it is just a small change atop all the hard work done by her!).
is it worth crafting an announcement?
Well… there are rules for #announcements… and their frequency. But we can noisy as we like in #releases.
ahhh ok
I think(?) the rule of thumb was that if you can still see your #announcements announcement then don’t post a new one. But now that we have full Slack history… that rule no longer makes sense. Can’t remember where this spelled out… somewhere…
oof, tapping on mobile is broken because of loss of focus. i'll need to fix that
Good catch! And related: Would be interesting to know, some sort of usage stats. Like what percentage of folks come in from mobile.
gah, all search clicks are broken
@lee I'm just going to commit this to master so it ships quicker
❯ git diff HEAD
diff --git a/js/single-docset-search.tsx b/js/single-docset-search.tsx
index 7461755..81113ed 100644
--- a/js/single-docset-search.tsx
+++ b/js/single-docset-search.tsx
@@ -485,9 +485,6 @@ const SingleDocsetSearch = (props: { url: string }) => {
onBlur={(event: FocusEvent) => {
const input = event.target as HTMLInputElement;
input.classList.toggle("b--blue");
- if (showResults) {
- setShowResults(false);
- }
}}
onKeyDown={(event: KeyboardEvent) => {
const input = event.target as HTMLInputElement;
can't believe I broke it 😬
pretty sure that fixes all the things