Janqua is a Quarto extension for writing Jank code in visual documents. Each {.clojure .jank} block in a .qmd file is evaluated by a Jank REPL during rendering, producing code output, charts, diagrams, tables, or computed HTML.
Charts render via Plotly, Vega-Lite, ECharts, Cytoscape, or Highcharts; diagrams via Mermaid and Graphviz. Rendering follows the Kindly convention, the same way Clay handles Clojure docs — so the patterns are familiar if you're coming from Clay, and ready-to-publish if you've never written a notebook before.
Quarto is widely used in scientific communities for technical writing, and has been used in multiple Clojure projects, most often through Clay. Janqua brings this publishing experience to the Jank community — and lets Jank developers share posts on Clojure Civitas, the Clojure community's collaborative space.
Experimental — this project is at an early stage. Currently tested only on Linux; macOS is unverified. Feedback and ideas are welcome via GitHub issues or the Scicloj Zulip chat.
- Quarto
- Jank
- Babashka + bbin
clj-nrepl-eval— provided by clojure-mcp-light; install via bbin:
bbin install https://github.com/bhauman/clojure-mcp-light.git --tag v0.2.1 --as clj-nrepl-eval --main-opts '["-m" "clojure-mcp-light.nrepl-eval"]'Install the extension in your project:
quarto add scicloj/janquaCreate hello.qmd:
---
title: "Hello Jank"
filters:
- jank
---
```{.clojure .jank}
(+ 1 2 3)
```
```{.clojure .jank}
^:kind/hiccup
[:div {:style "color: coral; font-size: 24px;"} "Hello from Jank!"]
```Render it:
quarto render hello.qmdOr use live preview:
quarto preview hello.qmdA Jank nREPL is auto-started on first render and kept alive for fast re-evaluation. Stop it when you're done:
_extensions/scicloj/jank/jank-lifecycle.sh stopSee Getting Started for details.
MIT