cl-notebook

2018-04-30

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 emerald Emacs.

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.

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 the cl-notebook directory

That 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 loading cl-notebook
  • Call buildapp with that build.manifest file, along with
    • a bunch of --load-system calls that include everything cl-notebook needs
    • an --eval call to cl-notebook::read-statics to include all the associated static files along with the binary
    • an --entry of cl-notebook:main
    • an --output of your choice of binary name (I suggest "cl-notebook")

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

Author
Inaimathi <leo.zovic@gmail.com>
License
AGPL3