JavaScript implementation of the Infinote protocol for collaborative editing
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


jinfinote is a JavaScript implementation of the Infinote protocol, an open
standard for software supporting collaborative real-time editing of text

The goal of this project is to aid in creating a collaborative real-time editor
for the web, similar to EtherPad. Desktop editors such as Gobby are already
available for many platforms, and the intention is to close the missing link to
the web browser.

jinfinote is split into four JavaScript files:

 * algorithm/operations.js
     Contains the basic text operations (Insert, Delete, Split and NoOp) and
     their transformations.
 * algorithm/request.js
     Defines do, undo and redo requests and methods to change them (transform,
     fold, mirror etc.).
 * algorithm/state.js
     Contains the State and Vector classes, which are the central classes of
 * algorithm/text.js
     Implements the Buffer class, among others, which enables string operations
     on segmented texts. This is necessary to keep track of which user has
     authored which part of the text.

You need to include all of these source files on a page that uses jinfinote.
Alternatively, you can use the supplied merge.cmd script to concatenate them
into a single JavaScript file for easier handling.