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, the documentation and the demos.
Features | State |
---|---|
Custom document schemas | ✓ |
Custom converters (XML, HTML, etc.) | ✓ |
Custom HTML Rendering | ✓ |
Annotations that can span over multiple nodes | ✓ |
Annotations can hold information (e.g. a comment) | ✓ |
Incremental document updates (undoable operations) | ✓ |
Transformations for document manipulation | ✓ |
Custom editing toolbars | ✓ |
Commands for controlling the editor | Beta 2 |
Key bindings | Beta 3 |
I18N support | Beta 2 |
Realtime collaboration | Beta 3 |
Full Unicode support | Beta 3 |
Plugins | Beta 3 |
Persistence API for documents | Beta 4 |
|
UI Components | TextPropertyEditor for editing annotated text | ✓ ContainerEditor for in-flow-editing | ✓ Scrollable ContentPanel with Support for highlights | ✓ Customizable Toolbar | ✓ Interactive Scrollbar | ✓ Interactive TOCPanel | ✓ | Predefined content types | Paragraph | ✓ Heading | ✓ Blockquote | ✓ Codeblock | ✓ Resource (image, video, tweet etc.) | Beta 2 List | Beta 2 Table | Beta 3 Figure (including upload) | Beta 4 | Predefined annotation types | Strong | ✓ Emphasis | ✓ Link | ✓ Subscript | Beta 2 Superscript | Beta 2 Code | Beta 2 Comment | Beta 3
Install the dev dependencies.
npm install
Run the dev server.
npm start
Navigate to http://localhost:4201/doc
for the docs and http://localhost:4201/test
for the test suite.
To run the test-suite headless (using Phantom.js)
$ npm test
To create a test coverate report:
$ npm run coverage
The report is stored in the coverage
folder.
To bundle the docs into a distribution:
$ npm run doc
ETA: November 15 2015
- Support for nested nodes
- Commands for controlling the editor
- Editing of lists
- Resource node type (image, video, tweet etc.)
- CSS modularization: one css file per UI component
- Automatically published API docs
- Writer interface for building full-fledged custom editing apps
- Improved stability, documentation and tests
- I18n
- Automatically generated performance report
- Table node
- Novel Writer demo
- Key bindings
- Plugins
- Realtime collaboration
- Improved Unicode support
- Improved stability, documentation and tests
- Modules for server-side integration
- Persistence API for documents
- Figure upload
- Server-side realtime collaboration infrastructure
- Full-stack platform example
- Complete documentation
- Full test coverage
- Final versions of API's