Go to file
Ed Sanders 06c86b3881 The Great [...] Rewrite of 2013: Clipboard edition
Firefox:
* Doesn't fire events without a selection, so when all we have is a
  focusable node, create a dummy selection in the paste target so the
  browser triggers an event on command+C.

Clipboard keys:
* Instead of just creating a text hash which may or may not match up
  with the plain text in the clipboard data, just convert the clipboard
  store into an array and use the index as the key. Also prepend a
  random number (clipboardId) so on paste we can verify the copy came
  from the same CE document.
  The text hash is now used for validation if only HTML is written
  to the clipboard.

HTML:
* Instead letting the browser grab CE HTML, always get DM HTML from
  the converter as it is cleaner (no phantoms, linefeed markers, extra
  class names etc.), and will make cross-ve-instance pasting easier
  in the future.

Clipboard overriding:
* Always override the clipboard with the above HTML, either using
  clipboardData.setData if it is available (webkit) or by throwing
  the HTML into the pasteTarget and selecting it during pre-copy.

Bug: 53375
Bug: 49396
Bug: 52096
Change-Id: Id0f39c10818047bb4b8922e97cead153a770757f
2013-09-10 10:38:34 -07:00
.docs Merge "ve.EventSequencer: Post-event listening" 2013-09-04 20:08:42 +00:00
demos Timoize the EventSequencer into a sleek, purring monster 2013-09-06 17:30:50 -07:00
maintenance Add ULS to the standalone 2013-08-28 17:35:37 -07:00
modules The Great [...] Rewrite of 2013: Clipboard edition 2013-09-10 10:38:34 -07:00
.csslintrc Add .csslintrc file and fix remaining warnings 2013-06-05 11:07:00 +00:00
.gitignore Implement Grunt support (grunt jshint,csslint,qunit,watch) 2013-06-05 11:10:23 +00:00
.gitreview Set defaultrebase=0 2012-06-20 16:27:40 -07:00
.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 Bump copyright year range to 2013 in the licence file 2013-03-18 09:55:57 -07:00
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 Localisation updates from http://translatewiki.net. 2013-09-09 19:30:31 +00: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.