Go to file
Timo Tijhof f06952f2f3 Refactor ve.js utilities and improve documentation
Refactor:
* ve.indexOf
  Renamed from ve.inArray.
  This was named after the jQuery method which in turn has a longer
  story about why it is so unfortunately named. It doesn't return
  a boolean, but an index. Hence the native method being called
  indexOf as well.

* ve.bind
  Renamed from ve.proxy.
  I considered making it use Function.prototype.bind if available.
  As it performs better than $.proxy (which doesn't use to the native
  bind if available). However since bind needs to be bound itself in
  order to use it detached, it turns out with the "call()" and
  "bind()"  it is slower than the $.proxy shim:
  http://jsperf.com/function-bind-shim-perf
  It would've been like this:
  ve.bind = Function.prototype.bind ?
      Function.prototype.call.bind( Function.prototype.bind ) :
      $.proxy;
  But instead sticking to ve.bind = $.proxy;

* ve.extendObject
  Documented the parts of jQuery.extend that we use. This makes it
  easier to replace in the future.

Documentation:
* Added function documentation blocks.
* Added annotations to  functions that we will be able to remove
  in the future in favour of the native methods.
  With "@until + when/how".
  In this case "ES5". Meaning, whenever we drop support for browsers
  that don't support ES5. Although in the developer community ES5 is
  still fairly fresh, browsers have been aware for it long enough
  that thee moment we're able to drop it may be sooner than we think.
  The only blocker so far is IE8. The rest of the browsers have had
  it long enough that the traffic we need to support of non-IE
  supports it.

Misc.:
* Removed 'node: true' from .jshintrc since Parsoid is no longer in
  this repo and thus no more nodejs files.
 - This unraveled two lint errors: Usage of 'module' and 'console'.
   (both were considered 'safe globals' due to nodejs, but not in
   browser code).

* Replaced usage (before renaming):
 - $.inArray -> ve.inArray
 - Function.prototype.bind -> ve.proxy
 - Array.isArray -> ve.isArray
 - [].indexOf -> ve.inArray
 - $.fn.bind/live/delegate/unbind/die/delegate -> $.fn.on/off

Change-Id: Idcf1fa6a685b6ed3d7c99ffe17bd57a7bc586a2c
2012-08-12 20:32:45 +02:00
demos/ve Merge "Add ve.dm.BreakNode to represent <br>" 2012-08-09 21:50:41 +00:00
modules Refactor ve.js utilities and improve documentation 2012-08-12 20:32:45 +02:00
.gitignore Kranitor #1: On-boarding 2012-07-27 14:40:00 -07:00
.gitreview Set defaultrebase=0 2012-06-20 16:27:40 -07:00
.jshintignore JSHint: Added dotfiles and fixed tons of linting warnings. 2012-07-19 10:01:00 -07:00
.jshintrc Refactor ve.js utilities and improve documentation 2012-08-12 20:32:45 +02:00
ApiVisualEditor.php Pass a (configurable) interwiki prefix to Parsoid 2012-08-06 16:42:18 -07:00
AUTHORS.txt Remove the parser from the VE repo 2012-07-30 13:19:09 -07: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 Register QUnit tests suites in MediaWiki to run from Special:JavaScriptTest 2012-07-27 17:14:23 -07:00
VisualEditor.i18n.php Localisation updates from http://translatewiki.net. 2012-08-09 19:35:33 +00:00
VisualEditor.php Merge "Add ve.dm.BreakNode to represent <br>" 2012-08-09 21:50:41 +00:00
VisualEditorMessagesModule.php Added ve.init.platform with MediaWiki and stand-alone implementations 2012-07-27 13:39:19 -07: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