Extension:VisualEditor

The VisualEditor project aims to create a reliable rich-text editor for MediaWiki. More information can be found here.

The extension relies on the separate Parsoid NodeJS-based parser service to be up and running in order to edit pages. Stable release is planned for late 2013.

Download
VisualEditor currently has dependencies on pre-release alpha versions of MediaWiki (see info box for the current dependency); if you want to install it, you should shell into your server and use git to download the very latest version:

cd extensions git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git

Basic setup instructions
To experiment with this extension locally, add the following into LocalSettings.php:

Congratulations, you should now have VisualEditor up and running! Test it by visiting a page like  on your wiki and editing it.

Linking with Parsoid
The above will only let you fiddle with pages, and not save them or edit existing ones, as you don't yet have the Parsoid service installed. Follow the Parsoid installation instructions and start your Parsoid service. To get VisualEditor to talk to the parser, add a line like the following to your LocalSettings.php to specify your Parsoid instance:

Additionally, if you want to use a Parsoid instance with a wiki that isn't running on localhost, you will need to edit the following line (the default is fine for most people's configurations):

Finally, you will need to configure Parsoid to associate the given interwiki prefix (for example, ) with the URL for your local wiki's API endpoint. See Parsoid for more details, but basically you will need something like the following in  in the Parsoid project: If you are hosting MediaWiki under a VirtualHost, then the host name must be specified in the URL.


 * Linking with Parsoid in private wikis

Tips & Tricks

 * parsoidserver-http-curl-error : Failed to connect to .... : Permission denied.
 * Can be caused by a cURL request on a Security-Enhanced Linux (SELinux, like CentOS) to a non standard port like 8000 in the example configuration above, see http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied