CherryTree
CherryTree copied to clipboard
A collaborative structural editor for structured rich document with VIM-like keybindings
CherryTree
A structural editor for rich text outliners, collaboratively
Initially a project aimed as a commercial software, here is a demo for it: https://www.youtube.com/watch?v=97lAMRrAcF4&feature=youtu.be
compile/run/deploy as a standard Play app
for local deployment, you need a Postgres database instance at localhost:5432/cherrytree, details see application.conf
test with sbt sharedJVM/test, sbt sharedJVM/testOnly xxx etc.
coding guideline
- static assertion is by assert and doc
- dynamic check use exception
read the code?
shared/.../model: abstract and pure functionsdata: data object definition, serializationcursor: data type for cursor inside datarange: data type for range inside data, from left to right styleoperation: operation definition on dataconflict,transaction: helper definitionsotoperational transformation for operations
shared/.../client: abstract clientshared/.../undoer, etc.: part of client functionality separated out
jvm: abstract server implementationjsthe web client