Skip to content
A JavaScript library for web-based content editing.
JavaScript CSS
Latest commit fdea0d0 @michael michael Merge pull request #529 from substance/configureable-collabserver
Configuration via enhanceRequest

README.md

Substance Build Status

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

Read the introduction post, check the project website, the examples and the API documentation.

Substance Beta 4 introduces support for realtime collaboration. While still under development, you can already check out and run our full-stack collaborative Notepad application.

Features

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 ✓
I18N support ✓
Realtime collaboration Beta 4
Persistence API for documents Beta 4
Key bindings Beta 5
Full Unicode support Beta 5
Plugins Beta 5
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 ✓
Embed (image, video, tweet etc.) ✓
List Beta 4
Table Beta 4
Predefined annotation types
Strong ✓
Emphasis ✓
Link ✓
Subscript ✓
Superscript ✓
Code ✓
Comment Beta 4
Platform support
Mozilla Firefox (>=42) ✓
Apple Safari (>=9) ✓
Google Chrome (>=47) ✓
Microsoft Edge ✓
Mobile Safari (iOS) Beta 5
Mobile Chrome (Android) Beta 5

Development

Install the dev dependencies.

npm install

Run the dev server.

npm start

Navigate to http://localhost:4201/docs for the docs and http://localhost:4201/test for the test suite.

To run the test-suite headless

$ npm test

To bundle the docs into a distribution:

$ npm run doc

Roadmap

Beta 4

ETA: March 2016

  • Realtime collaboration
  • Persistence API for documents
  • Table node
  • Editing of lists
  • Improved stability, documentation and tests
  • Full-stack platform example

Beta 5

  • Key bindings
  • Plugins
  • Improved Unicode support
  • Mobile support
  • Automatically generated performance report
  • Modules for server-side integration

1.0 Final

  • Complete documentation
  • Full test coverage
  • Final versions of API's
Something went wrong with that request. Please try again.