π Welcome
This is the main repository of Stencila, a platform for authoring, collaborating on, and publishing executable documents.
Stencila is comprised of several open source packages, written in a variety of programming languages. This repo acts as an entry point to these other packages as well as hosting code for our desktop and CLI tools.
We
π Help
For documentation, including demos and reference guides, please go to our Help site https://help.stenci.la/. That site is developed in the help
folder of this repository and contributions are always welcome.
π Hub
If you don't want to install anything, or just want to try out Stencila, https://hub.stenci.la is the best place to start. It's a web application that makes all our software available via intuitive browser-based interfaces. You can contribute to Stencila Hub at stencila/hub
.
π₯οΈ Desktop
If you'd prefer to use Stencila on your own computer, the Stencila Desktop is a great place to start. It is still in the early stages of (re)development but please see the desktop
folder for its current status and how you can help out!
β¨οΈ Command line tool
Prefer to work on the command line? The stencila
command line tool (CLI) is for you! Please see the cli
folder for installation and usage instructions.
π Plugins
The stencila
Hub, Desktop and CLI all rely on plugins to provide much of their functionality. You can install plugins using the stencila
Desktop or CLI tool using it's name or an alias,
stencila plugins install <name or alias>
The following table lists the main plugins. These plugins are in various stages of development and not all of them are compatible with the Desktop and CLI. Generally, it won't be worth installing them prior to v1
and coverage of at least 90%.
π¨ We are the process of deprecating the "executor" pluginsrasta
,pyla
andjesta
and instead focussing on a tighter integration with Jupyter kernels by way of porting the functionality injupita
into the core Rust library.
Plugin | Aliases | Version | Coverage | Primary functionality |
---|---|---|---|---|
encoda | converter |
Convert documents between file formats | ||
jesta | javascript |
Compile, build and execute documents that use JavaScript | ||
rasta | r |
Compile, build and execute documents that use R | ||
pyla | python |
Compile, build and execute documents that use Python | ||
jupita | jupyter |
Execute documents that use Jupyter kernels | ||
dockta | docker |
Build Docker images for executable documents | ||
nixta | nix |
Build Nix environments for executable documents |
π³ Docker images
You can use Stencila as a Docker image. We provide several images of varying sizes and capabilities. All include the stencila
CLI as the image ENTRYPOINT
but add varying numbers of plugins and packages.
At present the number of images listed below is limited. We plan to move the generic images e.g. stencila/executa-midi
(which are currently built in the dockta
repository), to this repository as we reach plugin compatibility for the relevant language packages.
Image | Size | Description |
---|---|---|
stencila/stencila | Base image containing stencila CLI |
|
stencila/node | Adds Node.js and jesta |
π©βπ» Language bindings
If you prefer, you can use Stencila from within your favorite programming language. Some of these language bindings are in an early, proof-of-concept state and are likely to be developed further only based on demand. If your favorite language is missing, or you would like to help us develop the bindings, let us know!
Language | Bindings | Status |
---|---|---|
Node | node | In-development (used for Desktop) |
Python | python | Experimental |
R | r | Experimental |