We've just published our first academic paper about Clerk, in case anyone's interested:
🐦 Jack Rusher in Tokyo 🇯🇵: We (@mkvlr @unkai and myself) are in Tokyo to present our paper ‘Clerk: Moldable Live Programming for Clojure’ at Programming 23’s Programming Experience Workshop (PX23).
Of course we wrote the paper with Clerk and published it with Garden:
That's a very nice overview of a very interesting approach to evolving the user interface of computing!
Wondering: is Clerk reflective? Can the code inspect itself, and also the Markdown text in the same page? That's something I have found missing in Jupyter.
The markdown parsing returns a clojure data structure that can be further manipulated before it is rendered to markup. You also have all the normal lisp-y meta-programming stuff, so you can reflect and modify and compile as you like.
My interest is not so much to modify the rendering (though I see applications for that) as doing computations on the text. Something like a Clojure form that computes the number of words in the preceding paragraph. Or feeds it to GPT-4.
Our markdown library returns a tree that can be further processed. The API for doing what you describe is probably a bit opaque atm tho, so I should fix that! 🙂