shlemph / stencila

Author, collaborate on, and publish beautiful interactive documents

Home Page:https://stenci.la/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stencila

πŸ‘‹ 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 πŸ’• contributions! All types of contributions: ideas πŸ€”, examples πŸ’‘, bug reports πŸ›, documentation πŸ“–, code πŸ’», questions πŸ’¬. If you are unsure of where to make a contribution feel free to open a new issue or discussion in this repository (we can always move them elsewhere if need be).


πŸ“œ 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" plugins rasta, pyla and jesta and instead focussing on a tighter integration with Jupyter kernels by way of porting the functionality in jupita into the core Rust library.

Plugin Aliases Version Coverage Primary functionality
encoda converter encoda-v encoda-c Convert documents between file formats
jesta javascript jesta-v jesta-c Compile, build and execute documents that use JavaScript
rasta r rasta-v rasta-c Compile, build and execute documents that use R
pyla python pyla-v pyla-c Compile, build and execute documents that use Python
jupita jupyter jupita-v jupita-c Execute documents that use Jupyter kernels
dockta docker dockta-v dockta-c Build Docker images for executable documents
nixta nix nixta-v nixta-c 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 stencila-stencila-s Base image containing stencila CLI
stencila/node stencila-node-s 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

About

Author, collaborate on, and publish beautiful interactive documents

https://stenci.la/

License:Apache License 2.0


Languages

Language:Rust 64.4%Language:TypeScript 19.3%Language:R 5.7%Language:Python 4.4%Language:CSS 3.4%Language:Jupyter Notebook 1.3%Language:JavaScript 0.7%Language:HTML 0.2%Language:Shell 0.2%Language:Makefile 0.2%Language:Dockerfile 0.1%Language:TeX 0.0%Language:EJS 0.0%Language:RenderScript 0.0%