/stencila

Stencila core

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Stencila

Stencila is a platform for creating, collaborating on, and sharing data driven content. Content that is transparent and reproducible, like RMarkdown and Jupyter Notebooks. Content that can be versioned and composed just like we do with open source software using tools like CRAN and NPM. And above all, content that is accessible to non-coders, like Google Docs and Microsoft Office.

Roadmap

Stencila is still at an early beta stage: there are likely to be missing features, bugs and API changes. But we would ❤️ to get your suggestions and 🐛 reports. Get help from the community, create a new issue, or join the chat.

  • prod = ready for production use
  • beta = ready for beta user testing
  • alpha = ready for alpha testing; use with caution
  • numbers (e.g. 0.31) = planned release

We generally only plan one or two releases ahead. We aim to release every 1-2 months, towards a 1.0 release in early 2018. Checkout the current release milestones.

Feature Ready
Documents beta
Datatables 0.28
Sheets 0.29
Static content
Paragraph prod
Headings prod
Blockquote prod
Image 0.30
List beta
Table 0.30
Strong & emphasis prod
Link prod
Subscript & superscript prod
Code block 0.30
Math (AsciiMath and Tex) beta
Discussions 0.31
Reproducible content
Number input (range slider) beta
Select input (name value pairs) alpha
Tabular data input 0.30
Code cell beta
Output (value display) beta
Embedded functions
Statistics (sum, mean, variance, ...)
Data manipulation (filter, sort, aggregate, ...) alpha
Data visualization (plot, title, theme, ...) alpha
Contribute more... alpha
Execution contexts
Bash
JavaScript beta
Julia
Jupyter kernels 0.29
Node.js beta
Python beta
R beta
SQLite beta
Supported formats
HTML beta
JATS 0.30
Markdown .md beta
RMarkdown .Rmd alpha
Jupyter Notebook .ipynb alpha
Microsoft Office .docx
Open/Libre Office .odt

Download

See the Getting Started page on the wiki.

Application or package Ready
Stencila Desktop
Stencila for Python
Stencila for R
Stencila for Node.js

Develop

NPM Build status Code coverage Dependency status

Quick start:

git clone https://github.com/stencila/stencila.git
cd stencila
npm install
npm run start

Now you can access the examples in the browser at http://localhost:4000/.

Use external contexts during development:

Run the docker image first.

docker run -p 2100:2000 stencila/alpha

Now start the development environment and point STENCILA_PEERS to the new host.

STENCILA_PEERS=http://localhost:2100 npm start

Most development tasks can be run via npm or make shortcuts:

Task npm make
Install and setup dependencies npm install make setup
Run the development server npm start make run
Check code for lint npm run lint make lint
Run tests npm test make test
Run tests in the browser npm run test-browser make test-browser
Run tests with coverage npm run cover make cover
Build bundles npm build make build
Build documentation npm run docs make docs
Run documentation server npm run docs-serve make docs-serve
Clean make clean

To contribute, get in touch, checkout the platform-wide, cross-repository kanban board, or just send us a pull request! Please read our contributor code of conduct.

API documentation is at http://stencila.github.io/stencila/. These are published using Github Pages, so to update them after making changes: run make docs, commit the updates and do a git push.