Skip to content

scicloj/clay

Repository files navigation

Clay

Clay logo

Clay is a REPL-friendly Clojure tool for a dynamic workflow of data visualization and literate programming.

It also offers a set of tools to integrate Clojure literate programming with the Quarto publishing system.

Getting Started

Add Clay to your project dependencies:

Clojars Project

(If you like to use aliases, you may add under it to the extra dependencies under an alias. See, for example, the deps.edn file of Noj. If you do not know what this means, just add it under the main :deps section of your deps.edn file.)

To render a given Clojure namespace, say "notebooks/index.clj", you may run the following in the REPL:

(require '[scicloj.clay.v2.api :as clay])
(clay/make! {:source-path "notebooks/index.clj"})

This will render an HTML page and serve it in Clay's browser view. Note that Clay does not need to be mentioned in the namespace we are rendering.

Docs

More details may be found in the Documentation. In particular:

  • See the API and Configuration subsections for more options and variations.
  • See the Setup section and recent Videos for details about integrating Clay with your editor so you do not need to call make! yourself.

Related projects

The Claykind project is rethinking the Clay architecture and implementation from scratch, in a new code base. Currently (Fall 2023), the two projects are being developed in coordination.

Kindly is a common ground for defining how things should be visualized, seeking compatibility across tools.

kindly-advice is a library that helps tools such as Clay to be Kindly-compatible.

read-kinds is used internally by Claykind (and soon by Clay as well) to generate Kindly advice from notebooks expressed as Clojure namespaces.

Projects using Clay

Please reach out to add your project to this list.

Discussion

Regular updates are given at the visual-tools meetings.

The best places to discuss this project are:

quaternary clay in Estonia (credit: Wikimedia Commons)

License

Copyright © 2022 Scicloj

EPLv1.0 is just the default for projects generated by clj-new: you are not required to open source this project, nor are you required to use EPLv1.0! Feel free to remove or change the LICENSE file and remove or update this section of the README.md file!

Distributed under the Eclipse Public License version 1.0.