UNPKG

substance

Version:

Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing systems.

85 lines (68 loc) 4.61 kB
# Substance [![Build Status](https://travis-ci.org/substance/substance.svg?branch=devel)](https://travis-ci.org/substance/substance) Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing systems. Check the [project website](http://substance.io) and the [documentation](http://substance.io/docs). ## Features Features | State --------------------------------------------------------------------------- | :------------: Custom document schemas | ✓ Custom converters (XML, HTML, etc.) | ✓ Custom HTML Rendering | ✓ Drag & Drop Support | ✓ Annotations can hold information (e.g. a comment) | ✓ Annotations that can span over multiple nodes | Beta 7 Isolated Nodes (any content with any custom UI) | ✓ Incremental document updates (undoable operations) | ✓ Transformations for document manipulation | ✓ Custom editing toolbars | ✓ Commands for controlling the editor | ✓ Multi-language support | ✓ Realtime collaboration | ✓ Persistence API for documents | ✓ Text Macros | ✓ Key bindings | ✓ Packages (aka Plugins) | ✓ **UI Components** | TextPropertyEditor for editing annotated text | ✓ ContainerEditor for in-flow-editing | ✓ Scrollable ContentPanel with support for highlights | ✓ Customizable Toolbar | ✓ ScrollPane with interactive visual Scrollbar | ✓ Interactive TOCPanel | ✓ **Predefined content types** | Paragraph | ✓ Heading | ✓ Blockquote | ✓ Codeblock | ✓ Image | ✓ List | ✓ Table | ✓ **Predefined annotation types** | Strong | ✓ Emphasis | ✓ Link | ✓ Subscript | ✓ Superscript | ✓ Code | ✓ **Platform support** | Mozilla Firefox (>=49) | ✓ Apple Safari (>=10) | ✓ Google Chrome (>=53) | ✓ Microsoft Edge | ✓ ## Development Install the dev dependencies. ``` npm install ``` Run the dev server. ``` npm start ``` Navigate to `http://localhost:5550/docs` for the docs and `http://localhost:5550/test` for the test suite. Test suite and docs are rebuilt as you make changes to the source files. If you only work on the documentation, this recompiles faster. ``` npm run docs ``` To run the test-suite headless. ``` $ npm test ```