Skip to content

scicloj/janqua

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Janqua

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.

Read the documentation →

Prerequisites

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"]'

Quick start

Install the extension in your project:

quarto add scicloj/janqua

Create 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.qmd

Or use live preview:

quarto preview hello.qmd

A 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 stop

See Getting Started for details.

License

MIT