Create.js Update: Documentation, Hackathon, DrupalCon
Create.js is our take on modern web editing built on semantic technologies and the ideas of Decoupled Content Management.
With Create, CMS developers can provide a fresh way for their users to write content on websites, and thanks to the decoupled nature this user interface can be adapted to work on any back-end.
There are even some libraries like CreatePHP and VIE-GWT to make this easier. Those wanting to do the integration from scratch can also take a look at Blogsiple our Node.js testbed for Create.js.
Here is a quick update of the latest happenings in Create.js land.
Integration Guide
Yesterday we released the Create.js Integration Guide aimed at helping developers to use these tools. The guide describes all the relevant Create APIs, as well as outlines the background of the project:
Create.js was originally written in 2010 as the next-generation content editing interface of Midgard CMS. Henri Bergius presented it in the Aloha Editor developer conference in Vienna last year, and the TYPO3 developers expressed interest in reusing the codebase.
Because of this we started extracting the various parts of the Create UI into their own, reusable components. The first one was VIE, which provides the underlaying management of editable objects. In basic use scenario, it loads content annotated with RDFa from the web page, populates it into Backbone.js Models and Collections, and then creates Backbone Views for the original RDFa-annotated parts of DOM.
This way the DOM will automatically stay in sync when data changes, whether that happens by user interaction like editing, or through some server communications (we've done collaborative editing demos over WebSockets, for instance).
It also explains the base design of Create:
The Create.js interface was then rebuilt on top of this new VIE library by writing a bunch of jQuery UI widgets. This way we have an overall default UX that we can ship, but still provide a bunch of different widgets for CMS vendors to pick-and-choose.
Some CMSs use the full Create UX, and some use just parts to provide the UX they want to have. Examples of custom UXs include Symfony CMF and OpenCms.
The different widgets in Create.js are also documented, including:
- Editable: makes an RDFa entities (as identified by about) editable with some editing widget (now plain contentEditable, Aloha, and Hallo supported, more to come). Provides the events like "modified" of those widgets in a uniform way. Editable also deals with Collections, allowing user to add/remove items from them
- Storage: provides localStorage save/restore capability, and keeps track of what entities ought to be saved to the back-end
- Workflows: retrieves workflows that user can active for a given ntity from the back-end and handles running them. These could be simpl things like publish/unpublish and delete, or more complex workflows
- Notifications: notification bubbles/dialogs that can be used for telling user what has happened ("X has been saved successfully"), or query them for what they want to do ("You have X local modifications for this page. Restore/Ignore")
- Tags: content tagging widget
- Toolbar: holder widget for a toolbar overlay where widgets like Editable, Storage, and Workflows can place buttons
- Create: ties all of these together to the default UX
Create.js hackathon in Berlin, July 19-20
We will hold a Create.js hacka
Truncated by Planet PHP, read more at the original (another 3463 bytes)


