Go to file
C. Scott Ananian 5830bce72c Correctly preserve metadata in Transaction.newFromUnwrap.
The `Transaction.pushReplace` method has a corner case if the removed
region has metadata and the inserted region is empty.  This works fine
unless there are two adjacent `pushReplace` operations, which can occur
in `Transaction.newFromUnwrap`.  Fix this by having `pushReplace` look
at a preceding replace and correctly merge the two operations if
possible (in particular in the tricky case where the previous case has
a zero-length insertion).  Pleasantly, this can be done without a lot of
special-casing code in `pushReplace` or `newFromUnwrap`.

Add test cases verifying the `newFromUnwrap` works correctly (both
in commit and in rollback) when there is metadata present.

Change-Id: I6cfec0d2b1823dad724422f018a3c73dc0c7f186
2013-09-06 01:06:59 +00:00
.docs Merge "ve.EventSequencer: Post-event listening" 2013-09-04 20:08:42 +00:00
demos Merge "ve.EventSequencer: Post-event listening" 2013-09-04 20:08:42 +00:00
maintenance Add ULS to the standalone 2013-08-28 17:35:37 -07:00
modules Correctly preserve metadata in Transaction.newFromUnwrap. 2013-09-06 01:06:59 +00:00
.csslintrc
.gitignore Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
.gitreview
.jshintignore Language Inspector UI 2013-07-29 00:38:59 -04:00
.jshintrc oojs: Integrate with OOJS v1.0.0 2013-06-06 17:29:55 +02:00
ApiVisualEditor.php ve.ce.MWTransclusionNode: Check for API errors 2013-08-03 00:35:42 +02:00
ApiVisualEditorEdit.php Set 'notminor' if minor edit box not checked 2013-07-24 15:07:05 +01:00
AUTHORS.txt Add David to author lists 2013-08-29 11:11:10 -07:00
CODING.md docs: Minor improvements 2013-09-05 23:56:59 +00:00
Gruntfile.js grunt: Also delete QUnit temp files when test fails 2013-06-17 11:27:52 -07:00
LICENSE.txt
package.json Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
README.md Spruce up VisualEditor's README file. 2013-08-22 17:04:46 +00:00
VisualEditor.hooks.php Use internal ve.track to log events 2013-08-15 19:43:36 +00:00
VisualEditor.i18n.php Sort i18n messages 2013-09-05 15:35:06 -07:00
VisualEditor.php Sort i18n messages 2013-09-05 15:35:06 -07:00
VisualEditorDataModule.php Expose version information in the client 2013-08-29 18:19:40 -07:00

VisualEditor

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 VisualEditor and Parsoid pages on mediawiki.

Developing and installing

For information on installing VisualEditor on a local wiki, please see https://www.mediawiki.org/wiki/Extension:VisualEditor

For information about contributing code to VisualEditor, see CODING.md. Patch submissions are reviewed and managed with Gerrit. There is also API documentation available for the VisualEditor.