summaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/ace/README
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2010-06-08 09:01:43 +0200
committerAlexander Sulfrian <alexander@sulfrian.net>2010-06-08 09:01:43 +0200
commitd1fa08fdc9cb11dccee76d668ff85df30458c295 (patch)
tree1d19df6405103577d872902486792e8c23bce711 /trunk/infrastructure/ace/README
parentd7c5ad7d6263fd1baf9bfdbaa4c50b70ef2fbdb2 (diff)
parent70d1f9d6fcaefe611e778b8dbf3bafea8934aa08 (diff)
downloadetherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.gz
etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.tar.bz2
etherpad-d1fa08fdc9cb11dccee76d668ff85df30458c295.zip
Merge remote branch 'upstream/master'
Conflicts: etherpad/src/etherpad/control/pro/admin/pro_admin_control.js etherpad/src/etherpad/control/pro/pro_main_control.js etherpad/src/etherpad/control/pro_help_control.js etherpad/src/etherpad/globals.js etherpad/src/etherpad/legacy_urls.js etherpad/src/etherpad/pne/pne_utils.js etherpad/src/etherpad/pro/pro_utils.js etherpad/src/main.js etherpad/src/plugins/fileUpload/templates/fileUpload.ejs etherpad/src/plugins/testplugin/templates/page.ejs etherpad/src/static/css/pad2_ejs.css etherpad/src/static/css/pro-help.css etherpad/src/static/img/jun09/pad/protop.gif etherpad/src/static/js/store.js etherpad/src/themes/default/templates/framed/framedheader-pro.ejs etherpad/src/themes/default/templates/main/home.ejs etherpad/src/themes/default/templates/pro-help/main.ejs etherpad/src/themes/default/templates/pro-help/pro-help-template.ejs infrastructure/com.etherpad/licensing.scala trunk/etherpad/src/etherpad/collab/ace/contentcollector.js trunk/etherpad/src/etherpad/collab/ace/linestylefilter.js trunk/etherpad/src/static/css/home-opensource.css trunk/etherpad/src/static/js/ace.js trunk/etherpad/src/static/js/linestylefilter_client.js trunk/etherpad/src/templates/email/eepnet_license_info.ejs trunk/etherpad/src/templates/pad/pad_body2.ejs trunk/etherpad/src/templates/pad/pad_content.ejs trunk/etherpad/src/templates/pad/padfull_body.ejs trunk/etherpad/src/templates/pro/admin/pne-license-manager.ejs
Diffstat (limited to 'trunk/infrastructure/ace/README')
-rw-r--r--trunk/infrastructure/ace/README69
1 files changed, 0 insertions, 69 deletions
diff --git a/trunk/infrastructure/ace/README b/trunk/infrastructure/ace/README
deleted file mode 100644
index 275684f..0000000
--- a/trunk/infrastructure/ace/README
+++ /dev/null
@@ -1,69 +0,0 @@
-=====
-ACE2 (originally AppJet Code Editor)
-=====
-
-(This doc started Dec 2009 by dgreenspan.)
-
-ACE2 is EtherPad's editor, a content-editable-based rich text editor
-that supports IE6+, FF(2?/)3+, Safari(3?/)4+. It supports
-collaborative editing using operation transforms (easysync2),
-undo/redo, copy/paste.
-
-The name "ACE2" is because this is a rewrite of aiba's original
-content-editable AppJet Code Editor.
-
-== Building it
-
-In this directory, run `bin/make normal etherpad` (requires scala),
-which generates `build/ace2.js` and copies this and other files into
-the etherpad source tree. To have the script keep running and
-automatically rebuild when source files change, run `bin/make auto
-etherpad`.
-
-The original reason for the build process was that ACE needs to
-construct two nested iframes on the client, and to do this without
-incurring round-trips to the server, it programmatically loads code
-into the outer iframe that loads code into the inner iframe; so the
-bulk of ACE's code is compressed into a string literal (twice). Later
-on, refactoring meant that the source is also divided into more than a
-dozen files that the build script combines, and some are also
-server-side EtherPad modules or client-side libraries (or both).
-
-The master copy of the operational transform (OT) library, easysync2,
-lives here.
-
-In the early days it was possible to run ACE in a sort of development
-mode, without the compression and iframe injection, by running it out
-of the 'www' directory, but this is no longer possible.
-
-== Browser support
-
-We went out of our way to support IE6+. IE's design-mode is quite
-robust, though there are some differences in manipulation of the
-selection and insertion point and in the DOM representation we had to
-use.
-
-We don't support Opera. Opera is a problematic case, because
-apparently JS running in different iframes is run concurrently, not
-linearized into a single event thread. This seems to be a rather
-obscure fact and is almost difficult to believe. As if iframes don't
-complicate scripting enough!
-
-== Syntax highlighting
-
-Though syntax highlighting predated rich text as the original
-motivation for the design of ACE, support was eventually dropped in
-EtherPad. At first the plan was to generalize it to other programming
-languages, but the task was deprioritized (and difficult), and during
-subsequent optimization and refactoring of ACE, calls to the
-incremental lexer were stripped out because they complicated things.
-
-One plan for multi-language syntax highlighting, never implemented,
-was to calculate syntax highlighting on the server as a sort of "style
-overlay" and feed updates to the client along with updates to the
-document text.
-
-== Changeset format
-
-See easysync-notes.txt for some notes on the changeset format, which
-was redesigned with the advent of rich text.