Go to file
Catrope 031b96dd2a Make metadata reaping handle replacement operations more sanely
Before, replacement operations that both inserted and removed data at
the same time would be treated as removals followed by insertions,
so we'd reap the metadata from the affected range and move it to the
start of the range. For a pure replacement, this doesn't make any sense.

Instead, preserve the first min(insertLength, removeLength) elements in
the metadata array, then perform a pure insertion splice or a pure
removal splice for the length adjustment. Any metadata reaped in a
removal splice is restored at the offset where we started removing,
after the preserved portion.

These changes make the behavior of metadata reaping saner in general
(the previous behavior had the potential to move metadata around if it
was near a paragraph opening or closing and you converted the paragraph
to a heading), and makes the behavior match up with translateOffset(),
which is desirable for MetaList synchronization.

Change-Id: If9a1c6a7cf43ead7e3e1e8f6e081b139ca65fa53
2013-03-14 23:35:50 -07:00
.docs Change MetaNodes to MetaItems 2013-03-14 23:35:50 -07:00
demos Change MetaNodes to MetaItems 2013-03-14 23:35:50 -07:00
maintenance Maintenance script: Update header 2013-02-26 16:06:16 +01:00
modules Make metadata reaping handle replacement operations more sanely 2013-03-14 23:35:50 -07:00
.gitignore Ignore Eclipse files 2013-01-11 10:58:47 -08:00
.gitreview Set defaultrebase=0 2012-06-20 16:27:40 -07:00
.jshintignore Make JSHint ignore the docs/ directory 2013-02-01 10:19:33 -08:00
.jshintrc inheritClass: Implement inherited 'static' property for classes. 2012-10-09 18:29:41 +00:00
ApiVisualEditor.php Pass through error message to VE if Parsoid is unreachable. 2013-03-11 18:01:36 +00:00
AUTHORS.txt Add Ed 2013-02-12 16:06:21 -08:00
CODING.md Implement inline documentation examples. 2013-02-08 17:47:10 -08:00
LICENSE.txt Changed to use MIT license per agreement with the VisualEditor team 2012-07-19 13:25:45 -07:00
README.txt Remove the parser from the VE repo 2012-07-30 13:19:09 -07:00
VisualEditor.hooks.php Only unwrap { generated: wrapper } based on context. 2013-03-13 00:42:16 +00:00
VisualEditor.i18n.php Context, frame, window, dialog and inspector refactor 2013-03-14 00:03:31 +00:00
VisualEditor.php Change MetaNodes to MetaItems 2013-03-14 23:35:50 -07:00
VisualEditorMessagesModule.php Bump copyright notice year range to -2013 over -2012 2013-02-19 15:37:34 -08:00

VisualEditor provides a visual editor for wiki pages. It is written in
JavaScript and runs in a web browser. 

It uses the Parsoid parser to convert wikitext documents to annotated HTML
which the VisualEditor is able to load, modify and emit back to Parsoid at
which point it is converted back into wikitext.

For more information about these projects, check out the wiki:

	* http://www.mediawiki.org/wiki/VisualEditor
	* http://www.mediawiki.org/wiki/Parsoid