Changelog

Beta 5

  • Substance is now written in ES6
  • More usage options: Use Substance via <script> tag or use a module bundler of your choice (Rollup, Browserify, Webpack, ...)
  • Pure CSS instead of SASS for easier integration
  • Extracted develoment environment into substance-bundler tool.
  • Extracted test environment into substance-test
  • Extracted API docs generator into substance-docgen
  • Improved Tool API: Simplified command and tool APIs.
  • Commands are now stateless and can be parametrized in the configurator
  • Added tool targets: Determines where a tool gets rendered (e.g. in the toolbar or in an overlay)
  • Gutter support for ScrollPane: Render tools in a gutter, vertically aligned with the current selection
  • Removed experimental list and table packages: They will come back to core as soon as they are completed
  • Stabilized Beta 4 features

Beta 4

  • Added support for realtime collaboration
  • Added persistence interfaces to store versions and snaphots on the server
  • Added a package system to provide a simple plugin mechanism
  • Introduced the concept of an IsolatedNode enabling arbitrary complex editors and external components (such code editors)
  • Optimized rendering engine
  • Enabled server side rendering
  • Added support for text macros
  • Added IconProvider to generalize icon usage and make them configurable in packages
  • Added LabelProvider for configurable multi language support
  • Improved ProseEditor that can be extended through packages
  • Improved Component API, with first-class debugging support
  • Generalized commands and tools
  • Added first version of tables and lists
  • Improved XML/HTML import/export API
  • Ported test suite from QUnit over to tape
  • Fixed hundreds of issues and bugs
  • Improved cross-browser compatibility
  • Added many examples documenting core features
  • Removed jQuery dependency

Beta 3

  • Added a Router implementation that can serialize component states to hash fragments
  • Added ui/ScrollPane Component used to wrap any content and make it scrollable within a container (1ae97f9)
  • Added ui/TOC as an interface for custom Table of Contents implementations (1ae97f9)
  • Added util/server for easier development (7e12ae7)
  • Added TabbedPane component (105e80d)
  • Added SplitPane component (105e80d)
  • Fixed a bug where Firefox ignored input events (e3d6173)
  • Fixed an issue in ui/Component where owner and parent were confused (085a695)
  • Fixed numerous issues related to mapping DOM selections to model selections
  • Fixed a bug where nodes that have no addressable text property could not be rendered
  • Fixed an edge case where triple clicking inside a paragraph with inline nodes did not led to an undesired selection
  • Fixed an issue where focusedSurface is set too late on the controller
  • Fixed an issue where an image wrapped in a selection was not deleted
  • Fixed an bug where selection was mapped incorrectly at the end of the paragraph (76eab1f)
  • Fixed several converter issues related to XML parsing and serializing (#391)
  • Improved API documentation
  • Fixed an issue where typing over an inline node did not remove it
  • Added ui/Highlights class for distributed management of highlights
  • Removed ui/ContentPanel in favor of an improved ScrollPane implementation
  • Improved Clipboard: Copy and pasting between browsers now works seamlessly
  • ScrollPane is now aware of TOC instances (when provided)

Beta 2

  • Simplified Node API: Props are now stored on the node directly
  • New source directory and file layout optimized for deep-requiring individual classes
  • New DOMElement API for interacting with DOM elements
  • Improved Converter API: Now independent from the Article class
  • Overhauled API for Tools: Logic now lives in Command implementations that are independent from the UI
  • Editors are now Components implementing the Surface API
  • CSS overhaul: improved modularity, prefixing to avoid collisions
  • New predefined node types: Embed, Superscript, Subscript, Code.
  • Removed FormEditor interface in favour of more fine-grained control using new TextPropertyEditor component
  • API docs provided via new Substance DocumentationReader

Beta 1

Initial release