A library providing a ClojureScript viewer and editor that you can embed in any website. No, that was not a complete sentence. And neither is this. Be a rebel, like me, by using paren-soup. CodeMirror is nice if you want to support other languages, but why would you?
Here are the features:
- Syntax highlighting
- Rainbow delimiters
- Inline reader errors
- InstaREPL (à la Light Table)
- Automatic indentation fixing (like aggressive-indent-mode)
- Console mode
To use paren-soup in your own website, just go to the releases section and download the latest files. In your HTML, link to one of the CSS files and use the following markup:
If you just want a viewer, not an editor, leave out the
textContent property. There is no API to learn!
Note that by default, the prebuilt copy of paren-soup.js runs the instaREPL in a web worker in order to isolate it and allow the editor to be compiled in advanced mode. Alternatively, you can change your
script tag to use
"paren-soup-with-compiler.js" instead. That version will run the instaREPL directly, where it will have access to the DOM and allow multiple paren-soup instances to share instaREPL state.
If you want to use paren-soup in a ClojureScript project, add it to your project's dependencies (see version indicated at the top). Your HTML file will still need the markup shown above, except without the
script tags. Instead, you can initialize it from your ClojureScript code like this:
(ns my-project.core (:require [paren-soup.core :as ps])) (ps/init-all)
A prebuilt copy of the compiler is already in the
resources directory. If you want to build it yourself, go in the
compiler directory and run
All files that originate from this project are dedicated to the public domain. I would love pull requests, and will assume that they are also dedicated to the public domain.