cl-notebook
2020-12-20
A notebook-style in-browser editor for Common Lisp
cl-notebook
A notebook-style in-browser editor for Common Lisp.
Tools, of course, can be the subtlest of traps. One day I know I must smash the
emeraldEmacs.with apologies to Neil Gaiman
This is now a pre-beta
Use it at your own risk, and expect occasional, minor explosions
Usage
With quicklisp
- Install a Common Lisp (I suggest
sbcl
) - Install
quicklisp
- Hop into a Lisp and do
(ql:quickload :cl-notebook)
, followed by(cl-notebook:main)
Binary
Download this, run it (if you downloaded the tarball instead of the naked binary, unpack it first, obviously)
At the moment, we've only got binaries for 64-bit Linux. Submissions for other architectures welcome.
With roswell
and qlot
These help you manage Common Lisp distributions. They are usefull not only for running cl-notebook, but for any other CL project, so consider them regardless of whether you want this project.
- Install
roswell
- Install
qlot
- Clone cl-notebook
In the cl-notebook
directory you cloned to, do:
qlot install
qlot exec roswell/cl-notebook.ros --port 4242
Once cl-notebook
is Running
Hop into a browser and go to localhost:4242/
(or whatever port you chose)
A quick-ish, and now slightly out-of-date video demo is available here to get you sort-of-started.
Sytem Docs
Building the Binary
With roswell
and qlot
-
Install
roswell
-
Install
qlot
-
Run
qlot exec ros build roswell/cl-notebook.ros
in thecl-notebook
directoryThat will create a binary with the appropriate name that you can directly run on any machine of your OS and processor architecture.
-
Grab your binary at
roswell/cl-notebook
.
This should work under the Linux, OSX and Windows.
With buildapp
In order to build the cl-notebook
binary, you need to
- Install a Common Lisp (I suggest, and have only tried this with,
sbcl
) - Install
quicklisp
- Install and build
buildapp
- Create an appropriate
build.manifest
file for loadingcl-notebook
- Call
buildapp
with thatbuild.manifest
file, along with- a bunch of
--load-system
calls that include everythingcl-notebook
needs - an
--eval
call tocl-notebook::read-statics
to include all the associated static files along with the binary - an
--entry
ofcl-notebook:main
- an
--output
of your choice of binary name (I suggest "cl-notebook
")
- a bunch of
That will create a binary with the appropriate name that you can directly run on any machine of your OS and processor architecture.
Linux
If you're on a Debian-based linux distro, there is a build.lisp
and build.sh
included in the build/
subdirectory of this repo that do most of the above for you. All you need to do is make sure to install sbcl
, then call sh build.sh
in the build
directory. This will result in a buildapp
binary and a cl-notebook
binary being generated for you. The cl-notebook
binary can then be run on any linux machine (of the same CPU architecture) without worrying about installing a Lisp.
OS X
TODO - patches welcome, since I'm not an OS X user
Windows
TODO - patches welcome, since I'm not a Windows user
Source Deployment
Usage
Keybindings
Building Programs/Executables
Notebook Exporters
Cell Compilers
License
AGPL3 (also found in the included copying.txt)
Short version:
Do whatever you like, BUT afford the same freedoms to anyone you give this software or derivative works (yes, this includes the new stuff you do) to, and anyone you expose it to as a service.
This project uses CodeMirror as a front-end editor. CodeMirror is released under the MIT Expat license.
Credits
This project uses:
nativesortable
- Code Mirror
- Genericons
- Blob.js and FileSave.js
- A spinner generated from here
anaphora
alexandria
parenscript
cl-who
quicklisp
buildapp